]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Eshell electric slash when used from the root directory of a remote host
authormontag451 <montag451@laposte.net>
Wed, 21 Dec 2022 22:21:20 +0000 (14:21 -0800)
committerJim Porter <jporterbugs@gmail.com>
Wed, 21 Dec 2022 22:21:20 +0000 (14:21 -0800)
* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert
the remote prefix as determined by 'file-remote-p'.

Copyright-paperwork-exempt: Yes

lisp/eshell/em-elecslash.el

index 091acb9a8618b0b546f7a0441c165a028697a686..0ce3a4cc963cc32c106739e6d29d9d5b7e68f226 100644 (file)
@@ -74,8 +74,9 @@ insertion."
           (command (save-excursion
                      (eshell-bol)
                      (skip-syntax-forward " ")
-                     (thing-at-point 'sexp))))
-      (if (and (file-remote-p default-directory)
+                     (thing-at-point 'sexp)))
+          (prefix (file-remote-p default-directory)))
+      (if (and prefix
                ;; We can't formally parse the input.  But if there is
                ;; one of these operators behind us, then looking at
                ;; the first command would not be sensible.  So be
@@ -93,14 +94,9 @@ insertion."
                                 (or eshell-prefer-lisp-functions
                                     (not (eshell-search-path command))))))))
          (let ((map (make-sparse-keymap))
-               (start (if tilde-before (1- (point)) (point)))
-                (localname
-                 (tramp-file-name-localname
-                  (tramp-dissect-file-name default-directory))))
+               (start (if tilde-before (1- (point)) (point))))
            (when tilde-before (delete-char -1))
-           (insert
-             (substring default-directory 0
-                        (string-search localname default-directory)))
+           (insert prefix)
            (unless tilde-before (insert "/"))
            ;; Typing a second slash undoes the insertion, for when
            ;; you really do want to type a local absolute file name.