Mercurial > emacs
diff lisp/loadhist.el @ 61599:4cb17d270cf3
(unload-feature): Update for new format of load-history. Simplify the code.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 17 Apr 2005 15:57:00 +0000 |
parents | 55722dde9e0a |
children | 79b58e05730b |
line wrap: on
line diff
--- a/lisp/loadhist.el Sun Apr 17 15:55:50 2005 +0000 +++ b/lisp/loadhist.el Sun Apr 17 15:57:00 2005 +0000 @@ -194,29 +194,27 @@ (dolist (elt (cdr unload-hook-features-list)) (if (symbolp elt) (elp-restore-function elt)))) - (mapc - (lambda (x) - (cond ((stringp x) nil) - ((consp x) - ;; Remove any feature names that this file provided. - (if (eq (car x) 'provide) - (setq features (delq (cdr x) features))) - (when (eq (car x) 'defvar) - ;; Kill local values as much as possible. - (dolist (buf (buffer-list)) - (with-current-buffer buf - (kill-local-variable (cdr x)))) - ;; Get rid of the default binding if we can. - (unless (local-variable-if-set-p (cdr x)) - (makunbound (cdr x))))) - (t - (when (fboundp x) - (if (fboundp 'ad-unadvise) - (ad-unadvise x)) - (fmakunbound x) - (let ((aload (get x 'autoload))) - (if aload (fset x (cons 'autoload aload)))))))) - (cdr unload-hook-features-list)) + (dolist (x (cdr unload-hook-features-list)) + (when (consp x) + ;; Remove any feature names that this file provided. + (if (eq (car x) 'provide) + (setq features (delq (cdr x) features))) + (when (eq (car x) 'defvar) + ;; Kill local values as much as possible. + (dolist (buf (buffer-list)) + (with-current-buffer buf + (kill-local-variable (cdr x)))) + ;; Get rid of the default binding if we can. + (unless (local-variable-if-set-p (cdr x)) + (makunbound (cdr x)))) + (when (eq (car x) 'defun) + (let ((fun (cdr x))) + (when (fboundp fun) + (if (fboundp 'ad-unadvise) + (ad-unadvise fun)) + (fmakunbound fun) + (let ((aload (get fun 'autoload))) + (if aload (fset fun (cons 'autoload aload))))))))) ;; Delete the load-history element for this file. (let ((elt (assoc file load-history))) (setq load-history (delq elt load-history)))))