From 0463c1ef26bf2d3dc3ea8a3de20e4446c1a55e64 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 14 Jul 2013 19:33:54 -0700 Subject: [PATCH] * shell.el (explicit-bash-args): Remove obsolete hack for Bash 1.x. The hack didn't work outside English locales anyway. --- etc/NEWS | 7 +++++++ lisp/ChangeLog | 5 +++++ lisp/shell.el | 18 +++--------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 548063446ee..869277fa84d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -456,6 +456,13 @@ module. *** The Info-edit command is obsolete. Editing Info nodes by hand has not been relevant for some time. +** Shell + +*** `explicit-bash-args' now always defaults to use --noediting. +During initialization, Emacs no longer expends a process to decide +whether it is safe to use Bash's --noediting option. These days +--noediting is ubiquitous; it was introduced in 1996 in Bash version 2. + * New Modes and Packages in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6dcbb90b0f6..d11db5d303e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-07-15 Paul Eggert + + * shell.el (explicit-bash-args): Remove obsolete hack for Bash 1.x. + The hack didn't work outside English locales anyway. + 2013-07-15 Juanma Barranquero * simple.el (define-alternatives): Rename from alternatives-define, diff --git a/lisp/shell.el b/lisp/shell.el index 51a0ffc4fe8..a78ab7f81ab 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -284,21 +284,9 @@ Value is a list of strings, which may be nil." ;; Note: There are no explicit references to the variable `explicit-bash-args'. ;; It is used implicitly by M-x shell when the interactive shell is `bash'. (defcustom explicit-bash-args - (let* ((prog (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name) - (getenv "ESHELL") shell-file-name)) - (name (file-name-nondirectory prog))) - ;; Tell bash not to use readline, except for bash 1.x which - ;; doesn't grok --noediting. Bash 1.x has -nolineediting, but - ;; process-send-eof cannot terminate bash if we use it. - (if (and (not purify-flag) - (equal name "bash") - (file-executable-p prog) - (string-match "bad option" - (shell-command-to-string - (concat (shell-quote-argument prog) - " --noediting")))) - '("-i") - '("--noediting" "-i"))) + ;; Tell bash not to use readline. It's safe to assume --noediting now, + ;; as it was introduced in 1996 in Bash version 2. + '("--noediting" "-i") "Args passed to inferior shell by \\[shell], if the shell is bash. Value is a list of strings, which may be nil." :type '(repeat (string :tag "Argument"))