diff options
Diffstat (limited to 'emu/port/main.c')
| -rw-r--r-- | emu/port/main.c | 8 |
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"; |
