emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/subr.el,v


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/subr.el,v
Date: Fri, 25 Jan 2008 22:51:18 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Richard M. Stallman <rms>       08/01/25 22:51:18

Index: subr.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/subr.el,v
retrieving revision 1.574
retrieving revision 1.575
diff -u -b -r1.574 -r1.575
--- subr.el     22 Jan 2008 23:53:44 -0000      1.574
+++ subr.el     25 Jan 2008 22:51:18 -0000      1.575
@@ -1103,7 +1103,17 @@
                (append hook-value (list function))
              (cons function hook-value))))
     ;; Set the actual variable
-    (if local (set hook hook-value) (set-default hook hook-value))))
+    (if local
+       (progn
+         ;; If HOOK isn't a permanent local,
+         ;; but FUNCTION wants to survive a change of modes,
+         ;; mark HOOK as partially permanent.
+         (and (symbolp function)
+              (get function 'permanent-local-hook)
+              (not (get hook 'permanent-local))
+              (put hook 'permanent-local 'permanent-local-hook))
+         (set hook hook-value))
+      (set-default hook hook-value))))
 
 (defun remove-hook (hook function &optional local)
   "Remove from the value of HOOK the function FUNCTION.




reply via email to

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