Mercurial > emacs
changeset 80670:42bdac53d197
(custom-save-all): Avoid destrying symlink if already visiting the
custom file.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 02 Aug 2008 21:10:05 +0000 |
parents | af4278dace39 |
children | 6fb9c9529103 |
files | lisp/cus-edit.el |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/cus-edit.el Sat Aug 02 21:09:29 2008 +0000 +++ b/lisp/cus-edit.el Sat Aug 02 21:10:05 2008 +0000 @@ -4207,9 +4207,17 @@ (recentf-expand-file-name (custom-file))) "\\'") recentf-exclude))) - (old-buffer (find-buffer-visiting filename))) + (old-buffer (find-buffer-visiting filename)) + old-buffer-name) (with-current-buffer (let ((find-file-visit-truename t)) (or old-buffer (find-file-noselect filename))) + ;; We'll save using file-precious-flag, so avoid destroying + ;; symlinks. (If we're not already visiting the buffer, this is + ;; handled by find-file-visit-truename, above.) + (when old-buffer + (setq old-buffer-name (buffer-file-name)) + (set-visited-file-name (file-chase-links filename))) + (unless (eq major-mode 'emacs-lisp-mode) (emacs-lisp-mode)) (let ((inhibit-read-only t)) @@ -4217,7 +4225,10 @@ (custom-save-faces)) (let ((file-precious-flag t)) (save-buffer)) - (unless old-buffer + (if old-buffer + (progn + (set-visited-file-name old-buffer-name) + (set-buffer-modified-p nil)) (kill-buffer (current-buffer)))))) ;;;###autoload