emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src ChangeLog fileio.c


From: Chong Yidong
Subject: [Emacs-diffs] emacs/src ChangeLog fileio.c
Date: Tue, 21 Jul 2009 23:34:04 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/07/21 23:34:04

Modified files:
        src            : ChangeLog fileio.c 

Log message:
        * fileio.c: Revert 2009-07-16 changes.
        (Vauto_save_include_big_deletions): New variable.
        (Fdo_auto_save): Disable auto-save only if 
auto-save-include-big-deletions is nil.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7658&r2=1.7659
http://cvs.savannah.gnu.org/viewcvs/emacs/src/fileio.c?cvsroot=emacs&r1=1.656&r2=1.657

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7658
retrieving revision 1.7659
diff -u -b -r1.7658 -r1.7659
--- ChangeLog   21 Jul 2009 20:12:09 -0000      1.7658
+++ ChangeLog   21 Jul 2009 23:34:02 -0000      1.7659
@@ -1,5 +1,12 @@
 2009-07-21  Chong Yidong  <address@hidden>
 
+       * fileio.c: Revert 2009-07-16 changes.
+       (Vauto_save_include_big_deletions): New variable.
+       (Fdo_auto_save): Disable auto-save only if
+       auto-save-include-big-deletions is nil.
+
+2009-07-21  Chong Yidong  <address@hidden>
+
        * xdisp.c (move_it_to): For continued lines ending in a tab, take
        the overflowed pixels into account (Bug#3879).
 

Index: fileio.c
===================================================================
RCS file: /sources/emacs/emacs/src/fileio.c,v
retrieving revision 1.656
retrieving revision 1.657
diff -u -b -r1.656 -r1.657
--- fileio.c    16 Jul 2009 01:45:11 -0000      1.656
+++ fileio.c    21 Jul 2009 23:34:04 -0000      1.657
@@ -193,6 +193,9 @@
 /* Whether or not files are auto-saved into themselves.  */
 Lisp_Object Vauto_save_visited_file_name;
 
+/* Whether or not to continue auto-saving after a large deletion.  */
+Lisp_Object Vauto_save_include_big_deletions;
+
 /* On NT, specifies the directory separator character, used (eg.) when
    expanding file names.  This can be bound to / or \. */
 Lisp_Object Vdirectory_sep_char;
@@ -4492,7 +4495,6 @@
       if (visiting)
        {
          SAVE_MODIFF = MODIFF;
-         if (XINT (current_buffer->save_length) != -2)
            XSETFASTINT (current_buffer->save_length, Z - BEG);
          current_buffer->filename = visit_file;
        }
@@ -4704,7 +4706,6 @@
   if (visiting)
     {
       SAVE_MODIFF = MODIFF;
-      if (XINT (current_buffer->save_length) != -2)
        XSETFASTINT (current_buffer->save_length, Z - BEG);
       current_buffer->filename = visit_file;
       update_mode_lines++;
@@ -5309,7 +5310,7 @@
            && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b)
            && b->auto_save_modified < BUF_MODIFF (b)
            /* -1 means we've turned off autosaving for a while--see below.  */
-           && XINT (b->save_length) != -1
+           && XINT (b->save_length) >= 0
            && (do_handled_files
                || NILP (Ffind_file_name_handler (b->auto_save_file_name,
                                                  Qwrite_region))))
@@ -5323,8 +5324,8 @@
                && EMACS_SECS (before_time) - b->auto_save_failure_time < 1200)
              continue;
 
-           if (XINT (b->save_length) != -2
-               /* -2 is a magic flag turning off this feature in a buffer.  */
+           set_buffer_internal (b);
+           if (NILP (Vauto_save_include_big_deletions)
                && (XFASTINT (b->save_length) * 10
                    > (BUF_Z (b) - BUF_BEG (b)) * 13)
                /* A short file is likely to change a large fraction;
@@ -5345,13 +5346,11 @@
                Fsleep_for (make_number (1), Qnil);
                continue;
              }
-           set_buffer_internal (b);
            if (!auto_saved && NILP (no_message))
              message1 ("Auto-saving...");
            internal_condition_case (auto_save_1, Qt, auto_save_error);
            auto_saved++;
            b->auto_save_modified = BUF_MODIFF (b);
-           if (XINT (current_buffer->save_length) != -2)
              XSETFASTINT (current_buffer->save_length, Z - BEG);
            set_buffer_internal (old);
 
@@ -5397,7 +5396,6 @@
      ()
 {
   current_buffer->auto_save_modified = MODIFF;
-  if (XINT (current_buffer->save_length) != -2)
     XSETFASTINT (current_buffer->save_length, Z - BEG);
   current_buffer->auto_save_failure_time = -1;
   return Qnil;
@@ -5710,6 +5708,13 @@
 Normally auto-save files are written under other names.  */);
   Vauto_save_visited_file_name = Qnil;
 
+  DEFVAR_LISP ("auto-save-include-big-deletions", 
&Vauto_save_include_big_deletions,
+              doc: /* If non-nil, auto-save even if a large part of the text 
is deleted.
+If nil, deleting a substantial portion of the text disables auto-save
+in the buffer; this is the default behavior, because the auto-save
+file is usually more useful if it contains the deleted text.  */);
+  Vauto_save_include_big_deletions = Qnil;
+
 #ifdef HAVE_FSYNC
   DEFVAR_BOOL ("write-region-inhibit-fsync", &write_region_inhibit_fsync,
               doc: /* *Non-nil means don't call fsync in `write-region'.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]