mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
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.
This commit is contained in:
parent
c7e73d5177
commit
0835f01e98
2 changed files with 15 additions and 8 deletions
|
|
@ -1,5 +1,8 @@
|
|||
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)
|
||||
|
||||
|
|
|
|||
20
lisp/subr.el
20
lisp/subr.el
|
|
@ -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)))))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue