# HG changeset patch # User Stefan Monnier # Date 1055875206 0 # Node ID bee14d8ec0a627835d7ebbfb5c1765ed8c557a9d # Parent 4b43c69f3ae3f3b1dc265ea8fe85d2ba9a55371f (kill-new): Leave yank-handler property alone if no explicit yank-handler is specified. (vis-mode-saved-buffer-invisibility-spec): Rename from saved-buffer-invisibility-spec. (vis-mode): Correctly handle the case where the mode is turned on or off several times in a row. diff -r 4b43c69f3ae3 -r bee14d8ec0a6 lisp/simple.el --- a/lisp/simple.el Tue Jun 17 18:30:34 2003 +0000 +++ b/lisp/simple.el Tue Jun 17 18:40:06 2003 +0000 @@ -1811,8 +1811,7 @@ argument should still be a \"useful\" string for such uses." (if (> (length string) 0) (if yank-handler - (put-text-property 0 1 'yank-handler yank-handler string) - (remove-list-of-text-properties 0 1 '(yank-handler) string)) + (put-text-property 0 1 'yank-handler yank-handler string)) (if yank-handler (signal 'args-out-of-range (list string "yank-handler specified for empty string")))) @@ -4481,9 +4480,7 @@ :group 'display :version "21.4") -(make-variable-buffer-local 'saved-buffer-invisibility-spec) - -(defvar saved-buffer-invisibility-spec nil +(defvar vis-mode-saved-buffer-invisibility-spec nil "Saved value of buffer-invisibility-spec when `vis-mode' is on.") (define-minor-mode vis-mode @@ -4498,12 +4495,13 @@ Disabling vis-mode restores the saved value of `buffer-invisibility-spec'." :lighter " Vis" - (if vis-mode - (progn - (setq saved-buffer-invisibility-spec buffer-invisibility-spec - buffer-invisibility-spec nil)) - (setq buffer-invisibility-spec saved-buffer-invisibility-spec - saved-buffer-invisibility-spec nil))) + (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) + (setq buffer-invisibility-spec vis-mode-saved-buffer-invisibility-spec) + (kill-local-variable 'vis-mode-saved-buffer-invisibility-spec)) + (when vis-mode + (set (make-local-variable 'vis-mode-saved-buffer-invisibility-spec) + buffer-invisibility-spec) + (setq buffer-invisibility-spec nil))) ;; Minibuffer prompt stuff.