From 42bc428470f0b6907cfc81718f35083a2df30d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20G=C3=B6ttschkes?= Date: Fri, 13 Oct 2023 20:19:48 +0200 Subject: [PATCH] Expand file-name of ~/.emacs before attempt to load it. * lisp/startup.el (command-line): Expand the name of the ~/.emacs (or its other variant) initialization file-name before passing the absolute path to load. Otherwise, load does not recognize the path to be absolute and uses the load-path to find the file. --- lisp/startup.el | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/lisp/startup.el b/lisp/startup.el index 6329e3ea8d0..73e27439e50 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1493,25 +1493,27 @@ command-line ;; Load that user's init file, or the default one, or none. (startup--load-user-init-file (lambda () - (cond - ((eq startup-init-directory xdg-dir) nil) - ((eq system-type 'ms-dos) - (concat "~" init-file-user "/_emacs")) - ((not (eq system-type 'windows-nt)) - (concat "~" init-file-user "/.emacs")) - ;; Else deal with the Windows situation. - ((directory-files "~" nil "\\`\\.emacs\\(\\.elc?\\)?\\'") - ;; Prefer .emacs on Windows. - "~/.emacs") - ((directory-files "~" nil "\\`_emacs\\(\\.elc?\\)?\\'") - ;; Also support _emacs for compatibility, but warn about it. - (push `(initialization - ,(format-message - "`_emacs' init file is deprecated, please use `.emacs'")) - delayed-warnings-list) - "~/_emacs") - (t ;; But default to .emacs if _emacs does not exist. - "~/.emacs"))) + (if (eq startup-init-directory xdg-dir) + nil + (expand-file-name + (cond + ((eq system-type 'ms-dos) + (concat "~" init-file-user "/_emacs")) + ((not (eq system-type 'windows-nt)) + (concat "~" init-file-user "/.emacs")) + ;; Else deal with the Windows situation. + ((directory-files "~" nil "\\`\\.emacs\\(\\.elc?\\)?\\'") + ;; Prefer .emacs on Windows. + "~/.emacs") + ((directory-files "~" nil "\\`_emacs\\(\\.elc?\\)?\\'") + ;; Also support _emacs for compatibility, but warn about it. + (push `(initialization + ,(format-message + "`_emacs' init file is deprecated, please use `.emacs'")) + delayed-warnings-list) + "~/_emacs") + (t ;; But default to .emacs if _emacs does not exist. + "~/.emacs"))))) (lambda () (expand-file-name "init.el" -- 2.42.0