]> code.delx.au - gnu-emacs/commitdiff
* lisp/subr.el (locate-user-emacs-file): If both old and new name exist, use
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 19:45:58 +0000 (14:45 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 19:45:58 +0000 (14:45 -0500)
the new name.

lisp/ChangeLog
lisp/subr.el

index fc699759d4d887f64d436a290efa9ff42387446f..edd3950e24f44f408bb1f20f113b24581e787b5e 100644 (file)
@@ -1,5 +1,8 @@
 2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * 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
index d328b7cddf53af54223c60c3fcf98d848b6c1489..9c89bd3e04503b6f909d1fbde30134054dbaa35d 100644 (file)
@@ -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))))
 \f
 ;;;; Misc. useful functions.