diff options
| author | Richard M. Stallman | 1994-07-05 07:23:18 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-07-05 07:23:18 +0000 |
| commit | a522e5bffeb2a9a1ac9f4639eb360ec21ecb4677 (patch) | |
| tree | 7c057ed5a6510482bba58f27237174e96513c339 | |
| parent | ed160f1fa462881bdeaca94283b878ba22d8674a (diff) | |
| download | emacs-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.el | 63 |
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. | |||
| 1172 | Remember to delete the initial contents of the minibuffer | 1172 | Remember to delete the initial contents of the minibuffer |
| 1173 | if you wish to pass an empty string as the argument." | 1173 | if 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. |