Mercurial > emacs
changeset 17734:bd60d4318daf
(backup-extract-version-start): New variable.
(find-backup-file-namem, backup-extract-version):
Rename bv-length to backup-extract-version-start.
(file-relative-name): Bind the variable fname.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 10 May 1997 05:44:56 +0000 |
parents | 6d8fecd12940 |
children | f379e219ed8e |
files | lisp/files.el |
diffstat | 1 files changed, 22 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/files.el Sat May 10 05:43:58 1997 +0000 +++ b/lisp/files.el Sat May 10 05:44:56 1997 +0000 @@ -1904,17 +1904,19 @@ You may need to redefine `file-name-sans-versions' as well." (string-match "~\\'" file)) +(defvar backup-extract-version-start) + ;; This is used in various files. ;; The usage of bv-length is not very clean, ;; but I can't see a good alternative, ;; so as of now I am leaving it alone. (defun backup-extract-version (fn) "Given the name of a numeric backup file, return the backup number. -Uses the free variable `bv-length', whose value should be +Uses the free variable `backup-extract-version-start', whose value should be the index in the name where the version number begins." - (if (and (string-match "[0-9]+~$" fn bv-length) - (= (match-beginning 0) bv-length)) - (string-to-int (substring fn bv-length -1)) + (if (and (string-match "[0-9]+~$" fn backup-extract-version-start) + (= (match-beginning 0) backup-extract-version-start)) + (string-to-int (substring fn backup-extract-version-start -1)) 0)) ;; I believe there is no need to alter this behavior for VMS; @@ -1931,7 +1933,7 @@ (if (eq version-control 'never) (list (make-backup-file-name fn)) (let* ((base-versions (concat (file-name-nondirectory fn) ".~")) - (bv-length (length base-versions)) + (backup-extract-version-start (length base-versions)) possibilities (versions nil) (high-water-mark 0) @@ -1977,21 +1979,21 @@ when the file name and directory use different drive names) then it returns FILENAME." (save-match-data - (setq fname (expand-file-name filename) - directory (file-name-as-directory - (expand-file-name (or directory default-directory)))) - ;; On Microsoft OSes, if FILENAME and DIRECTORY have different - ;; drive names, they can't be relative, so return the absolute name. - (if (and (or (eq system-type 'ms-dos) - (eq system-type 'windows-nt)) - (not (string-equal (substring fname 0 2) - (substring directory 0 2)))) - filename - (let ((ancestor "")) - (while (not (string-match (concat "^" (regexp-quote directory)) fname)) - (setq directory (file-name-directory (substring directory 0 -1)) - ancestor (concat "../" ancestor))) - (concat ancestor (substring fname (match-end 0))))))) + (let ((fname (expand-file-name filename))) + (setq directory (file-name-as-directory + (expand-file-name (or directory default-directory)))) + ;; On Microsoft OSes, if FILENAME and DIRECTORY have different + ;; drive names, they can't be relative, so return the absolute name. + (if (and (or (eq system-type 'ms-dos) + (eq system-type 'windows-nt)) + (not (string-equal (substring fname 0 2) + (substring directory 0 2)))) + filename + (let ((ancestor "")) + (while (not (string-match (concat "^" (regexp-quote directory)) fname)) + (setq directory (file-name-directory (substring directory 0 -1)) + ancestor (concat "../" ancestor))) + (concat ancestor (substring fname (match-end 0)))))))) (defun save-buffer (&optional args) "Save current buffer in visited file if modified. Versions described below.