--- dosemu-1.0.2/src/plugin/commands/comcom.c.orig Fri May 10 20:50:04 2002 +++ dosemu-1.0.2/src/plugin/commands/comcom.c Fri May 10 20:57:14 2002 @@ -104,6 +104,7 @@ struct res_dta { struct batchdata *current_bdta; int exitcode; + int errorlevel; /* exit code for external commands */ int need_errprinting; int echo_on; int envsize; /* size of enlarged enviroment */ @@ -1277,7 +1278,7 @@ if (!strcasecmp(argv[argi], "errorlevel")) { if (argi+2 >= argc) return DOS_EINVAL; level = strtoul(argv[argi+1], 0, 10); - if (((EXITCODE >= level) ? 1 : 0) ^ invers) { + if (((rdta->errorlevel >= level) ? 1 : 0) ^ invers) { argi += 2; SET_CHILD_ARGS(argi); dopath_exec(argc-argi, argv+argi); @@ -2740,6 +2741,7 @@ saved_cannotexit = rdta->cannotexit; rdta->cannotexit = 0; ret = load_and_run_DOS_program(name, cmdline); + rdta->errorlevel = ret; rdta->cannotexit = saved_cannotexit; /* re-enlarge the environment to maximum */ @@ -3256,6 +3258,7 @@ rdta->need_errprinting = 0; EXITCODE = 0; + rdta->errorlevel = 0; ECHO_ON = 1; /* first free all memory we don't need for ourselves, such that