]> git.eshelyaron.com Git - emacs.git/commitdiff
(Finsert_file_contents): Don't reset undo_list if no change
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 27 Feb 2008 04:10:15 +0000 (04:10 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 27 Feb 2008 04:10:15 +0000 (04:10 +0000)
is made to the buffer.

src/ChangeLog
src/fileio.c

index 2e81f6dcfb7c023b589eb7c960fcfac314800820..edb62011614f99147c105820ac8d083da03a29e5 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fileio.c (Finsert_file_contents): Don't reset undo_list if no change
+       is made to the buffer.
+
 2008-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * dispextern.h (face_at_buffer_position, face_for_overlay_string)
index e2d399f5a45bb87c69d39f57b39ec4636db3c6b5..4430cf4db57964057a6cb97ad23e882e985df59c 100644 (file)
@@ -3716,6 +3716,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
   struct stat st;
   register int fd;
   int inserted = 0;
+  int nochange = 0;
   register int how_much;
   register int unprocessed;
   int count = SPECPDL_INDEX ();
@@ -4281,7 +4282,10 @@ variable `last-coding-system-used' to the coding system actually used.  */)
        {
          specpdl_ptr--;
          /* Truncate the buffer to the size of the file.  */
-         del_range_byte (same_at_start, same_at_end, 0);
+         if (same_at_start == same_at_end)
+           nochange = 1;
+         else
+           del_range_byte (same_at_start, same_at_end, 0);
          inserted = 0;
 
          unbind_to (this_count, Qnil);
@@ -4628,7 +4632,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
   if (!NILP (visit))
     {
-      if (!EQ (current_buffer->undo_list, Qt))
+      if (!EQ (current_buffer->undo_list, Qt) && !nochange)
        current_buffer->undo_list = Qnil;
 
       if (NILP (handler))