summaryrefslogtreecommitdiffstats
path: root/src/cmd/9term
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2024-06-15 10:55:21 -0400
committerRuss Cox <rsc@golang.org>2024-06-15 10:57:45 -0400
commit0c79c32675e83ff3d87d5bf52082652d85486a45 (patch)
tree8b7042e878874a1ed870f26571b7a2383be231f1 /src/cmd/9term
parent60ca2be037f739e30daba1dc5b66a166fcdc0bf2 (diff)
downloadplan9port-0c79c32675e83ff3d87d5bf52082652d85486a45.tar.gz
plan9port-0c79c32675e83ff3d87d5bf52082652d85486a45.zip
acme: shift button 3 for reverse search
An experiment. Let's see if it's any good. Also document the Mac conventions in devdraw(3).
Diffstat (limited to 'src/cmd/9term')
-rw-r--r--src/cmd/9term/9term.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c
index d7391cf5..2fd42c54 100644
--- a/src/cmd/9term/9term.c
+++ b/src/cmd/9term/9term.c
@@ -1,4 +1,5 @@
#include <u.h>
+#include <pwd.h>
#include <signal.h>
#include <libc.h>
#include <ctype.h>
@@ -56,7 +57,7 @@ threadmaybackground(void)
void
threadmain(int argc, char *argv[])
{
- char *p;
+ char *p, *env;
rfork(RFNOTEG);
font = nil;
@@ -64,6 +65,25 @@ threadmain(int argc, char *argv[])
mainpid = getpid();
messagesize = 8192;
+ threadmaybackground();
+
+ env = getenv("__CFBundleIdentifier");
+ if(env != nil && strcmp(env, "com.swtch.9term") == 0) {
+ // Being invoked as $PLAN9/mac/9term.app.
+ // Set $SHELL and daemonize to let parent exit.
+ // This makes sure that each click on 9term
+ // brings up a new window.
+ extern void _threaddaemonize(void);
+ struct passwd *pw;
+
+ unsetenv("__CFBundleIdentifier");
+ pw = getpwuid(getuid());
+ if(pw != nil && pw->pw_shell != nil)
+ setenv("SHELL", pw->pw_shell, 1);
+ loginshell = TRUE;
+ //_threaddaemonize();
+ }
+
ARGBEGIN{
default:
usage();