1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

* net/tramp-sh.el (tramp-send-command): Fix the case where the

remote-echo connection property is non-nil.

Fixes: debbugs:18858
This commit is contained in:
Wolfgang Jenkner 2014-11-01 15:08:00 +01:00 committed by Michael Albinus
parent ae5602c51c
commit b14b7f431f
2 changed files with 16 additions and 0 deletions

View file

@ -4769,6 +4769,17 @@ function waits for output unless NOOUTPUT is set."
(when (tramp-get-connection-property p "remote-echo" nil)
;; We mark the command string that it can be erased in the output buffer.
(tramp-set-connection-property p "check-remote-echo" t)
;; If we put `tramp-echo-mark' after a trailing newline (which
;; is assumed to be unquoted) `tramp-send-string' doesn't see
;; that newline and adds `tramp-rsh-end-of-line' right after
;; `tramp-echo-mark', so the remote shell sees two consecutive
;; trailing line endings and sends two prompts after executing
;; the command, which confuses `tramp-wait-for-output'.
(when (and (not (string= command ""))
(string-equal (substring command -1) "\n"))
(setq command (substring command 0 -1)))
;; No need to restore a trailing newline here since `tramp-send-string'
;; makes sure that the string ends in `tramp-rsh-end-of-line', anyway.
(setq command (format "%s%s%s" tramp-echo-mark command tramp-echo-mark)))
;; Send the command.
(tramp-message vec 6 "%s" command)