summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/compile.el20
2 files changed, 20 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 84e414ec738..2906265bdef 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-26 Richard M. Stallman <rms@gnu.org>
+
+ * progmodes/compile.el (compile-internal):
+ Set TERM variable in process-environment.
+
2001-12-25 Richard M. Stallman <rms@gnu.org>
* help-mode.el (help-xref-on-pp): Catch and ignore errors in scanning
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index c09a35fd9be..d58689b460a 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -899,14 +899,24 @@ Returns the compilation buffer created."
(funcall compilation-process-setup-function))
;; Start the compilation.
(if (fboundp 'start-process)
- (let* ((process-environment
- ;; Don't override users' setting of $EMACS.
- (if (getenv "EMACS")
- process-environment
- (cons "EMACS=t" process-environment)))
+ (let* ((process-environment process-environment)
(proc (start-process-shell-command (downcase mode-name)
outbuf
command)))
+ ;; Set the terminal type
+ (setq process-environment
+ (if (and (boundp 'system-uses-terminfo)
+ system-uses-terminfo)
+ (list "TERM=dumb" "TERMCAP="
+ (format "COLUMNS=%d" (window-width)))
+ (list "TERM=emacs"
+ (format "TERMCAP=emacs:co#%d:tc=unknown:"
+ (window-width)))))
+ ;; Set the EMACS variable, but
+ ;; don't override users' setting of $EMACS.
+ (if (getenv "EMACS")
+ (setq process-environment
+ (cons "EMACS=t" process-environment)))
(set-process-sentinel proc 'compilation-sentinel)
(set-process-filter proc 'compilation-filter)
(set-marker (process-mark proc) (point) outbuf)