[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

patch: fix undo doing only one step



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 back

No 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@cs.vassar.edu No Soliciting!

Emacspeak List Archive | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | Pre 1998

Emacspeak Files | Emacspeak Blog | Search the archive