diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index cfe931314da8c44d638b72f64231739e3875c4e9..85a57f3eeec313a7115b1d75c4f46d9c992c29ea 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -148,8 +148,12 @@ void usage(FILE* fp) " -i<path_list> set load() comma-sep search path list (default=\"%s\")\n" " -f use non-buffered stream for console messages\n" " -a append instead of overwriting message output files\n" + " -A send all message to stdout\n" + " -A<filename> send all message to file instead of stdout/stderr\n" " -e<filename> send error messages to file in addition to stderr\n" " -o<filename> send console messages to file instead of stdout\n" + " -S<filename> send status messages to file instead of stderr\n" + " -S send status messages to stdout\n" " -n send status messages to %s instead of stderr\n" " -q send console messages to %s instead of stdout\n" " -v display version details and exit\n" @@ -1306,6 +1310,22 @@ int main(int argc, char **argv, char** env) case 'a': omode="a"; break; + case 'A': + if (errfp != stderr) + fclose(errfp); + if(*p == '\0') { + errfp = stdout; + confp = stdout; + statfp = stdout; + } else { + if((errfp = fopen(p, omode)) == NULL) { + perror(p); + return(do_bail(1)); + } + statfp = errfp; + confp = errfp; + } + break; case 'C': change_cwd = FALSE; break; @@ -1329,6 +1349,16 @@ int main(int argc, char **argv, char** env) case 'l': loop=TRUE; break; + case 'S': + if(*p == '\0') + statfp = stdout; + else { + if((statfp = fopen(p,omode))==NULL) { + perror(p); + return(do_bail(1)); + } + } + break; case 'n': statfp=nulfp; break;