summaryrefslogtreecommitdiff
path: root/emu/port/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'emu/port/main.c')
-rw-r--r--emu/port/main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/emu/port/main.c b/emu/port/main.c
index 64f87f4e..f4cb9490 100644
--- a/emu/port/main.c
+++ b/emu/port/main.c
@@ -162,7 +162,7 @@ option(int argc, char *argv[], void (*badusage)(void))
tkfont = EARGF(badusage());
break;
case 'r': /* Set inferno root */
- strncpy(rootdir, EARGF(badusage()), sizeof(rootdir)-1);
+ strecpy(rootdir, rootdir+sizeof(rootdir), EARGF(badusage()));
break;
case '7': /* use 7 bit colormap in X */
xtblbit = 1;
@@ -230,11 +230,15 @@ putenvqv(char *name, char **v, int n, int conf)
void
main(int argc, char *argv[])
{
- char *opt;
+ char *opt, *p;
char *enva[20];
int envc;
+
quotefmtinstall();
savestartup(argc, argv);
+ /* set default root now, so either $EMU or -r can override it later */
+ if((p = getenv("INFERNO")) != nil || (p = getenv("ROOT")) != nil)
+ strecpy(rootdir, rootdir+sizeof(rootdir), p);
opt = getenv("EMU");
if(opt != nil && *opt != '\0') {
enva[0] = "emu";