aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1993-06-17 06:59:49 +0000
committerRichard M. Stallman1993-06-17 06:59:49 +0000
commitc751663136a7c61b1a47c45e80c60311b54ed95b (patch)
treedfd23e659355fd5f62607c5339cd0d30d710d08e
parent590cc44988b4ba7cd6fa8e3126d2d91c2760afd6 (diff)
downloademacs-c751663136a7c61b1a47c45e80c60311b54ed95b.tar.gz
emacs-c751663136a7c61b1a47c45e80c60311b54ed95b.zip
(generate-file-autoloads): Undo previous change
because make-docfile requires defvar doc string to start on first line.
-rw-r--r--lisp/emacs-lisp/autoload.el105
1 files changed, 37 insertions, 68 deletions
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index f927c025632..b7f5dad4d3e 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -146,83 +146,52 @@ are used."
146 (setq done-any t) 146 (setq done-any t)
147 (if (eolp) 147 (if (eolp)
148 ;; Read the next form and make an autoload. 148 ;; Read the next form and make an autoload.
149 (let* ((before (point)) 149 (let* ((form (prog1 (read (current-buffer))
150 (form (prog1 (read (current-buffer))
151 (forward-line 1))) 150 (forward-line 1)))
152 (autoload (make-autoload form load-name)) 151 (autoload (make-autoload form load-name))
153 (doc-string-elt (get (car-safe form) 152 (doc-string-elt (get (car-safe form)
154 'doc-string-elt))) 153 'doc-string-elt)))
155 (if (null autoload) 154 (if autoload
156 ;; We are copying a defvar or defconst form. 155 (setq autoloads-done (cons (nth 1 form)
157 ;; Copy the text instead of printing the form, 156 autoloads-done))
158 ;; so as to preserve the original formatting. 157 (setq autoload form))
159 (let ((inbuf (current-buffer)) 158 (if (and doc-string-elt
160 (after (point))) 159 (stringp (nth doc-string-elt autoload)))
161 (save-excursion 160 ;; We need to hack the printing because the
162 (set-buffer outbuf) 161 ;; doc-string must be printed specially for
163 ;; Insert the form. 162 ;; make-docfile (sigh).
164 (insert-buffer-substring inbuf before after) 163 (let* ((p (nthcdr (1- doc-string-elt)
165 (and doc-string-elt 164 autoload))
166 (stringp (nth doc-string-elt form)) 165 (elt (cdr p)))
167 ;; The form has a docstring. 166 (setcdr p nil)
168 ;; Hack it for make-docfile. 167 (princ "\n(" outbuf)
169 (save-excursion 168 (mapcar (function (lambda (elt)
170 ;; Move point back to FORM's start. 169 (prin1 elt outbuf)
171 (backward-char (- after before)) 170 (princ " " outbuf)))
172 (skip-chars-forward " \t\n") 171 autoload)
173 (or (looking-at "(") 172 (princ "\"\\\n" outbuf)
174 (error "expected (")) 173 (princ (substring
175 (forward-char 1) ; Skip the paren. 174 (prin1-to-string (car elt)) 1)
176 ;; Skip sexps before the docstring. 175 outbuf)
177 (forward-sexp doc-string-elt) 176 (if (null (cdr elt))
178 (skip-chars-forward " \t") 177 (princ ")" outbuf)
179 (if (eolp) (delete-char 1)) 178 (princ " " outbuf)
180 (skip-chars-forward " \t")
181 (or (looking-at "\"")
182 (error "expected \""))
183 (forward-char 1) ; Skip the ".
184 (insert "\\\n"))) ;make-docfile happy.
185 (goto-char after)))
186 ;; Write the autoload for this defun or defmacro.
187 (setq autoloads-done (cons (nth 1 form)
188 autoloads-done))
189 (if (and doc-string-elt
190 (stringp (nth doc-string-elt autoload)))
191 ;; We need to hack the printing because the
192 ;; doc-string must be printed specially for
193 ;; make-docfile (sigh).
194 (let* ((p (nthcdr (1- doc-string-elt)
195 autoload))
196 (elt (cdr p)))
197 (setcdr p nil)
198 (princ "\n(" outbuf)
199 (mapcar (function (lambda (elt)
200 (prin1 elt outbuf)
201 (princ " " outbuf)))
202 autoload)
203 (princ "\"\\\n" outbuf)
204 (princ (substring 179 (princ (substring
205 (prin1-to-string (car elt)) 1) 180 (prin1-to-string (cdr elt))
206 outbuf) 181 1)
207 (if (null (cdr elt)) 182 outbuf))
208 (princ ")" outbuf) 183 (terpri outbuf))
209 (princ " " outbuf) 184 (print autoload outbuf)))
210 (princ (substring
211 (prin1-to-string (cdr elt))
212 1)
213 outbuf))
214 (terpri outbuf))
215 (print autoload outbuf))))
216 ;; Copy the rest of the line to the output. 185 ;; Copy the rest of the line to the output.
217 (let ((begin (point))) 186 (let ((begin (point)))
218 (forward-line 1) 187 (forward-line 1)
219 (princ (buffer-substring begin (point)) outbuf)))) 188 (princ (buffer-substring begin (point)) outbuf))))
220 ((looking-at ";") 189 ((looking-at ";")
221 ;; Don't read the comment. 190 ;; Don't read the comment.
222 (forward-line 1)) 191 (forward-line 1))
223 (t 192 (t
224 (forward-sexp 1) 193 (forward-sexp 1)
225 (forward-line 1))))))) 194 (forward-line 1)))))))
226 (or visited 195 (or visited
227 ;; We created this buffer, so we should kill it. 196 ;; We created this buffer, so we should kill it.
228 (kill-buffer (current-buffer))) 197 (kill-buffer (current-buffer)))