[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 977630b528: * lisp/subr.el (combine-change-calls-1): Fix bug#6046
From: |
Stefan Monnier |
Subject: |
master 977630b528: * lisp/subr.el (combine-change-calls-1): Fix bug#60467 |
Date: |
Fri, 13 Jan 2023 17:41:44 -0500 (EST) |
branch: master
commit 977630b5285809a57e50ff5f38d9c34247b549a7
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/subr.el (combine-change-calls-1): Fix bug#60467
Don't stop at timestamps.
Also Don't burp about breakage just because (cdr old-bul) is nil.
---
lisp/subr.el | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/lisp/subr.el b/lisp/subr.el
index d1d3c76caf..9e50b1e7f9 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -4966,21 +4966,20 @@ the function `undo--wrap-and-run-primitive-undo'."
beg
(marker-position end-marker)
#'undo--wrap-and-run-primitive-undo
- beg (marker-position end-marker) buffer-undo-list))
+ beg (marker-position end-marker)
+ ;; We will truncate this list by side-effect below.
+ buffer-undo-list))
(ptr buffer-undo-list))
(if (not (eq buffer-undo-list old-bul))
(progn
(while (and (not (eq (cdr ptr) old-bul))
;; In case garbage collection has removed OLD-BUL.
- (cdr ptr)
- ;; Don't include a timestamp entry.
- (not (and (consp (cdr ptr))
- (consp (cadr ptr))
- (eq (caadr ptr) t)
- (setq old-bul (cdr ptr)))))
+ (or (cdr ptr)
+ (progn
+ (message "combine-change-calls:
buffer-undo-list broken")
+ nil)))
(setq ptr (cdr ptr)))
- (unless (cdr ptr)
- (message "combine-change-calls: buffer-undo-list broken"))
+ ;; Truncate the list that's in the `apply' entry.
(setcdr ptr nil)
(push ap-elt buffer-undo-list)
(setcdr buffer-undo-list old-bul)))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 977630b528: * lisp/subr.el (combine-change-calls-1): Fix bug#60467,
Stefan Monnier <=