From: Lars Ingebrigtsen Date: Fri, 12 Nov 2021 03:21:56 +0000 (+0100) Subject: Allow using /dev/stdin as a --script parameter again X-Git-Tag: emacs-29.0.90~3668^2~30 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cd35c1c7cfc4823caf497af8eb0e840b4324dc97;p=emacs.git Allow using /dev/stdin as a --script parameter again * lisp/startup.el (command-line-1): Fix breakage with (file-truename "/dev/stdin") => "/proc/227795/fd/pipe:[1381505]" when using /dev/stdin as a --script parameter. --- diff --git a/lisp/startup.el b/lisp/startup.el index 505d7b83f48..a911aed1cd2 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -2526,7 +2526,15 @@ nil default-directory" name) (let* ((file (command-line-normalize-file-name (or argval (pop command-line-args-left)))) ;; Take file from default dir. - (file-ex (file-truename (expand-file-name file)))) + (file-ex (expand-file-name file)) + (truename (file-truename file-ex))) + ;; We want to use the truename here if we can, + ;; because that makes `eval-after-load' work + ;; more reliably. But If the file is, for + ;; instance, /dev/stdin, the truename doesn't + ;; actually exist on some systems. + (when (file-exists-p truename) + (setq file-ex truename)) (load file-ex nil t t))) ((equal argi "-insert")