Commit 98c8795a authored by Michael Albinus's avatar Michael Albinus
Browse files

* net/tramp-sh.el (tramp-find-shell): Set "remote-shell" property

also for alternative shells.
(tramp-open-connection-setup-interactive-shell): Check, whether
the shell is a busybox.
(tramp-send-command): Don't suppress multiple prompts for
busyboxes, it hurts.
parent d23ab8e8
2011-12-29 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-find-shell): Set "remote-shell" property
also for alternative shells.
(tramp-open-connection-setup-interactive-shell): Check, whether
the shell is a busybox.
(tramp-send-command): Don't suppress multiple prompts for
busyboxes, it hurts.
2011-12-28 Chong Yidong <cyd@gnu.org>
* progmodes/gdb-mi.el (gdb-get-source-file-list)
......
......@@ -3618,7 +3618,8 @@ file exists and nonzero exit status otherwise."
vec 'file-error
"Couldn't find a shell which groks tilde expansion"))
(tramp-message
vec 5 "Starting remote shell `%s' for tilde expansion" shell)
vec 5 "Starting remote shell `%s' for tilde expansion"
(tramp-set-connection-property vec "remote-shell" shell))
(tramp-open-shell vec shell))
(t (tramp-message
......@@ -3785,6 +3786,17 @@ process to set up. VEC specifies the connection."
;; Disable unexpected output.
(tramp-send-command vec "mesg n; biff n" t)
;; Busyboxes tend to behave strange. We check for the existence.
(with-connection-property vec "busybox"
(tramp-send-command
vec
(format
"%s --version" (tramp-get-connection-property vec "remote-shell" "echo"))
t)
(with-current-buffer (process-buffer proc)
(let ((case-fold-search t))
(and (string-match "busybox" (buffer-string)) t))))
;; IRIX64 bash expands "!" even when in single quotes. This
;; destroys our shell functions, we must disable it. See
;; <http://stackoverflow.com/questions/3291692/irix-bash-shell-expands-expression-in-single-quotes-yet-shouldnt>.
......@@ -4397,7 +4409,8 @@ function waits for output unless NOOUTPUT is set."
;; We mark the command string that it can be erased in the output buffer.
(tramp-set-connection-property p "check-remote-echo" t)
(setq command (format "%s%s%s" tramp-echo-mark command tramp-echo-mark)))
(when (string-match "<<'EOF'" command)
(when (and (string-match "<<'EOF'" command)
(not (tramp-get-connection-property vec "busybox" nil)))
;; Unset $PS1 when using here documents, in order to avoid
;; multiple prompts.
(setq command (concat "(PS1= ; " command "\n)")))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment