Mercurial > emacs
changeset 3967:42932adb7074
(kill-region): Cope with change hooks that change props.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 03 Jul 1993 19:12:35 +0000 |
parents | dcf86f82f2c8 |
children | e6f0cff88f06 |
files | lisp/simple.el |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Sat Jul 03 10:17:56 1993 +0000 +++ b/lisp/simple.el Sat Jul 03 19:12:35 1993 +0000 @@ -1040,11 +1040,18 @@ (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