undo-equiv-table so as undo-only does not inf loop in the presence
of consecutive nils in undo list.
Fixes: debbugs:17236
+2014-04-12 Barry O'Reilly <gundaetiapo@gmail.com>
+
+ * simple.el (undo): Prevent insertion of identity mapping into
+ undo-equiv-table so as undo-only does not inf loop in the presence
+ of consecutive nils in undo list.
+
2014-04-12 Matthias Dahl <matthias.dahl@binary-island.eu>
* faces.el (make-face): Deprecate optional argument as it is no
;; above when checking.
(while (eq (car list) nil)
(setq list (cdr list)))
- (puthash list (if undo-in-region t pending-undo-list)
+ (puthash list
+ ;; Prevent identity mapping. This can happen if
+ ;; consecutive nils are erroneously in undo list.
+ (if (or undo-in-region (eq list pending-undo-list))
+ t
+ pending-undo-list)
undo-equiv-table))
;; Don't specify a position in the undo record for the undo command.
;; Instead, undoing this should move point to where the change is.