diff --git a/__call.cpp b/__call.cpp index 7467c5b..5f6c235 100644 --- a/__call.cpp +++ b/__call.cpp @@ -16,12 +16,12 @@ namespace jet { throw coreutils::Exception("pgm keyword must be specified."); for(ix = 0; ix <= 50; ++ix) argv[ix] = NULL; - argv[0] = keywords[resolveKeyword("pgm")].c_str(); // TODO: Need to peel off the program name only and pass as argv[0]. + argv[0] = resolveKeyword("pgm").c_str(); // TODO: Need to peel off the program name only and pass as argv[0]. for(ix = 1; ix <= 50; ++ix) { coreutils::MString arg("arg"); arg << ix; if(keywordDefined(arg)) { - argv[ix] = keywords[resolveKeyword(arg)].c_str(); + argv[ix] = resolveKeyword(arg).c_str(); } else break; } @@ -31,7 +31,7 @@ namespace jet { close(fdo[0]); dup2(fdo[1], 1); if(keywordDefined("input")) { - coreutils::ZString input(variables[resolveKeyword("input")]); + coreutils::ZString input(resolveKeyword("input")); pipe(fdi); if(fork() == 0) { close(fdi[0]); @@ -42,18 +42,18 @@ namespace jet { close(fdi[1]); dup2(fdi[0], 0); } - rc = execvpe(variables[resolveKeyword("pgm")].c_str(), argv, global.envp); + rc = execvpe(resolveKeyword("pgm").c_str(), argv, global.envp); close(fdo[1]); exit(errno); } close(fdo[1]); if(keywordDefined("name")) { - storeVariable(keywords[resolveKeyword("name")]); + storeVariable(resolveKeyword("name")); } else out.read(fdo[0]); waitpid(pid, &status, 0); if(keywordDefined("error")) { - global.variables[keywords[resolveKeyword("error")]] = (status >> 8 & 255); + global.variables[resolveKeyword("error")] = (status >> 8 & 255); } }