[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/subr.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/subr.el |
Date: |
Fri, 16 Nov 2001 09:11:24 -0500 |
Index: emacs/lisp/subr.el
diff -u emacs/lisp/subr.el:1.273 emacs/lisp/subr.el:1.274
--- emacs/lisp/subr.el:1.273 Thu Nov 8 20:02:27 2001
+++ emacs/lisp/subr.el Fri Nov 16 09:11:24 2001
@@ -847,21 +847,23 @@
It does nothing if FORM is already on the list for FILE.
FILE must match exactly. Normally FILE is the name of a library,
with no directory or extension specified, since that is how `load'
-is normally called."
- ;; Make sure `load-history' contains the files dumped with Emacs
- ;; for the case that FILE is one of the files dumped with Emacs.
- (load-symbol-file-load-history)
- ;; Make sure there is an element for FILE.
- (or (assoc file after-load-alist)
- (setq after-load-alist (cons (list file) after-load-alist)))
- ;; Add FORM to the element if it isn't there.
+is normally called.
+FILE can also be a feature (i.e. a symbol), in which case FORM is
+evaluated whenever that feature is `provide'd."
(let ((elt (assoc file after-load-alist)))
- (or (member form (cdr elt))
- (progn
- (nconc elt (list form))
- ;; If the file has been loaded already, run FORM right away.
- (and (assoc file load-history)
- (eval form)))))
+ ;; Make sure there is an element for FILE.
+ (unless elt (setq elt (list file)) (push elt after-load-alist))
+ ;; Add FORM to the element if it isn't there.
+ (unless (member form (cdr elt))
+ (nconc elt (list form))
+ ;; If the file has been loaded already, run FORM right away.
+ (if (if (symbolp file)
+ (featurep file)
+ ;; Make sure `load-history' contains the files dumped with
+ ;; Emacs for the case that FILE is one of them.
+ (load-symbol-file-load-history)
+ (assoc file load-history))
+ (eval form))))
form)
(defun eval-next-after-load (file)
@@ -1534,11 +1536,10 @@
(defun functionp (object)
"Non-nil iff OBJECT is a type of object that can be called as a function."
- (or (and (symbolp object)
- (fboundp object)
+ (or (and (symbolp object) (fboundp object)
(setq object (indirect-function object))
(eq (car-safe object) 'autoload)
- (not (car-safe (cdr-safe (cdr-safe (cdr-safe (cdr-safe object)))))))
+ (not (car-safe (cdr-safe (cdr-safe (cdr-safe (cdr object)))))))
(subrp object) (byte-code-function-p object)
(eq (car-safe object) 'lambda)))