Hi!
make-backup-file-name-function is a customizable variable in files.el for
deciding the backup file name for a file. find-backup-file-name uses
make-backup-file-name-1 for finding out the base names of the backup files:
from find-backup-file-name:
(let* ((basic-name (make-backup-file-name-1 fn))
(base-versions (concat (file-name-nondirectory basic-name)
".~"))
This assumes that make-backup-file-name is used for generating the backup file
names, while make-backup-file-name-function could be customized. The result of
this is, any customization to make-backup-file-name-function doesn't work as
expected when the backup file name is in a different place than what is provided
by the stock function (like say, a different directory).
Changing the code above to:
(let* ((basic-name (file-name-sans-versions (make-backup-file-name fn)))
(base-versions (concat (file-name-nondirectory basic-name)
".~"))
would solve this problem, as this would go through the proper hook.
Ramkumar.
PS: Please CC me in the replies: I am not a part of the list.
In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.9)
of 2008-03-20 on elegiac, modified by Debian
(emacs-snapshot package, version 1:20080320-1)
Windowing system distributor `The X.Org Foundation', version 11.0.10300000
configured using `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.0.60/leim' '--with-x=yes' '--with-x-tool
kit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2''
--
One of the main causes of the fall of the Roman Empire
was that, lacking zero, they had no way to indicate
successful termination of their C programs.
-- Robert Firth