]> code.delx.au - gnu-emacs/blobdiff - lispref/backups.texi
subr-arity
[gnu-emacs] / lispref / backups.texi
index 9e662b07a598e96860f26782d351281d1299d0e3..91620db4a6b5a728a850e1958a7bd79a5c5cc3e0 100644 (file)
@@ -1,6 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999
+@c   Free Software Foundation, Inc. 
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/backups
 @node Backups and Auto-Saving, Buffers, Files, Top
@@ -93,14 +94,10 @@ one argument, a file name to consider.  If the function returns
 @code{nil}, backups are disabled for that file.  Otherwise, the other
 variables in this section say whether and how to make backups.
 
-The default value is this:
-
-@example
-(lambda (name)
-  (or (< (length name) 5)
-      (not (string-equal "/tmp/"
-                         (substring name 0 5)))))
-@end example
+@findex normal-backup-enable-predicate
+The default value is @code{normal-backup-enable-predicate}, which checks
+for files in @code{temporary-file-directory} and
+@code{small-temporary-file-directory}.
 @end defvar
 
 @defvar backup-inhibited
@@ -116,6 +113,46 @@ its value.  Major modes should not set this variable---they should set
 @code{make-backup-files} instead.
 @end defvar
 
+@defvar backup-directory-alist
+@tindex backup-directory-alist
+This variable's value is an alist of filename patterns and backup
+directory names.  Each element looks like
+@smallexample
+(@var{regexp} . @var{directory})
+@end smallexample
+
+@noindent
+Backups of files with names matching @var{regexp} will be made in
+@var{directory}.  @var{directory} may be relative or absolute.  If it is
+absolute, so that all matching files are backed up into the same
+directory, the file names in this directory will be the full name of the
+file backed up with all directory separators changed to @samp{!} to
+prevent clashes.  This will not work correctly if your filesystem
+truncates the resulting name.
+
+For the common case of all backups going into one directory, the alist
+should contain a single element pairing @samp{"."} with the appropriate
+directory name.
+
+If this variable is @code{nil}, or it fails to match a filename, the
+backup is made in the original file's directory.
+
+On MS-DOS filesystems without long names this variable is always
+ignored.
+@end defvar
+
+@defvar make-backup-file-name-function
+@tindex make-backup-file-name-function
+This variable's value is a function to use for making backups instead of
+the default @code{make-backup-file-name}.  A value of nil gives the
+default @code{make-backup-file-name} behaviour.
+
+This could be buffer-local to do something special for for specific
+files.  If you define it, you may need to change
+@code{backup-file-name-p} and @code{file-name-sans-versions} too.
+@end defvar
+
+
 @node Rename or Copy
 @subsection Backup by Renaming or by Copying?
 @cindex backup files, how to make them
@@ -518,7 +555,7 @@ The value of this variable is the number of seconds of idle time that
 should cause auto-saving.  Each time the user pauses for this long,
 Emacs does auto-saving for all buffers in which that is enabled.  (If
 the current buffer is large, the specified timeout is multiplied by a
-factor that depends increases as the size increases; for a million-byte
+factor that increases as the size increases; for a million-byte
 buffer, the factor is almost 4.)
 
 If the value is zero or nil, then auto-saving is not done as a result