--- src/child.c.org Mon Mar 9 12:00:15 1998 +++ src/child.c Thu Mar 25 05:39:42 1999 @@ -40,10 +40,14 @@ #include static char *startupStr, *execProg; +static char *execProgArgs[256]; -int ConfigExecProg(const char *string) +int ConfigExecProg(const char *string, char *args[]) { + int i=0; execProg = strdup(string); + while(args[i]) execProgArgs[i] = args[i++]; + execProgArgs[i]=NULL; return SUCCESS; } @@ -133,7 +137,7 @@ #endif if (execProg) - execlp(execProg, execProg, 0); + execvp(execProg, execProgArgs); else { if ((execProg = getenv("SHELL")) == NULL) execProg = "/bin/sh"; --- src/term.c.org Mon Mar 9 13:11:59 1998 +++ src/term.c Thu Mar 25 05:10:42 1999 @@ -248,7 +248,7 @@ { int i = 0; const char *video = "NORMAL"; - extern int ConfigExecProg(const char *); + extern int ConfigExecProg(const char *,char *const args[]); if (argc > 0 && argv[0][0] != '-') { video = argv[0]; @@ -268,8 +268,10 @@ error("no value for `%s'\r\n", arg); break; } - if (!strcasecmp(arg, "e")) - ConfigExecProg(argv[i]); + if (!strcasecmp(arg, "e")){ + ConfigExecProg(argv[i],&(argv[i])); + break; + } else if (SetCapArg(arg, argv[i]) < 0) warn("invalid capability `%s' ignored\r\n", arg); i++;