From: Michael Albinus Date: Thu, 29 Dec 2011 11:34:44 +0000 (+0100) Subject: * net/tramp-sh.el (tramp-find-shell): Set "remote-shell" property X-Git-Tag: emacs-pretest-24.0.93~104 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=98c8795ab766f4fb8d94db4ee1b0fb29fae31c07;p=emacs.git * 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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 78cc1862c2f..c66322b56fe 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2011-12-29 Michael Albinus + + * 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 * progmodes/gdb-mi.el (gdb-get-source-file-list) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 446a27c65d3..994e1a03f97 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -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 ;; . @@ -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)")))