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: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/src/undo.c
Date: Mon, 31 Jan 2005 17:44:27 -0500

Index: emacs/src/undo.c
diff -c emacs/src/undo.c:1.66 emacs/src/undo.c:1.67
*** emacs/src/undo.c:1.66       Sun Jan 30 02:06:13 2005
--- emacs/src/undo.c    Mon Jan 31 22:44:27 2005
***************
*** 40,45 ****
--- 40,49 ----
  
  Lisp_Object Qinhibit_read_only;
  
+ /* Marker for function call undo list elements.  */
+ 
+ Lisp_Object Qapply;
+ 
  /* The first time a command records something for undo.
     it also allocates the undo-boundary object
     which will be added to the list at the end of the command.
***************
*** 543,552 ****
                  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
--- 547,564 ----
                  Fgoto_char (car);
                  Fdelete_region (car, cdr);
                }
!             else if (EQ (car, Qapply))
                {
                  Lisp_Object oldlist = current_buffer->undo_list;
!                 /* Element (apply FUNNAME . ARGS) means call FUNNAME to undo. 
 */
!                 car = Fcar (cdr);
!                 if (INTEGERP (car))
!                   {
!                     /* Long format: (apply DELTA START END FUNNAME . ARGS).  
*/
!                     cdr = Fcdr (Fcdr (Fcdr (cdr)));
!                     car = Fcar (cdr);
!                   }
!                 cdr = Fcdr (cdr);
                  apply1 (car, cdr);
                  /* Make sure this produces at least one undo entry,
                     so the test in `undo' for continuing an undo series
***************
*** 608,613 ****
--- 620,628 ----
    Qinhibit_read_only = intern ("inhibit-read-only");
    staticpro (&Qinhibit_read_only);
  
+   Qapply = intern ("apply");
+   staticpro (&Qapply);
+ 
    pending_boundary = Qnil;
    staticpro (&pending_boundary);
  




reply via email to

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