changeset 48105:5fbd632e1109

(explicit-bash-args): Bash 1.x doesn't grook --noediting option; added run-time check to exclude it.
author Kim F. Storm <storm@cua.dk>
date Thu, 31 Oct 2002 23:37:15 +0000
parents 8916f1f744c8
children d69a38446204
files lisp/shell.el
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/shell.el	Thu Oct 31 23:36:56 2002 +0000
+++ b/lisp/shell.el	Thu Oct 31 23:37:15 2002 +0000
@@ -276,8 +276,18 @@
   :group 'shell)
 
 (defcustom explicit-bash-args
-    ;; Tell bash not to use readline.
-    '("--noediting" "-i")
+  ;; Tell bash not to use readline, except for bash 1.x which doesn't grook --noediting.
+  ;; Bash 1.x has -nolineediting, but process-send-eof cannot terminate bash if we use it.
+  (let* ((prog (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name)
+		   (getenv "ESHELL") shell-file-name))
+	 (name (file-name-nondirectory prog)))
+    (if (and (not purify-flag)
+	     (equal name "bash")
+	     (file-executable-p prog)
+	     (string-match "bad option"
+			   (shell-command-to-string (concat prog " --noediting"))))
+	'("-i")
+      '("--noediting" "-i")))
   "*Args passed to inferior shell by M-x shell, if the shell is bash.
 Value is a list of strings, which may be nil."
   :type '(repeat (string :tag "Argument"))