[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-25 18a9bc1: Do not trash symlinks to init file
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] emacs-25 18a9bc1: Do not trash symlinks to init file |
Date: |
Mon, 23 May 2016 00:30:38 +0000 (UTC) |
branch: emacs-25
commit 18a9bc1152452fecfa09e6f2f3a5d6677a564977
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Do not trash symlinks to init file
If the user’s init file is a symbolic link, do not break the link
when initializing the package system. Problem reported by Jackson
Hamilton (Bug#23050).
* lisp/emacs-lisp/package.el (package--ensure-init-file):
Bind find-file-visit-truename when visiting the init file, and
save and restore the buffer name the way cus-edit does in a
similar situation (Bug#454).
---
lisp/emacs-lisp/package.el | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index b0a6db0..14626e2 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1869,6 +1869,7 @@ add a call to it along with some explanatory comments."
(file-readable-p user-init-file)
(file-writable-p user-init-file))
(let* ((buffer (find-buffer-visiting user-init-file))
+ buffer-name
(contains-init
(if buffer
(with-current-buffer buffer
@@ -1884,8 +1885,12 @@ add a call to it along with some explanatory comments."
(re-search-forward "(package-initialize\\_>" nil 'noerror)))))
(unless contains-init
(with-current-buffer (or buffer
- (let ((delay-mode-hooks t))
+ (let ((delay-mode-hooks t)
+ (find-file-visit-truename t))
(find-file-noselect user-init-file)))
+ (when buffer
+ (setq buffer-name (buffer-file-name))
+ (set-visited-file-name (file-chase-links user-init-file)))
(save-excursion
(save-restriction
(widen)
@@ -1904,7 +1909,10 @@ add a call to it along with some explanatory comments."
(insert "\n"))
(let ((file-precious-flag t))
(save-buffer))
- (unless buffer
+ (if buffer
+ (progn
+ (set-visited-file-name buffer-name)
+ (set-buffer-modified-p nil))
(kill-buffer (current-buffer)))))))))
(setq package--init-file-ensured t))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-25 18a9bc1: Do not trash symlinks to init file,
Paul Eggert <=