all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* auto-save-include-big-deletions
@ 2009-07-21 17:49 Chong Yidong
  2009-07-21 18:28 ` auto-save-include-big-deletions Eli Zaretskii
  2009-07-22 22:21 ` auto-save-include-big-deletions Richard Stallman
  0 siblings, 2 replies; 3+ messages in thread
From: Chong Yidong @ 2009-07-21 17:49 UTC (permalink / raw)
  To: emacs-devel

To handle the rmail auto-save problem in a cleaner way, I propose the
following change to fileio.c, adding auto-save-include-big-deletions.
If this variable is non-nil, that disables the turning off of auto-save
after big deletions.  (Rmail can then bind this locally to t.)

Any objections?

*** emacs/src/fileio.c.~1.654.2.2.~	2009-07-07 18:45:24.000000000 -0400
--- emacs/src/fileio.c	2009-07-21 12:17:36.000000000 -0400
***************
*** 193,198 ****
--- 193,201 ----
  /* 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;
***************
*** 5321,5328 ****
  		&& EMACS_SECS (before_time) - b->auto_save_failure_time < 1200)
  	      continue;
  
! 	    if ((XFASTINT (b->save_length) * 10
! 		 > (BUF_Z (b) - BUF_BEG (b)) * 13)
  		/* A short file is likely to change a large fraction;
  		   spare the user annoying messages.  */
  		&& XFASTINT (b->save_length) > 5000
--- 5324,5333 ----
  		&& EMACS_SECS (before_time) - b->auto_save_failure_time < 1200)
  	      continue;
  
! 	    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;
  		   spare the user annoying messages.  */
  		&& XFASTINT (b->save_length) > 5000
***************
*** 5341,5347 ****
  		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);
--- 5346,5351 ----
***************
*** 5704,5709 ****
--- 5708,5720 ----
  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: /* Non-nil says to auto-save even if a large part of the text is deleted.
+ If nil, auto-save is disabled in the buffer if a substantial part of
+ the text is deleted; this is the default, 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'.

Diff finished.  Tue Jul 21 13:45:55 2009




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: auto-save-include-big-deletions
  2009-07-21 17:49 auto-save-include-big-deletions Chong Yidong
@ 2009-07-21 18:28 ` Eli Zaretskii
  2009-07-22 22:21 ` auto-save-include-big-deletions Richard Stallman
  1 sibling, 0 replies; 3+ messages in thread
From: Eli Zaretskii @ 2009-07-21 18:28 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

> From: Chong Yidong <cyd@stupidchicken.com>
> Date: Tue, 21 Jul 2009 13:49:19 -0400
> 
> To handle the rmail auto-save problem in a cleaner way, I propose the
> following change to fileio.c, adding auto-save-include-big-deletions.
> If this variable is non-nil, that disables the turning off of auto-save
> after big deletions.  (Rmail can then bind this locally to t.)

This should certainly do for Emacs 23.1, if not in the long run.  (I
assume you tested with both my recipe and Richard's.)

Thanks.




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: auto-save-include-big-deletions
  2009-07-21 17:49 auto-save-include-big-deletions Chong Yidong
  2009-07-21 18:28 ` auto-save-include-big-deletions Eli Zaretskii
@ 2009-07-22 22:21 ` Richard Stallman
  1 sibling, 0 replies; 3+ messages in thread
From: Richard Stallman @ 2009-07-22 22:21 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

This method seems fine to me.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-07-22 22:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-21 17:49 auto-save-include-big-deletions Chong Yidong
2009-07-21 18:28 ` auto-save-include-big-deletions Eli Zaretskii
2009-07-22 22:21 ` auto-save-include-big-deletions Richard Stallman

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.