emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unload-feature is broken


From: Richard Stallman
Subject: Re: unload-feature is broken
Date: Wed, 13 Apr 2005 01:02:47 -0400

Does this fix it?

*** loadhist.el 02 Jan 2005 18:45:48 -0500      1.30
--- loadhist.el 12 Apr 2005 22:15:08 -0400      
***************
*** 194,222 ****
        (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))
      ;; Delete the load-history element for this file.
      (let ((elt (assoc file load-history)))
        (setq load-history (delq elt load-history)))))
--- 194,220 ----
        (dolist (elt (cdr unload-hook-features-list))
          (if (symbolp elt)
              (elp-restore-function elt))))
!     (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)))))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]