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.