From: Stefan Monnier Date: Thu, 8 Nov 2012 19:45:58 +0000 (-0500) Subject: * lisp/subr.el (locate-user-emacs-file): If both old and new name exist, use X-Git-Tag: emacs-24.3.90~173^2~18^2~162 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=85e5541248a4674f6e0749d3ea3def39a62f4537;p=emacs.git * lisp/subr.el (locate-user-emacs-file): If both old and new name exist, use the new name. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fc699759d4d..edd3950e24f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-11-08 Stefan Monnier + * subr.el (locate-user-emacs-file): If both old and new name exist, use + the new name. + * progmodes/js.el (js--filling-paragraph): New var. (c-forward-sws, c-backward-sws, c-beginning-of-macro): Advise. (js-c-fill-paragraph): Prefer advice to cl-letf so the rebinding is diff --git a/lisp/subr.el b/lisp/subr.el index d328b7cddf5..9c89bd3e045 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2657,13 +2657,17 @@ See also `locate-user-emacs-file'.") (defun locate-user-emacs-file (new-name &optional old-name) "Return an absolute per-user Emacs-specific file name. -If OLD-NAME is non-nil and ~/OLD-NAME exists, return ~/OLD-NAME. +If NEW-NAME exists in `user-emacs-directory', return it. +Else If OLD-NAME is non-nil and ~/OLD-NAME exists, return ~/OLD-NAME. Else return NEW-NAME in `user-emacs-directory', creating the directory if it does not exist." (convert-standard-filename (let* ((home (concat "~" (or init-file-user ""))) - (at-home (and old-name (expand-file-name old-name home)))) - (if (and at-home (file-readable-p at-home)) + (at-home (and old-name (expand-file-name old-name home))) + (bestname (abbreviate-file-name + (expand-file-name new-name user-emacs-directory)))) + (if (and at-home (not (file-readable-p bestname)) + (file-readable-p at-home)) at-home ;; Make sure `user-emacs-directory' exists, ;; unless we're in batch mode or dumping Emacs @@ -2677,8 +2681,7 @@ directory if it does not exist." (set-default-file-modes ?\700) (make-directory user-emacs-directory)) (set-default-file-modes umask)))) - (abbreviate-file-name - (expand-file-name new-name user-emacs-directory)))))) + bestname)))) ;;;; Misc. useful functions.