(after-load-functions): New hook.
(do-after-load-evaluation): Run it. Use string-match-p to detect `obsolete' packages, rather than painfully extracting the relevant directory name.
This commit is contained in:
parent
8547eda321
commit
838ff45802
3 changed files with 18 additions and 4 deletions
2
etc/NEWS
2
etc/NEWS
|
@ -210,6 +210,8 @@ functions and variables.
|
|||
|
||||
* Lisp changes in Emacs 23.2
|
||||
|
||||
** New hook `after-load-functions' run after loading an Elisp file.
|
||||
|
||||
** You can control which binding is preferentially shown in menus and
|
||||
docstrings by adding a `:advertised-binding' property to the corresponding
|
||||
command's symbol. That property can hold a single binding or a list
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2009-09-15 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* subr.el (after-load-functions): New hook.
|
||||
(do-after-load-evaluation): Run it. Use string-match-p to detect
|
||||
`obsolete' packages, rather than painfully extracting the relevant
|
||||
directory name.
|
||||
|
||||
2009-09-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* apropos.el (apropos-documentation-check-doc-file): Avoid assignment to
|
||||
|
|
13
lisp/subr.el
13
lisp/subr.el
|
@ -1670,6 +1670,11 @@ This function makes or adds to an entry on `after-load-alist'."
|
|||
(featurep file))
|
||||
(eval form))))
|
||||
|
||||
(defvar after-load-functions nil
|
||||
"Special hook run after loading a file.
|
||||
Each function there is called with a single argument, the absolute
|
||||
name of the file just loaded.")
|
||||
|
||||
(defun do-after-load-evaluation (abs-file)
|
||||
"Evaluate all `eval-after-load' forms, if any, for ABS-FILE.
|
||||
ABS-FILE, a string, should be the absolute true name of a file just loaded.
|
||||
|
@ -1682,15 +1687,15 @@ This function is called directly from the C code."
|
|||
(mapc #'eval (cdr a-l-element))))
|
||||
after-load-alist)
|
||||
;; Complain when the user uses obsolete files.
|
||||
(when (equal "obsolete"
|
||||
(file-name-nondirectory
|
||||
(directory-file-name (file-name-directory abs-file))))
|
||||
(when (string-match-p "/obsolete/[^/]*\\'" abs-file)
|
||||
(run-with-timer 0 nil
|
||||
(lambda (file)
|
||||
(message "Package %s is obsolete!"
|
||||
(substring file 0
|
||||
(string-match "\\.elc?\\>" file))))
|
||||
(file-name-nondirectory abs-file))))
|
||||
(file-name-nondirectory abs-file)))
|
||||
;; Finally, run any other hook.
|
||||
(run-hook-with-args 'after-load-functions abs-file))
|
||||
|
||||
(defun eval-next-after-load (file)
|
||||
"Read the following input sexp, and run it whenever FILE is loaded.
|
||||
|
|
Loading…
Add table
Reference in a new issue