From: Gerd Moellmann Date: Mon, 4 Dec 2000 13:30:09 +0000 (+0000) Subject: (Finsert_file_contents): When VISIT is t, don't X-Git-Tag: emacs-pretest-21.0.93~250 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ed8e506f242f571faea4ad7767321aac6b2fb8de;p=emacs.git (Finsert_file_contents): When VISIT is t, don't record undo information for format-decode. --- diff --git a/src/fileio.c b/src/fileio.c index 3385da52da0..0eb07ce3bc1 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3418,7 +3418,7 @@ actually used.") int inserted = 0; register int how_much; register int unprocessed; - int count = specpdl_ptr - specpdl; + int count = BINDING_STACK_SIZE (); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; Lisp_Object handler, val, insval, orig_filename; Lisp_Object p; @@ -4289,10 +4289,24 @@ actually used.") /* Decode file format */ if (inserted > 0) { + int empty_undo_list_p = 0; + + /* If we're anyway going to discard undo information, don't + record it in the first place. The buffer's undo list at this + point is either nil or t when visiting a file. */ + if (!NILP (visit)) + { + empty_undo_list_p = NILP (current_buffer->undo_list); + current_buffer->undo_list = Qt; + } + insval = call3 (Qformat_decode, Qnil, make_number (inserted), visit); CHECK_NUMBER (insval, 0); inserted = XFASTINT (insval); + + if (!NILP (visit)) + current_buffer->undo_list = empty_undo_list_p ? Qnil : Qt; } if (set_coding_system)