emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 8a75bde 1/2: Fix path for current directory in eshe


From: Eli Zaretskii
Subject: [Emacs-diffs] master 8a75bde 1/2: Fix path for current directory in eshell on MS-Windows
Date: Sat, 8 Jun 2019 04:33:15 -0400 (EDT)

branch: master
commit 8a75bde4a6c7bfd87ad3265195cffb2a3a29c662
Author: Bernhard Rotter <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix path for current directory in eshell on MS-Windows
    
    On MS-Windows, PATH implicitly includes the current directory.
    Do it right for Eshell by adding "./" instead of ".", to
    avoid finding .FOO instead of ./FOO.
    * lisp/eshell/esh-util.el (eshell-get-path): New function.
    * lisp/eshell/em-cmpl.el (eshell-complete-commands-list):
    * lisp/eshell/esh-ext.el (eshell-search-path): Use eshell-get-path.
---
 lisp/eshell/em-cmpl.el  | 4 +---
 lisp/eshell/esh-ext.el  | 4 +---
 lisp/eshell/esh-util.el | 8 ++++++++
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index e3bfd8d..8f6c678 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -409,13 +409,11 @@ to writing a completion function."
          (setq filename (substring filename 1)
                pcomplete-stub filename
                glob-name t))
-      (let* ((paths (eshell-parse-colon-path eshell-path-env))
+      (let* ((paths (eshell-get-path))
             (cwd (file-name-as-directory
                   (expand-file-name default-directory)))
             (path "") (comps-in-path ())
             (file "") (filepath "") (completions ()))
-        (if (eshell-under-windows-p)
-            (push "." paths))
        ;; Go thru each path in the search path, finding completions.
        (while paths
          (setq path (file-name-as-directory
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index 978fc55..1856d2b 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -74,10 +74,8 @@ but Eshell will be able to understand
   "Search the environment path for NAME."
   (if (file-name-absolute-p name)
       name
-    (let ((list (eshell-parse-colon-path eshell-path-env))
+    (let ((list (eshell-get-path))
          suffixes n1 n2 file)
-      (if (eshell-under-windows-p)
-          (push "." list))
       (while list
        (setq n1 (concat (car list) name))
        (setq suffixes eshell-binary-suffixes)
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 6f355c7..633bd02 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -232,6 +232,14 @@ It might be different from \(getenv \"PATH\"), when
 `default-directory' points to a remote host.")
 (make-variable-buffer-local 'eshell-path-env)
 
+(defun eshell-get-path ()
+  "Return $PATH as list.
+Add the current directory on windows."
+  (eshell-parse-colon-path
+   (if (eshell-under-windows-p)
+       (concat "." path-separator eshell-path-env)
+     eshell-path-env)))
+
 (defun eshell-parse-colon-path (path-env)
   "Split string with `parse-colon-path'.
 Prepend remote identification of `default-directory', if any."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]