]> git.eshelyaron.com Git - emacs.git/commitdiff
Comint, term, and compile now set EMACS
authorPaul Eggert <eggert@penguin.cs.ucla.edu>
Wed, 23 Mar 2016 22:07:56 +0000 (15:07 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 23 Mar 2016 22:08:19 +0000 (15:08 -0700)
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
lisp/comint.el
lisp/net/tramp-sh.el
lisp/progmodes/compile.el
lisp/term.el

index 8ce194a69cab5a9e9a21afaa343aed6aa7a6d591..f952a14b1ec0aee265ad101fd91f9378667b2d4e 100644 (file)
--- 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.
 
 +++
index dcd4a5ae4cfeae0c583472ef1b65567d9488ac43..cb79c175f0e8a939770e78e81a4742dc46694849 100644 (file)
@@ -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
index 1f43747c094a6d9b48477f62a95657c177873eb8..9fa46109a5a1c852fa8436db83648ab8114fcd12 100644 (file)
@@ -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=")
index b7ab408f744e2b88c48a25e3f09022ecc8f630dc..0b15a283090ea98258dd29b6c3de2459cb5a9881 100644 (file)
@@ -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)
index a2e01ed4a29670d97de4ff8a02d0af861d7b7247..6fd3a5e62615ac6dd40a10bab289241d8333cdab 100644 (file)
@@ -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))