branch: master commit c69deb264959ac130ada0a508fc041917ea56c09 Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
ivy.el: "~~" now works as expected for /sudo:: Fixes #2276 --- ivy.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ivy.el b/ivy.el index 332b394..c125779 100644 --- a/ivy.el +++ b/ivy.el @@ -3150,12 +3150,14 @@ Should be run via minibuffer `post-command-hook'." 'ivy--exhibit))) (ivy--exhibit))) -(defun ivy--magic-tilde-directory () - "Return an appropriate directory for when ~ or ~/ are entered." +(defun ivy--magic-tilde-directory (dir) + "Return an appropriate home for DIR for when ~ or ~/ are entered." (expand-file-name (let (remote) - (if (and (setq remote (file-remote-p ivy--directory)) - (not (string-match-p "/home/\\([^/]+\\)/\\'" (file-local-name ivy--directory)))) + (if (and (setq remote (file-remote-p dir)) + (let ((local (file-local-name dir))) + (not (or (string= "/root/" local) + (string-match-p "/home/\\([^/]+\\)/\\'" local))))) (concat remote "~/") "~/")))) @@ -3199,7 +3201,7 @@ Should be run via minibuffer `post-command-hook'." (cond ((or (string= "~/" ivy-text) (and (string= "~" ivy-text) ivy-magic-tilde)) - (ivy--cd (ivy--magic-tilde-directory))) + (ivy--cd (ivy--magic-tilde-directory ivy--directory))) ((string-match "/\\'" ivy-text) (ivy--magic-file-slash)))) ((eq (ivy-state-collection ivy-last) #'internal-complete-buffer)