]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-region): Cope with change hooks that change props.
authorRichard M. Stallman <rms@gnu.org>
Sat, 3 Jul 1993 19:12:35 +0000 (19:12 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 3 Jul 1993 19:12:35 +0000 (19:12 +0000)
lisp/simple.el

index ebf1a45812b58ed1384c4c969bf92a7aa1063b7b..0416ba9bb26df101796f2e704661abc6b5a9881f 100644 (file)
@@ -1040,11 +1040,18 @@ to make one entry in the kill ring."
             (eq last-command 'kill-region)
             (eq beg end)))
     ;; Don't let the undo list be truncated before we can even access it.
-    (let ((undo-strong-limit (+ (- (max beg end) (min beg end)) 100)))
+    (let ((undo-strong-limit (+ (- (max beg end) (min beg end)) 100))
+         (old-list buffer-undo-list)
+         tail)
       (delete-region beg end)
+      ;; Search back in buffer-undo-list for this string,
+      ;; in case a change hook made property changes.
+      (setq tail buffer-undo-list)
+      (while (not (stringp (car (car tail))))
+       (setq tail (cdr tail)))
       ;; Take the same string recorded for undo
       ;; and put it in the kill-ring.
-      (kill-new (car (car buffer-undo-list)))
+      (kill-new (car (car tail)))
       (setq this-command 'kill-region)))
 
    (t