emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/undo.c


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/src/undo.c
Date: Sat, 29 Jan 2005 12:16:31 -0500

Index: emacs/src/undo.c
diff -c emacs/src/undo.c:1.63 emacs/src/undo.c:1.64
*** emacs/src/undo.c:1.63       Thu Dec 23 00:15:23 2004
--- emacs/src/undo.c    Sat Jan 29 17:16:31 2005
***************
*** 519,525 ****
                }
              else if (EQ (car, Qnil))
                {
!                 /* Element (nil prop val beg . end) is property change.  */
                  Lisp_Object beg, end, prop, val;
  
                  prop = Fcar (cdr);
--- 519,525 ----
                }
              else if (EQ (car, Qnil))
                {
!                 /* Element (nil PROP VAL BEG . END) is property change.  */
                  Lisp_Object beg, end, prop, val;
  
                  prop = Fcar (cdr);
***************
*** 543,548 ****
--- 543,560 ----
                  Fgoto_char (car);
                  Fdelete_region (car, cdr);
                }
+             else if (SYMBOLP (car))
+               {
+                 Lisp_Object oldlist = current_buffer->undo_list;
+                 /* Element (FUNNAME . ARGS) means call FUNNAME to undo.  */
+                 apply1 (car, cdr);
+                 /* Make sure this produces at least one undo entry,
+                    so the test in `undo' for continuing an undo series
+                    will work right.  */
+                 if (EQ (oldlist, current_buffer->undo_list))
+                   current_buffer->undo_list
+                     = Fcons (list2 (Qcdr, Qnil), current_buffer->undo_list);
+               }
              else if (STRINGP (car) && INTEGERP (cdr))
                {
                  /* Element (STRING . POS) means STRING was deleted.  */
***************
*** 589,595 ****
    UNGCPRO;
    return unbind_to (count, list);
  }
! 
  void
  syms_of_undo ()
  {
--- 601,607 ----
    UNGCPRO;
    return unbind_to (count, list);
  }
! 
  void
  syms_of_undo ()
  {




reply via email to

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