Mercurial > emacs
comparison lisp/emacs-lisp/autoload.el @ 48718:c1ae448c795b
(autoload-print-form-outbuf): New variable.
(autoload-print-form): Use autoload-print-form-outbuf.
(generate-file-autoloads): Bind autoload-print-form-outbuf.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 07 Dec 2002 21:31:58 +0000 |
parents | 1fa683e2a917 |
children | b2730a8dee9a |
comparison
equal
deleted
inserted
replaced
48717:b243692710b4 | 48718:c1ae448c795b |
---|---|
162 (while (search-forward generate-autoload-section-continuation nil t) | 162 (while (search-forward generate-autoload-section-continuation nil t) |
163 (replace-match " ")) | 163 (replace-match " ")) |
164 (goto-char (point-min)) | 164 (goto-char (point-min)) |
165 (read (current-buffer)))))) | 165 (read (current-buffer)))))) |
166 | 166 |
167 ;; !! Requires OUTBUF to be bound !! | 167 (defvar autoload-print-form-outbuf) |
168 | |
168 (defun autoload-print-form (form) | 169 (defun autoload-print-form (form) |
169 "Print FORM such that make-docfile will find the docstrings." | 170 "Print FORM such that `make-docfile' will find the docstrings. |
171 The variable `autoload-print-form-outbuf' specifies the buffer to | |
172 put the output in." | |
170 (cond | 173 (cond |
171 ;; If the form is a sequence, recurse. | 174 ;; If the form is a sequence, recurse. |
172 ((eq (car form) 'progn) (mapcar 'autoload-print-form (cdr form))) | 175 ((eq (car form) 'progn) (mapcar 'autoload-print-form (cdr form))) |
173 ;; Symbols at the toplevel are meaningless. | 176 ;; Symbols at the toplevel are meaningless. |
174 ((symbolp form) nil) | 177 ((symbolp form) nil) |
175 (t | 178 (t |
176 (let ((doc-string-elt (get (car-safe form) 'doc-string-elt))) | 179 (let ((doc-string-elt (get (car-safe form) 'doc-string-elt)) |
180 (outbuf autoload-print-form-outbuf)) | |
177 (if (and doc-string-elt (stringp (nth doc-string-elt form))) | 181 (if (and doc-string-elt (stringp (nth doc-string-elt form))) |
178 ;; We need to hack the printing because the | 182 ;; We need to hack the printing because the |
179 ;; doc-string must be printed specially for | 183 ;; doc-string must be printed specially for |
180 ;; make-docfile (sigh). | 184 ;; make-docfile (sigh). |
181 (let* ((p (nthcdr (1- doc-string-elt) form)) | 185 (let* ((p (nthcdr (1- doc-string-elt) form)) |
315 (autoload (make-autoload form load-name))) | 319 (autoload (make-autoload form load-name))) |
316 (if autoload | 320 (if autoload |
317 (setq autoloads-done (cons (nth 1 form) | 321 (setq autoloads-done (cons (nth 1 form) |
318 autoloads-done)) | 322 autoloads-done)) |
319 (setq autoload form)) | 323 (setq autoload form)) |
320 (autoload-print-form autoload)) | 324 (let ((autoload-print-form-outbuf outbuf)) |
325 (autoload-print-form autoload))) | |
321 | 326 |
322 ;; Copy the rest of the line to the output. | 327 ;; Copy the rest of the line to the output. |
323 (princ (buffer-substring | 328 (princ (buffer-substring |
324 (progn | 329 (progn |
325 ;; Back up over whitespace, to preserve it. | 330 ;; Back up over whitespace, to preserve it. |