aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1994-07-05 07:23:18 +0000
committerRichard M. Stallman1994-07-05 07:23:18 +0000
commita522e5bffeb2a9a1ac9f4639eb360ec21ecb4677 (patch)
tree7c057ed5a6510482bba58f27237174e96513c339
parented160f1fa462881bdeaca94283b878ba22d8674a (diff)
downloademacs-a522e5bffeb2a9a1ac9f4639eb360ec21ecb4677.tar.gz
emacs-a522e5bffeb2a9a1ac9f4639eb360ec21ecb4677.zip
(set-visited-file-name): Handle find-file-visit-truename
early on, before we deal with lock files.
-rw-r--r--lisp/files.el63
1 files changed, 34 insertions, 29 deletions
diff --git a/lisp/files.el b/lisp/files.el
index acc00097464..66f3ac21721 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1172,35 +1172,40 @@ nil or empty string as argument means make buffer not be visiting any file.
1172Remember to delete the initial contents of the minibuffer 1172Remember to delete the initial contents of the minibuffer
1173if you wish to pass an empty string as the argument." 1173if you wish to pass an empty string as the argument."
1174 (interactive "FSet visited file name: ") 1174 (interactive "FSet visited file name: ")
1175 (if filename 1175 (let (truename)
1176 (setq filename 1176 (if filename
1177 (if (string-equal filename "") 1177 (setq filename
1178 nil 1178 (if (string-equal filename "")
1179 (expand-file-name filename)))) 1179 nil
1180 (or (equal filename buffer-file-name) 1180 (expand-file-name filename))))
1181 (progn 1181 (if filename
1182 (and filename (lock-buffer filename)) 1182 (progn
1183 (unlock-buffer))) 1183 (setq truename (file-truename filename))
1184 (setq buffer-file-name filename) 1184 (if find-file-visit-truename
1185 (if filename ; make buffer name reflect filename. 1185 ;; Do not use the abbreviated filename, because
1186 (let ((new-name (file-name-nondirectory buffer-file-name))) 1186 ;; write-region will reset it to the expanded filename
1187 (if (string= new-name "") 1187 (setq filename truename))))
1188 (error "Empty file name")) 1188 (or (equal filename buffer-file-name)
1189 (if (eq system-type 'vax-vms) 1189 (progn
1190 (setq new-name (downcase new-name))) 1190 (and filename (lock-buffer filename))
1191 (setq default-directory (file-name-directory buffer-file-name)) 1191 (unlock-buffer)))
1192 (or (string= new-name (buffer-name)) 1192 (setq buffer-file-name filename)
1193 (rename-buffer new-name t)))) 1193 (if filename ; make buffer name reflect filename.
1194 (setq buffer-backed-up nil) 1194 (let ((new-name (file-name-nondirectory buffer-file-name)))
1195 (clear-visited-file-modtime) 1195 (if (string= new-name "")
1196 (if filename 1196 (error "Empty file name"))
1197 (progn 1197 (if (eq system-type 'vax-vms)
1198 (setq buffer-file-truename 1198 (setq new-name (downcase new-name)))
1199 (abbreviate-file-name (file-truename buffer-file-name))) 1199 (setq default-directory (file-name-directory buffer-file-name))
1200 (if find-file-visit-truename 1200 (or (string= new-name (buffer-name))
1201 (setq buffer-file-name buffer-file-truename)) 1201 (rename-buffer new-name t))))
1202 (setq buffer-file-number (nth 10 (file-attributes buffer-file-name)))) 1202 (setq buffer-backed-up nil)
1203 (setq buffer-file-truename nil buffer-file-number nil)) 1203 (clear-visited-file-modtime)
1204 (setq buffer-file-truename (abbreviate-file-name truename))
1205 (setq buffer-file-number
1206 (if filename
1207 (nth 10 (file-attributes buffer-file-name))
1208 nil)))
1204 ;; write-file-hooks is normally used for things like ftp-find-file 1209 ;; write-file-hooks is normally used for things like ftp-find-file
1205 ;; that visit things that are not local files as if they were files. 1210 ;; that visit things that are not local files as if they were files.
1206 ;; Changing to visit an ordinary local file instead should flush the hook. 1211 ;; Changing to visit an ordinary local file instead should flush the hook.