[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Strange behaviour of the undo function
From: |
Juri Linkov |
Subject: |
Re: Strange behaviour of the undo function |
Date: |
Thu, 29 Dec 2005 03:03:01 +0200 |
User-agent: |
Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux) |
> While looking at this bug report, I found another bug. The menu and
> toolbar item "undo" doesn't become disabled when the pending undo
> list is empty.
I found another place where the predicate `listp' is missing for
`pending-undo-list'. Test case:
M-: a b c C-a C-t
displays the error message:
undo-more: No further undo information
which has nothing to do with transposing two characters. It correctly
fails because it can't transpose read-only characters, but its error
message is wrong. This could be fixed by the patch below. It displays
the correct error message:
transpose-subr-1: Text is read-only
Index: lisp/subr.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/subr.el,v
retrieving revision 1.491
diff -c -r1.491 subr.el
*** lisp/subr.el 28 Dec 2005 16:36:18 -0000 1.491
--- lisp/subr.el 29 Dec 2005 01:01:55 -0000
***************
*** 1686,1692 ****
(when (and (consp elt) (not (eq elt (last pending-undo-list))))
(error "Undoing to some unrelated state"))
;; Undo it all.
! (while pending-undo-list (undo-more 1))
;; Reset the modified cons cell ELT to its original content.
(when (consp elt)
(setcar elt old-car)
--- 1686,1692 ----
(when (and (consp elt) (not (eq elt (last pending-undo-list))))
(error "Undoing to some unrelated state"))
;; Undo it all.
! (while (listp pending-undo-list) (undo-more 1))
;; Reset the modified cons cell ELT to its original content.
(when (consp elt)
(setcar elt old-car)
--
Juri Linkov
http://www.jurta.org/emacs/