diff options
| author | Chong Yidong | 2008-08-02 21:10:05 +0000 |
|---|---|---|
| committer | Chong Yidong | 2008-08-02 21:10:05 +0000 |
| commit | 436e3ef5844956a2af52acd66d1da3dda141beeb (patch) | |
| tree | 487d01b9fd9cfbc3337efd5a6974c7602ef8f9f8 | |
| parent | 07f540d6eda23aae8d4189b82b15fa2e4cbd59c8 (diff) | |
| download | emacs-436e3ef5844956a2af52acd66d1da3dda141beeb.tar.gz emacs-436e3ef5844956a2af52acd66d1da3dda141beeb.zip | |
(custom-save-all): Avoid destrying symlink if already visiting the
custom file.
| -rw-r--r-- | lisp/cus-edit.el | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 0446102eb09..5201256bcab 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -4207,9 +4207,17 @@ if only the first line of the docstring is shown.")) | |||
| 4207 | (recentf-expand-file-name (custom-file))) | 4207 | (recentf-expand-file-name (custom-file))) |
| 4208 | "\\'") | 4208 | "\\'") |
| 4209 | recentf-exclude))) | 4209 | recentf-exclude))) |
| 4210 | (old-buffer (find-buffer-visiting filename))) | 4210 | (old-buffer (find-buffer-visiting filename)) |
| 4211 | old-buffer-name) | ||
| 4211 | (with-current-buffer (let ((find-file-visit-truename t)) | 4212 | (with-current-buffer (let ((find-file-visit-truename t)) |
| 4212 | (or old-buffer (find-file-noselect filename))) | 4213 | (or old-buffer (find-file-noselect filename))) |
| 4214 | ;; We'll save using file-precious-flag, so avoid destroying | ||
| 4215 | ;; symlinks. (If we're not already visiting the buffer, this is | ||
| 4216 | ;; handled by find-file-visit-truename, above.) | ||
| 4217 | (when old-buffer | ||
| 4218 | (setq old-buffer-name (buffer-file-name)) | ||
| 4219 | (set-visited-file-name (file-chase-links filename))) | ||
| 4220 | |||
| 4213 | (unless (eq major-mode 'emacs-lisp-mode) | 4221 | (unless (eq major-mode 'emacs-lisp-mode) |
| 4214 | (emacs-lisp-mode)) | 4222 | (emacs-lisp-mode)) |
| 4215 | (let ((inhibit-read-only t)) | 4223 | (let ((inhibit-read-only t)) |
| @@ -4217,7 +4225,10 @@ if only the first line of the docstring is shown.")) | |||
| 4217 | (custom-save-faces)) | 4225 | (custom-save-faces)) |
| 4218 | (let ((file-precious-flag t)) | 4226 | (let ((file-precious-flag t)) |
| 4219 | (save-buffer)) | 4227 | (save-buffer)) |
| 4220 | (unless old-buffer | 4228 | (if old-buffer |
| 4229 | (progn | ||
| 4230 | (set-visited-file-name old-buffer-name) | ||
| 4231 | (set-buffer-modified-p nil)) | ||
| 4221 | (kill-buffer (current-buffer)))))) | 4232 | (kill-buffer (current-buffer)))))) |
| 4222 | 4233 | ||
| 4223 | ;;;###autoload | 4234 | ;;;###autoload |