[Top][All Lists]
[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);