diff options
author | Rasmus <rasmus@gmx.us> | 2021-11-12 09:02:28 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2021-11-12 09:02:28 +0100 |
commit | 87e53578861a37748cdfc7cb017b73c2bcf572a4 (patch) | |
tree | bbc6d12654c3bc3a4c1f3ff297e292513d7c5403 /lisp/icomplete.el | |
parent | 81535cd8783d956cedd9a59263e77d2062c70197 (diff) | |
download | emacs-87e53578861a37748cdfc7cb017b73c2bcf572a4.tar.gz |
lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
* lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
(bug#43925).
Diffstat (limited to 'lisp/icomplete.el')
-rw-r--r-- | lisp/icomplete.el | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index a61c9d6354c..f909a3b1771 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -380,13 +380,17 @@ if that doesn't produce a completion match." (defun icomplete-fido-backward-updir () "Delete char before or go up directory, like `ido-mode'." (interactive) - (if (and (eq (char-before) ?/) - (eq (icomplete--category) 'file)) - (save-excursion - (goto-char (1- (point))) - (when (search-backward "/" (point-min) t) - (delete-region (1+ (point)) (point-max)))) - (call-interactively 'backward-delete-char))) + (cond ((and (eq (char-before) ?/) + (eq (icomplete--category) 'file)) + (when (string-equal (icomplete--field-string) "~/") + (delete-region (icomplete--field-beg) (icomplete--field-end)) + (insert (expand-file-name "~/")) + (goto-char (line-end-position))) + (save-excursion + (goto-char (1- (point))) + (when (search-backward "/" (point-min) t) + (delete-region (1+ (point)) (point-max))))) + (t (call-interactively 'backward-delete-char)))) (defvar icomplete-fido-mode-map (let ((map (make-sparse-keymap))) |