# HG changeset patch # User Gerd Moellmann # Date 975936609 0 # Node ID ce6d3ca84e6d8121ea9daaea23c7f8ff6a090311 # Parent c073ad4159fdd80978afc87dafe99d22ce95883c (Finsert_file_contents): When VISIT is t, don't record undo information for format-decode. diff -r c073ad4159fd -r ce6d3ca84e6d src/fileio.c --- a/src/fileio.c Mon Dec 04 12:28:37 2000 +0000 +++ b/src/fileio.c Mon Dec 04 13:30:09 2000 +0000 @@ -3418,7 +3418,7 @@ 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 @@ /* 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)