[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-25 73d213f 2/2: Comint, term, and compile now set EM
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] emacs-25 73d213f 2/2: Comint, term, and compile now set EMACS |
Date: |
Wed, 23 Mar 2016 22:08:22 +0000 |
branch: emacs-25
commit 73d213f2816876fe9c6c429e75a3be5454a42b34
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Comint, term, and compile now set EMACS
This fixes directory tracking in ansi-term, at the expense of
breaking some usages of 'configure'. Setting EMACS is meant to be
a somewhat temporary measure, until Bash 4.4 comes out and is
common. (Bug#20484).
* etc/NEWS: Document this.
* lisp/comint.el (comint-exec-1):
* lisp/net/tramp-sh.el (tramp-remote-process-environment):
* lisp/progmodes/compile.el (compilation-start):
* lisp/term.el (term-exec-1):
Go back to setting the EMACS environment variable, for backward
compatibility to Bash 4.3 and earlier.
---
etc/NEWS | 3 ++-
lisp/comint.el | 7 +++++++
lisp/net/tramp-sh.el | 1 +
lisp/progmodes/compile.el | 8 ++++++++
lisp/term.el | 7 +++++++
5 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 8ce194a..f952a14 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1404,7 +1404,8 @@ symbol-function was changed not to signal 'void-function'
any more.
*** As a consequence, the second arg of 'indirect-function' is now obsolete.
+++
-** Comint, term, and compile do not set the EMACS env var any more.
+** Although comint, term, and compile still set the EMACS variable,
+this is now considered deprecated and will be removed in a future release.
Use the INSIDE_EMACS environment variable instead.
+++
diff --git a/lisp/comint.el b/lisp/comint.el
index dcd4a5a..cb79c17 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -816,6 +816,13 @@ series of processes in the same Comint buffer. The hook
(format "COLUMNS=%d" (window-width)))
(list "TERM=emacs"
(format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
+
+ ;; This hack is for backward compatibility with Bash 4.3 and
+ ;; earlier. It can break common uses of 'configure', so
+ ;; remove it once Bash 4.4 or later is common.
+ (unless (getenv "EMACS")
+ (list "EMACS=t"))
+
(list (format "INSIDE_EMACS=%s,comint" emacs-version))
process-environment))
(default-directory
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 1f43747..9fa4610 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -520,6 +520,7 @@ as given in your `~/.profile'."
(defcustom tramp-remote-process-environment
`("TMOUT=0" "LC_CTYPE=''"
,(format "TERM=%s" tramp-terminal-type)
+ "EMACS=t" ;; Deprecated; remove this line once Bash 4.4-or-later is common.
,(format "INSIDE_EMACS='%s,tramp:%s'" emacs-version tramp-version)
"CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=cat"
"autocorrect=" "correct=")
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index b7ab408..0b15a28 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1702,6 +1702,14 @@ Returns the compilation buffer created."
(list "TERM=emacs"
(format "TERMCAP=emacs:co#%d:tc=unknown:"
(window-width))))
+
+ ;; Set the EMACS variable, but
+ ;; don't override users' setting of $EMACS.
+ ;; Remove this hack once Bash 4.4-or-later is common,
+ ;; since it can break 'configure'.
+ (unless (getenv "EMACS")
+ (list "EMACS=t"))
+
(list (format "INSIDE_EMACS=%s,compile" emacs-version))
(copy-sequence process-environment))))
(set (make-local-variable 'compilation-arguments)
diff --git a/lisp/term.el b/lisp/term.el
index a2e01ed..6fd3a5e 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -1454,6 +1454,13 @@ Using \"emacs\" loses, because bash disables editing if
$TERM == emacs.")
(format "TERMINFO=%s" data-directory)
(format term-termcap-format "TERMCAP="
term-term-name term-height term-width)
+
+ ;; This is for backwards compatibility with Bash 4.3 and earlier.
+ ;; Remove this hack once Bash 4.4-or-later is common, because
+ ;; it breaks './configure' of some packages that expect it to
+ ;; say where to find EMACS.
+ (format "EMACS=%s (term:%s)" emacs-version term-protocol-version)
+
(format "INSIDE_EMACS=%s,term:%s" emacs-version
term-protocol-version)
(format "LINES=%d" term-height)
(format "COLUMNS=%d" term-width))