emacs-diffs
[Top][All Lists]
Advanced

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

master 87e5357 1/2: lisp/icomplete.el (icomplete-fido-backward-updir): E


From: Lars Ingebrigtsen
Subject: master 87e5357 1/2: lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
Date: Fri, 12 Nov 2021 04:23:46 -0500 (EST)

branch: master
commit 87e53578861a37748cdfc7cb017b73c2bcf572a4
Author: Rasmus <rasmus@gmx.us>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
    
    * lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
    (bug#43925).
---
 lisp/icomplete.el | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index a61c9d6..f909a3b 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)))



reply via email to

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