Commit 0835f01e authored by Glenn Morris's avatar Glenn Morris
Browse files

eval-after-load fix for bug#10946

* lisp/subr.el (eval-after-load): If named feature is provided not
from a file, run after-load forms.
parent c7e73d51
2012-03-16 Glenn Morris <rgm@gnu.org>
* subr.el (eval-after-load): If named feature is provided not from
a file, run after-load forms. (Bug#10946)
* calendar/calendar.el (calendar-insert-at-column):
Handle non-unit-width characters a bit better. (Bug#10978)
......
......@@ -1785,6 +1785,8 @@ this name matching.
Alternatively, FILE can be a feature (i.e. a symbol), in which case FORM
is evaluated at the end of any file that `provide's this feature.
If the feature is provided when evaluating code not associated with a
file, FORM is evaluated immediately after the provide statement.
Usually FILE is just a library name like \"font-lock\" or a feature name
like 'font-lock.
......@@ -1814,14 +1816,16 @@ This function makes or adds to an entry on `after-load-alist'."
;; make sure that `form' is really run "after-load" in case the provide
;; call happens early.
(setq form
`(when load-file-name
(let ((fun (make-symbol "eval-after-load-helper")))
(fset fun `(lambda (file)
(if (not (equal file ',load-file-name))
nil
(remove-hook 'after-load-functions ',fun)
,',form)))
(add-hook 'after-load-functions fun)))))
`(if load-file-name
(let ((fun (make-symbol "eval-after-load-helper")))
(fset fun `(lambda (file)
(if (not (equal file ',load-file-name))
nil
(remove-hook 'after-load-functions ',fun)
,',form)))
(add-hook 'after-load-functions fun))
;; Not being provided from a file, run form right now.
,form)))
;; Add FORM to the element unless it's already there.
(unless (member form (cdr elt))
(nconc elt (purecopy (list form)))))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment