]> git.eshelyaron.com Git - emacs.git/commitdiff
(eval-after-load): Make it work with features as well.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 16 Nov 2001 14:15:08 +0000 (14:15 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 16 Nov 2001 14:15:08 +0000 (14:15 +0000)
lisp/ChangeLog
lisp/subr.el

index 7742b78677a0b3e34a3466593a586a1e486a91d2..675a6d309b1195fe93cf39ff0a2878ac155b7d24 100644 (file)
@@ -1,6 +1,19 @@
+2001-11-16  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * subr.el (eval-after-load): Make it work with features as well.
+
+       * log-view.el (log-view-mode): Don't mark the buffer unmodified.
+
+       * international/mule-cmds.el (describe-input-method): Setup xref.
+       (set-language-environment): Use functionp.
+       (locale-language-names, locale-charset-language-names)
+       (locale-preferred-coding-systems): Defconst and purecopy.
+
+       * language/european.el (mac-roman): Add mime-charset property.
+
 2001-11-15  Richard M. Stallman  <rms@gnu.org>
 
-       * emacs-lisp/cl.el (values, values-list, multiple-value-list) 
+       * emacs-lisp/cl.el (values, values-list, multiple-value-list)
        (multiple-value-apply, nth-value): Use defsubst rather than defalias
        to get better doc strings.
 
index 46f154df6ce553eeb6a35fc029c763a6f5195655..5e74889570963abe73f1287b95e5f0394c803081 100644 (file)
@@ -847,21 +847,23 @@ If FILE is already loaded, evaluate FORM right now.
 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 @@ configuration."
 
 (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)))