From 5253a5fd755a26e30c73653bc49066f0649ec0eb Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:08:38 -0400 Subject: [PATCH] Fix spurious "cl--defsubst-expand might not be defined at runtime" * lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago changes to the format of load-history. * src/eval.c (Fautoload): Remember previous autoload status in load-history. --- lisp/ChangeLog | 3 +++ lisp/emacs-lisp/bytecomp.el | 8 +++----- src/ChangeLog | 4 ++++ src/eval.c | 8 +++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ba105ce4716..8d9c85c1326 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-11 Stefan Monnier + * emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago + changes to the format of load-history. + * international/mule-cmds.el (read-char-by-name): Move let-binding of completion-ignore-case in case that var is buffer-local (bug#12615). diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 4dd44bb6f22..7534ce5eaca 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -875,13 +875,11 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." (byte-compile-cl-file-p (car xs)))) (dolist (s xs) (cond - ((symbolp s) - (unless (memq s old-autoloads) - (push s byte-compile-noruntime-functions))) ((and (consp s) (eq t (car s))) (push (cdr s) old-autoloads)) - ((and (consp s) (eq 'autoload (car s))) - (push (cdr s) byte-compile-noruntime-functions))))))) + ((and (consp s) (memq (car s) '(autoload defun))) + (unless (memq (cdr s) old-autoloads) + (push (cdr s) byte-compile-noruntime-functions)))))))) ;; Go through current-load-list for the locally defined funs. (let (old-autoloads) (while (and hist-nil-new (not (eq hist-nil-new hist-nil-orig))) diff --git a/src/ChangeLog b/src/ChangeLog index c238af65d2d..839e7e52e00 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-11 Stefan Monnier + + * eval.c (Fautoload): Remember previous autoload status in load-history. + 2012-10-11 Paul Eggert lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. diff --git a/src/eval.c b/src/eval.c index 4d200fbc2bd..975204da017 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1876,9 +1876,11 @@ this does nothing and returns nil. */) CHECK_STRING (file); /* If function is defined and not as an autoload, don't override. */ - if (!EQ (XSYMBOL (function)->function, Qunbound) - && !(CONSP (XSYMBOL (function)->function) - && EQ (XCAR (XSYMBOL (function)->function), Qautoload))) + if ((CONSP (XSYMBOL (function)->function) + && EQ (XCAR (XSYMBOL (function)->function), Qautoload))) + /* Remember that the function was already an autoload. */ + LOADHIST_ATTACH (Fcons (Qt, function)); + else if (!EQ (XSYMBOL (function)->function, Qunbound)) return Qnil; if (NILP (Vpurify_flag)) -- 2.39.2