emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master 5424a564 082/184: ivy.el (ivy--handle-directory): Extract


From: Oleh Krehel
Subject: [elpa] master 5424a564 082/184: ivy.el (ivy--handle-directory): Extract
Date: Wed, 16 Oct 2019 13:14:53 -0400 (EDT)

branch: master
commit 5424a5643ee723102a7a1b3f7f434cc83cf735dc
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy.el (ivy--handle-directory): Extract
    
    * ivy-test.el (ivy--handle-directory): Add test.
---
 ivy-test.el |  6 ++++++
 ivy.el      | 14 +++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/ivy-test.el b/ivy-test.el
index e4ce500..6ed6484 100644
--- a/ivy-test.el
+++ b/ivy-test.el
@@ -1384,6 +1384,12 @@ a buffer visiting a file."
              (ivy--yank-handle-case-fold "irstName"))
            "irstname")))
 
+(ert-deftest ivy--handle-directory ()
+  (should (string= (ivy--handle-directory "/") "/"))
+  (should (string= (let ((ivy--directory "/tmp/"))
+                     (ivy--handle-directory "/sudo::"))
+                   "/sudo::/tmp/")))
+
 (provide 'ivy-test)
 
 ;;; ivy-test.el ends here
diff --git a/ivy.el b/ivy.el
index 1b9090b..1588efc 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1010,14 +1010,18 @@ contains a single candidate.")
       (ivy--cd dir)
       (ivy--exhibit))))
 
+(defun ivy--handle-directory (input)
+  "Detect the next directory based on special values of INPUT."
+  (cond ((string= input "/")
+         "/")
+        ((string= input "/sudo::")
+         (concat input ivy--directory))))
+
 (defun ivy--directory-done ()
   "Handle exit from the minibuffer when completing file names."
-  (let (dir)
+  (let ((dir (ivy--handle-directory ivy-text)))
     (cond
-      ((equal ivy-text "/")
-       (ivy--cd "/"))
-      ((equal ivy-text "/sudo::")
-       (setq dir (concat ivy-text (expand-file-name ivy--directory)))
+      (dir
        (let ((inhibit-message t))
          (ivy--cd dir)))
       ((ivy--directory-enter))



reply via email to

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