emacs-pretest-bug
[Top][All Lists]
Advanced

[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/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]