1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

(generate-file-autoloads): If no buffer was visiting FILE when we started,

kill the buffer we create.
This commit is contained in:
Roland McGrath 1993-02-17 21:30:21 +00:00
parent eceee2c04a
commit 7e4263eb77

View file

@ -1,6 +1,6 @@
;;; autoload.el --- maintain autoloads in loaddefs.el.
;;; Copyright (C) 1991, 1992 Free Software Foundation, Inc.
;;; Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
;;;
;; Author: Roland McGrath <roland@gnu.ai.mit.edu>
;; Keyword: internal
@ -96,7 +96,6 @@ If FILE is being visited in a buffer, the contents of the buffer
are used."
(interactive "fGenerate autoloads for file: ")
(let ((outbuf (current-buffer))
(inbuf (find-file-noselect file))
(autoloads-done '())
(load-name (let ((name (file-name-nondirectory file)))
(if (string-match "\\.elc?$" name)
@ -105,6 +104,7 @@ are used."
(print-length nil)
(floating-output-format "%20e")
(done-any nil)
(visited (get-file-buffer file))
output-end)
;; If the autoload section we create here uses an absolute
@ -122,8 +122,9 @@ are used."
(setq file (substring file (length default-directory)))))
(message "Generating autoloads for %s..." file)
(save-excursion
(set-buffer inbuf)
(unwind-protect
(progn
(set-buffer (find-file-noselect file))
(save-excursion
(save-restriction
(widen)
@ -150,7 +151,8 @@ are used."
;; We need to hack the printing because the
;; doc-string must be printed specially for
;; make-docfile (sigh).
(let* ((p (nthcdr (1- doc-string-elt) autoload))
(let* ((p (nthcdr (1- doc-string-elt)
autoload))
(elt (cdr p)))
(setcdr p nil)
(princ "\n(" outbuf)
@ -159,12 +161,14 @@ are used."
(princ " " outbuf)))
autoload)
(princ "\"\\\n" outbuf)
(princ (substring (prin1-to-string (car elt)) 1)
(princ (substring
(prin1-to-string (car elt)) 1)
outbuf)
(if (null (cdr elt))
(princ ")" outbuf)
(princ " " outbuf)
(princ (substring (prin1-to-string (cdr elt))
(princ (substring
(prin1-to-string (cdr elt))
1)
outbuf))
(terpri outbuf))
@ -178,7 +182,10 @@ are used."
(forward-line 1))
(t
(forward-sexp 1)
(forward-line 1))))))
(forward-line 1)))))))
(or visited
;; We created this buffer, so we should kill it.
(kill-buffer (current-buffer)))
(set-buffer outbuf)
(setq output-end (point-marker)))
(if done-any