Fix Eshell electric slash when used from the root directory of a remote host

* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert
the remote prefix as determined by 'file-remote-p'.

Copyright-paperwork-exempt: Yes
This commit is contained in:
montag451 2022-12-21 14:21:20 -08:00 committed by Jim Porter
parent c088cdad9e
commit 777b383dd0

View 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.