aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2009-04-30 07:29:24 -0700
committerRuss Cox <rsc@swtch.com>2009-04-30 07:29:24 -0700
commit4aad1a325813fa6eed5d29d5dd31f18eae1f006d (patch)
tree88f3fa2a127b7d81257617be1c9620cf05d2f4fd /src/libdraw
parentfe73bf9fadcda23df685e3e72297bd9878e9426d (diff)
parentfe73bf9fadcda23df685e3e72297bd9878e9426d (diff)
downloadplan9port-4aad1a325813fa6eed5d29d5dd31f18eae1f006d.tar.gz
plan9port-4aad1a325813fa6eed5d29d5dd31f18eae1f006d.tar.bz2
plan9port-4aad1a325813fa6eed5d29d5dd31f18eae1f006d.zip
merge
Diffstat (limited to 'src/libdraw')
-rw-r--r--src/libdraw/drawclient.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libdraw/drawclient.c b/src/libdraw/drawclient.c
index f3c42b80..361cb0ac 100644
--- a/src/libdraw/drawclient.c
+++ b/src/libdraw/drawclient.c
@@ -45,8 +45,17 @@ _displayconnect(Display *d)
* The NOLIBTHREADDAEMONIZE keeps devdraw from
* forking before threadmain. OS X hates it when
* guis fork.
+ *
+ * If client didn't use ARGBEGIN, argv0 == nil.
+ * Can't send nil through because OS X expects
+ * argv[0] to be non-nil. Also, OS X apparently
+ * expects argv[0] to be a valid executable name,
+ * so "(argv0)" is not okay. Use "devdraw"
+ * instead.
*/
putenv("NOLIBTHREADDAEMONIZE", "1");
+ if(argv0 == nil)
+ argv0 = "devdraw";
execl("devdraw", argv0, argv0, "(devdraw)", nil);
sysfatal("exec devdraw: %r");
}