From 7d22ce18d44b3639e5644ed72c2bfc54ca8b91d2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 22 Jul 2013 19:21:14 -0400 Subject: [PATCH] * lisp/emacs-lisp/autoload.el (autoload--setup-output): New function, extracted from autoload--insert-text. (autoload--insert-text): Remove. (autoload--print-cookie-text): New function, extracted from autoload--insert-cookie-text. (autoload--insert-cookie-text): Remove. (autoload-generate-file-autoloads): Adjust calls accordingly. --- lisp/ChangeLog | 8 +++++ lisp/emacs-lisp/autoload.el | 65 +++++++++++++++++-------------------- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7e104ad69b..660ea56291 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,13 @@ 2013-07-22 Stefan Monnier + * emacs-lisp/autoload.el (autoload--setup-output): New function, + extracted from autoload--insert-text. + (autoload--insert-text): Remove. + (autoload--print-cookie-text): New function, extracted from + autoload--insert-cookie-text. + (autoload--insert-cookie-text): Remove. + (autoload-generate-file-autoloads): Adjust calls accordingly. + * winner.el (winner-hook-installed-p): Remove. (winner-mode): Simplify accordingly. diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 22713c6589..e531bc0bda 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -436,33 +436,26 @@ Return non-nil in the case where no autoloads were added at point." (defvar print-readably) -(defun autoload--insert-text (output-start otherbuf outbuf absfile - load-name printfun) - ;; If not done yet, figure out where to insert this text. - (unless (marker-buffer output-start) - (let ((outbuf - (or (if otherbuf - ;; A file-local setting of - ;; autoload-generated-file says we - ;; should ignore OUTBUF. - nil - outbuf) - (autoload-find-destination absfile load-name) - ;; The file has autoload cookies, but they're - ;; already up-to-date. If OUTFILE is nil, the - ;; entries are in the expected OUTBUF, - ;; otherwise they're elsewhere. - (throw 'done otherbuf)))) - (with-current-buffer outbuf - (move-marker output-start (point) outbuf)))) - (let ((standard-output (marker-buffer output-start))) - (funcall printfun))) -(defun autoload--insert-cookie-text (output-start otherbuf outbuf absfile - load-name file) - (autoload--insert-text - output-start otherbuf outbuf absfile load-name - (lambda () +(defun autoload--setup-output (otherbuf outbuf absfile load-name) + (let ((outbuf + (or (if otherbuf + ;; A file-local setting of + ;; autoload-generated-file says we + ;; should ignore OUTBUF. + nil + outbuf) + (autoload-find-destination absfile load-name) + ;; The file has autoload cookies, but they're + ;; already up-to-date. If OUTFILE is nil, the + ;; entries are in the expected OUTBUF, + ;; otherwise they're elsewhere. + (throw 'done otherbuf)))) + (with-current-buffer outbuf + (point-marker)))) + +(defun autoload--print-cookie-text (output-start load-name file) + (let ((standard-output (marker-buffer output-start))) (search-forward generate-autoload-cookie) (skip-chars-forward " \t") (if (eolp) @@ -490,7 +483,7 @@ Return non-nil in the case where no autoloads were added at point." ;; Eat one space. (forward-char 1)) (point)) - (progn (forward-line 1) (point)))))))) + (progn (forward-line 1) (point))))))) (defvar autoload-builtin-package-versions nil) @@ -553,23 +546,25 @@ Return non-nil if and only if FILE adds no autoloads to OUTFILE (setq package (or (lm-header "package") (file-name-sans-extension (file-name-nondirectory file)))) - (setq output-start (make-marker)) - (autoload--insert-text - output-start otherbuf outbuf absfile load-name - (lambda () + (setq output-start (autoload--setup-output + otherbuf outbuf absfile load-name)) + (let ((standard-output (marker-buffer output-start)) + (print-quoted t)) (princ `(push (purecopy ',(cons (intern package) version)) package--builtin-versions)) - (newline)))))) + (newline))))) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " \t\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) - (unless output-start (setq output-start (make-marker))) - (autoload--insert-cookie-text - output-start otherbuf outbuf absfile load-name file)) + ;; If not done yet, figure out where to insert this text. + (unless output-start + (setq output-start (autoload--setup-output + otherbuf outbuf absfile load-name))) + (autoload--print-cookie-text output-start load-name file)) ((looking-at ";") ;; Don't read the comment. (forward-line 1)) -- 2.20.1