]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-new): Leave yank-handler property alone if no
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 17 Jun 2003 18:40:06 +0000 (18:40 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 17 Jun 2003 18:40:06 +0000 (18:40 +0000)
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.

lisp/simple.el

index 49701183ba50fcf63c33178d6193521e607d77a3..c6cad27ed60cdbfb35e2795cfb88c29777cf0298 100644 (file)
@@ -1811,8 +1811,7 @@ may access and use elements from the kill-ring directly, the STRING
 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 @@ wait this many seconds after Emacs becomes idle before doing an update."
   :group 'display
   :version "21.4")
 \f
-(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 @@ the buffer visible.
 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)))
 \f
 ;; Minibuffer prompt stuff.