aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/9term
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2013-08-06 09:42:10 -0400
committerRuss Cox <rsc@swtch.com>2013-08-06 09:42:10 -0400
commitbf63f986ff1a433ab6cce5287d51c191036f0a65 (patch)
tree62dbd26446e930d0d5a841be9dcd1a43667212cd /src/cmd/9term
parent2bc9a13faf0abcfa43cddc8c226b2f742b764c4a (diff)
downloadplan9port-bf63f986ff1a433ab6cce5287d51c191036f0a65.tar.gz
plan9port-bf63f986ff1a433ab6cce5287d51c191036f0a65.tar.bz2
plan9port-bf63f986ff1a433ab6cce5287d51c191036f0a65.zip
9term: set TERM=dumb instead of TERM=9term
Everyone seems to assume that TERM != dumb implies ANSI escape codes are okay. In fact, many people assume that unconditionally, but it is easier to argue back about TERM=dumb than TERM=9term. This applies to acme win too, because they share the code. Set termprog=9term or termprog=win for clients who need to know. R=rsc CC=r https://codereview.appspot.com/12532043
Diffstat (limited to 'src/cmd/9term')
-rw-r--r--src/cmd/9term/9term.c1
-rw-r--r--src/cmd/9term/rcstart.c11
-rw-r--r--src/cmd/9term/term.h1
-rw-r--r--src/cmd/9term/win.c1
4 files changed, 13 insertions, 1 deletions
diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c
index c0be6f7f..5cf46dec 100644
--- a/src/cmd/9term/9term.c
+++ b/src/cmd/9term/9term.c
@@ -15,6 +15,7 @@
#include "fns.h"
#include "term.h"
+const char *termprog = "9term";
int use9wm;
int mainpid;
int mousepid;
diff --git a/src/cmd/9term/rcstart.c b/src/cmd/9term/rcstart.c
index 6b91c869..9bfefdaa 100644
--- a/src/cmd/9term/rcstart.c
+++ b/src/cmd/9term/rcstart.c
@@ -77,7 +77,16 @@ rcstart(int argc, char **argv, int *pfd, int *tfd)
*/
notifyoff("sys: window size change");
- putenv("TERM", "9term");
+ // This used to be TERM=9term but we don't know of anything that cares.
+ // Worse, various cc have started assuming that TERM != dumb implies
+ // the ability to understand ANSI escape codes. 9term will squelch them
+ // but acme win does not.
+ putenv("TERM", "dumb");
+
+ // Set $termprog to 9term or win for those who care about what kind of
+ // dumb terminal this is.
+ putenv("termprog", (char*)termprog);
+
pid = fork();
switch(pid){
case 0:
diff --git a/src/cmd/9term/term.h b/src/cmd/9term/term.h
index e7a1f6b2..6041275a 100644
--- a/src/cmd/9term/term.h
+++ b/src/cmd/9term/term.h
@@ -10,3 +10,4 @@ extern int loginshell;
extern void echoed(char*, int);
extern int echocancel(char*, int);
extern int dropcrnl(char*, int);
+extern const char *termprog;
diff --git a/src/cmd/9term/win.c b/src/cmd/9term/win.c
index e08e032c..decfece7 100644
--- a/src/cmd/9term/win.c
+++ b/src/cmd/9term/win.c
@@ -5,6 +5,7 @@
#include <9pclient.h>
#include "term.h"
+const char *termprog = "win";
#define EVENTSIZE 256
#define STACK 32768