# HG changeset patch # User Richard M. Stallman # Date 733130900 0 # Node ID 94e135f2d64d5d5674afa72e9679ea08356f4c2e # Parent c00b3b35739259dfc80e7b0df166faace45430cf (local-write-file-hooks): New variable. (set-visited-file-name): Kill local-write-file-hooks as local var. (basic-save-buffer): Use local-write-file-hooks. diff -r c00b3b357392 -r 94e135f2d64d lisp/files.el --- a/lisp/files.el Fri Mar 26 04:17:45 1993 +0000 +++ b/lisp/files.el Fri Mar 26 07:28:20 1993 +0000 @@ -180,6 +180,7 @@ The buffer's local variables (if any) will have been processed before the functions are called.") +;;; In case someone does make it local. (put 'write-file-hooks 'permanent-local t) (defvar write-file-hooks nil "List of functions to be called before writing out a buffer to a file. @@ -187,7 +188,14 @@ and the rest are not called. These hooks are considered to pertain to the visited file. So this list is cleared if you change the visited file name. -See also `write-contents-hooks'.") +See also `write-contents-hooks'. +Don't make this variable buffer-local; instead, use `local-write-file-hooks'.") + +(put 'local-write-file-hooks 'permanent-local t) +(defvar local-write-file-hooks nil + "Just like `write-file-hooks', except intended for per-buffer use. +The functions in this list are called before the ones in +`write-file-hooks'.") (defvar write-contents-hooks nil "List of functions to be called before writing out a buffer to a file. @@ -918,6 +926,7 @@ ;; that visit things that are not local files as if they were files. ;; Changing to visit an ordinary local file instead should flush the hook. (kill-local-variable 'write-file-hooks) + (kill-local-variable 'local-write-file-hooks) (kill-local-variable 'revert-buffer-function) (kill-local-variable 'backup-inhibited) ;; Turn off backup files for certain file names. @@ -1244,7 +1253,8 @@ (save-excursion (goto-char (point-max)) (insert ?\n))) - (let ((hooks (append write-contents-hooks write-file-hooks)) + (let ((hooks (append write-contents-hooks local-write-file-hooks + write-file-hooks)) (done nil)) (while (and hooks (not (setq done (funcall (car hooks)))))