]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fsave_current_buffer): New function.
authorRichard M. Stallman <rms@gnu.org>
Mon, 23 Sep 1996 04:37:40 +0000 (04:37 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 23 Sep 1996 04:37:40 +0000 (04:37 +0000)
(syms_of_editfns): defsubr it.

src/editfns.c

index ee126f06e16b47845a2ad4c6e95416952a5781cb..dcef4bce2697d1d38b10703f5cea9584eed7e6cd 100644 (file)
@@ -335,7 +335,22 @@ The state of activation of the mark is also restored.")
   int count = specpdl_ptr - specpdl;
 
   record_unwind_protect (save_excursion_restore, save_excursion_save ());
-                        
+
+  val = Fprogn (args);
+  return unbind_to (count, val);
+}
+
+DEFUN ("save-current-buffer", Fsave_current_buffer, Ssave_current_buffer, 0, UNEVALLED, 0,
+  "Save the current buffer; execute BODY; restore the current buffer.\n\
+Executes BODY just like `progn'.")
+  (args)
+     Lisp_Object args;
+{
+  register Lisp_Object val;
+  int count = specpdl_ptr - specpdl;
+
+  record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
+
   val = Fprogn (args);
   return unbind_to (count, val);
 }
@@ -2515,6 +2530,7 @@ functions if all the text being accessed has this property.");
 /*  defsubr (&Smark); */
 /*  defsubr (&Sset_mark); */
   defsubr (&Ssave_excursion);
+  defsubr (&Ssave_current_buffer);
 
   defsubr (&Sbufsize);
   defsubr (&Spoint_max);