This is how to reproduce the bug: 1. Create a new buffer with name "aa" 2. Type "12" 3. Go left 4. Delete (only "1" remains) 5. Type "3" 6. Buffer consists of "13" 7. undo - reverts to "12" 8. undo (again) Expected behaviour: erase "12" Actual behaviour: "13" gets backNo matter how many more times undo is called, only "12" changes to "13" and back.
The attached patch fixes the problem. It turned out that emacspeak-speak-line, which was called by undo advice, inserts some records into buffer-undo-list of the active buffer. Shadowing buffer-undo-list fixes the problem.
Jarek
Index: lisp/emacspeak-speak.el =================================================================== --- lisp/emacspeak-speak.el (revision 8509) +++ lisp/emacspeak-speak.el (working copy) @@ -837,6 +837,7 @@ (when (listp arg) (setq arg (car arg ))) (save-excursion (let ((inhibit-field-text-motion t) + (buffer-undo-list t) (start nil) (end nil ) (inhibit-point-motion-hooks t)
If you have questions about this archive or had problems using it, please send mail to:
priestdo@xxxxxxxxxxx No Soliciting!Emacspeak List Archive | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | Pre 1998