]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp-sh.el (tramp-find-shell): Set "remote-shell" property
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 29 Dec 2011 11:34:44 +0000 (12:34 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 29 Dec 2011 11:34:44 +0000 (12:34 +0100)
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.

lisp/ChangeLog
lisp/net/tramp-sh.el

index 78cc1862c2fd7f573c2a1413bd0e795be8eff9df..c66322b56fe1b0bf0b2bcfff4db2fed0f346c13f 100644 (file)
@@ -1,3 +1,12 @@
+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)
index 446a27c65d339faf554034937dd51ada0c1da166..994e1a03f97a109782ac56d55511076de68ddfd7 100644 (file)
@@ -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)")))