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

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

[elpa] master 085b0f2 218/348: Fix file name completion for when initial


From: Oleh Krehel
Subject: [elpa] master 085b0f2 218/348: Fix file name completion for when initial-input is a file name
Date: Sat, 8 Apr 2017 11:04:00 -0400 (EDT)

branch: master
commit 085b0f2d3b0c79c4217a5f680263205e52e252c4
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Fix file name completion for when initial-input is a file name
    
    * ivy.el (ivy--reset-state): cd to filename's directory, set the
      remaining chars as :preselect.
    
    Fixes #744
---
 ivy.el | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/ivy.el b/ivy.el
index 96b79aa..084d1ca 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1524,22 +1524,24 @@ This is useful for recursive `ivy-read'."
                                 :test #'equal)))
                (setq coll (all-completions "" collection predicate))))
             ((eq collection 'read-file-name-internal)
-             (if (and initial-input
-                      (not (equal initial-input ""))
-                      (file-directory-p initial-input))
-                 (progn
-                   (when (and (eq this-command 'dired-do-copy)
-                              (equal (file-name-nondirectory initial-input) 
""))
-                     (setf (ivy-state-preselect state) (setq preselect nil)))
-                   (setq ivy--directory initial-input)
-                   (setq initial-input nil)
-                   (when preselect
-                     (let ((preselect-directory (file-name-directory 
preselect)))
-                       (when (and preselect-directory
-                                  (not (equal (expand-file-name 
preselect-directory)
-                                              (expand-file-name 
ivy--directory))))
-                         (setf (ivy-state-preselect state) (setq preselect 
nil))))))
-               (setq ivy--directory default-directory))
+             (setq ivy--directory default-directory)
+             (when (and initial-input
+                        (not (equal initial-input "")))
+               (cond ((file-directory-p initial-input)
+                      (when (and (eq this-command 'dired-do-copy)
+                                 (equal (file-name-nondirectory initial-input) 
""))
+                        (setf (ivy-state-preselect state) (setq preselect 
nil)))
+                      (setq ivy--directory initial-input)
+                      (setq initial-input nil)
+                      (when preselect
+                        (let ((preselect-directory (file-name-directory 
preselect)))
+                          (when (and preselect-directory
+                                     (not (equal (expand-file-name 
preselect-directory)
+                                                 (expand-file-name 
ivy--directory))))
+                            (setf (ivy-state-preselect state) (setq preselect 
nil))))))
+                     ((file-exists-p (file-name-directory initial-input))
+                      (setq ivy--directory (file-name-directory initial-input))
+                      (setf (ivy-state-preselect state) 
(file-name-nondirectory initial-input)))))
              (require 'dired)
              (when preselect
                (let ((preselect-directory (file-name-directory preselect)))



reply via email to

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