[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE]
From: |
Juanma Barranquero |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE] |
Date: |
Fri, 19 Oct 2007 08:55:14 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Branch: EMACS_22_BASE
Changes by: Juanma Barranquero <lektu> 07/10/19 08:55:14
Index: loadhist.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/loadhist.el,v
retrieving revision 1.47.2.3
retrieving revision 1.47.2.4
diff -u -b -r1.47.2.3 -r1.47.2.4
--- loadhist.el 18 Oct 2007 13:49:28 -0000 1.47.2.3
+++ loadhist.el 19 Oct 2007 08:55:14 -0000 1.47.2.4
@@ -146,11 +146,13 @@
`-hook' or `-hooks', from which `unload-feature' tries to remove
pertinent symbols.")
-(defvar unload-hook-features-list nil
+(defvar unload-function-features-list nil
"List of features of the package being unloaded.
-This is meant to be used by FEATURE-unload-hook hooks, see the
+This is meant to be used by FEATURE-unload-function, see the
documentation of `unload-feature' for details.")
+(define-obsolete-variable-alias 'unload-hook-features-list
+ 'unload-function-features-list "22.2")
;;;###autoload
(defun unload-feature (feature &optional force)
@@ -181,19 +183,25 @@
(when dependents
(error "Loaded libraries %s depend on %s"
(prin1-to-string dependents) file))))
- (let* ((unload-hook-features-list (feature-symbols feature))
- (file (pop unload-hook-features-list))
+ (let* ((unload-function-features-list (feature-symbols feature))
+ (file (pop unload-function-features-list))
;; If non-nil, this is a symbol for which we should
;; restore a previous autoload if possible.
restore-autoload
- (unload-hook (intern-soft (concat (symbol-name feature)
- "-unload-hook"))))
+ (name (symbol-name feature))
+ (unload-hook (intern-soft (concat name "-unload-hook")))
+ (unload-func (intern-soft (concat name "-unload-function"))))
+ ;; If FEATURE-unload-function is defined and returns non-nil,
+ ;; don't try to do anything more; otherwise proceed normally.
+ (unless (and (bound-and-true-p unload-func)
+ (funcall unload-func))
;; Try to avoid losing badly when hooks installed in critical
;; places go away. (Some packages install things on
;; `kill-buffer-hook', `activate-menubar-hook' and the like.)
+ (if unload-hook
;; First off, provide a clean way for package FOO to arrange
;; this by adding hooks on the variable `FOO-unload-hook'.
- (if unload-hook
+ ;; This is obsolete; FEATURE-unload-function should be used now.
(run-hooks unload-hook)
;; Otherwise, do our best. Look through the obarray for symbols
;; which seem to be hook variables or special hook functions and
@@ -208,22 +216,22 @@
(or (and (consp (symbol-value x)) ; Random hooks.
(string-match "-hooks?\\'" (symbol-name x)))
(memq x unload-feature-special-hooks))) ; Known
abnormal hooks etc.
- (dolist (y unload-hook-features-list)
+ (dolist (y unload-function-features-list)
(when (and (eq (car-safe y) 'defun)
(not (get (cdr y) 'autoload)))
(remove-hook x (cdr y)))))))
;; Remove any feature-symbols from auto-mode-alist as well.
- (dolist (y unload-hook-features-list)
+ (dolist (y unload-function-features-list)
(when (and (eq (car-safe y) 'defun)
(not (get (cdr y) 'autoload)))
(setq auto-mode-alist
(rassq-delete-all (cdr y) auto-mode-alist)))))
(when (fboundp 'elp-restore-function) ; remove ELP stuff first
- (dolist (elt unload-hook-features-list)
+ (dolist (elt unload-function-features-list)
(when (symbolp elt)
(elp-restore-function elt))))
- (dolist (x unload-hook-features-list)
+ (dolist (x unload-function-features-list)
(if (consp x)
(case (car x)
;; Remove any feature names that this file provided.
@@ -256,7 +264,7 @@
(unless (local-variable-if-set-p x)
(makunbound x))))
;; Delete the load-history element for this file.
- (setq load-history (delq (assoc file load-history) load-history)))
+ (setq load-history (delq (assoc file load-history) load-history))))
;; Don't return load-history, it is not useful.
nil)
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Richard M. Stallman, 2007/10/10
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Juanma Barranquero, 2007/10/18
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE],
Juanma Barranquero <=
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Richard M. Stallman, 2007/10/24
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Juanma Barranquero, 2007/10/28
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Juanma Barranquero, 2007/10/29
- [Emacs-diffs] Changes to emacs/lisp/loadhist.el,v [EMACS_22_BASE], Juanma Barranquero, 2007/10/30