-struct biltins {
- char *bname;
- int (*bfunct)();
- short minargs, maxargs;
-} bfunc[] = {
- "@", dolet, 0, INF,
- "alias", doalias, 0, INF,
- "alloc", showall, 0, 1,
- "bg", dobg, 0, INF,
- "break", dobreak, 0, 0,
- "breaksw", doswbrk, 0, 0,
- "case", dozip, 0, 1,
- "cd", dochngd, 0, 1,
- "chdir", dochngd, 0, 1,
- "continue", docontin, 0, 0,
- "default", dozip, 0, 0,
- "dirs", dodirs, 0, 1,
- "echo", doecho, 0, INF,
- "else", doelse, 0, INF,
- "end", doend, 0, 0,
- "endif", dozip, 0, 0,
- "endsw", dozip, 0, 0,
- "eval", doeval, 0, INF,
- "exec", execash, 1, INF,
- "exit", doexit, 0, INF,
- "fg", dofg, 0, INF,
- "foreach", doforeach, 3, INF,
- "glob", doglob, 0, INF,
- "goto", dogoto, 1, 1,
-#ifdef VFORK
- "hashstat", hashstat, 0, 0,
-#endif
- "history", dohist, 0, 2,
- "if", doif, 1, INF,
- "jobs", dojobs, 0, 1,
- "kill", dokill, 1, INF,
- "limit", dolimit, 0, 3,
- "login", dologin, 0, 1,
- "logout", dologout, 0, 0,
- "nice", donice, 0, INF,
- "nohup", donohup, 0, INF,
- "notify", donotify, 0, INF,
- "onintr", doonintr, 0, 2,
- "popd", dopopd, 0, 1,
- "pushd", dopushd, 0, 1,
- "rehash", dohash, 0, 0,
- "repeat", dorepeat, 2, INF,
- "set", doset, 0, INF,
- "setenv", dosetenv, 0, 2,
- "shift", shift, 0, 1,
- "source", dosource, 1, 2,
- "stop", dostop, 1, INF,
- "suspend", dosuspend, 0, 0,
- "switch", doswitch, 1, INF,
- "time", dotime, 0, INF,
- "umask", doumask, 0, 1,
- "unalias", unalias, 1, INF,
- "unhash", dounhash, 0, 0,
- "unlimit", dounlimit, 0, INF,
- "unset", unset, 1, INF,
- "unsetenv", dounsetenv, 1, INF,
- "wait", dowait, 0, 0,
- "while", dowhile, 1, INF,
+struct biltins bfunc[] =
+{
+ "@", dolet, 0, INF,
+ "alias", doalias, 0, INF,
+ "alloc", showall, 0, 1,
+ "bg", dobg, 0, INF,
+ "break", dobreak, 0, 0,
+ "breaksw", doswbrk, 0, 0,
+ "case", dozip, 0, 1,
+ "cd", dochngd, 0, INF,
+ "chdir", dochngd, 0, INF,
+ "continue", docontin, 0, 0,
+ "default", dozip, 0, 0,
+ "dirs", dodirs, 0, INF,
+ "echo", doecho, 0, INF,
+ "else", doelse, 0, INF,
+ "end", doend, 0, 0,
+ "endif", dozip, 0, 0,
+ "endsw", dozip, 0, 0,
+ "eval", doeval, 0, INF,
+ "exec", execash, 1, INF,
+ "exit", doexit, 0, INF,
+ "fg", dofg, 0, INF,
+ "foreach", doforeach, 3, INF,
+ "glob", doglob, 0, INF,
+ "goto", dogoto, 1, 1,
+ "hashstat", hashstat, 0, 0,
+ "history", dohist, 0, 2,
+ "if", doif, 1, INF,
+ "jobs", dojobs, 0, 1,
+ "kill", dokill, 1, INF,
+ "limit", dolimit, 0, 3,
+ "linedit", doecho, 0, INF,
+ "login", dologin, 0, 1,
+ "logout", dologout, 0, 0,
+ "nice", donice, 0, INF,
+ "nohup", donohup, 0, INF,
+ "notify", donotify, 0, INF,
+ "onintr", doonintr, 0, 2,
+ "popd", dopopd, 0, INF,
+ "pushd", dopushd, 0, INF,
+ "rehash", dohash, 0, 0,
+ "repeat", dorepeat, 2, INF,
+ "set", doset, 0, INF,
+ "setenv", dosetenv, 0, 2,
+ "shift", shift, 0, 1,
+ "source", dosource, 1, 2,
+ "stop", dostop, 1, INF,
+ "suspend", dosuspend, 0, 0,
+ "switch", doswitch, 1, INF,
+ "time", dotime, 0, INF,
+ "umask", doumask, 0, 1,
+ "unalias", unalias, 1, INF,
+ "unhash", dounhash, 0, 0,
+ "unlimit", dounlimit, 0, INF,
+ "unset", unset, 1, INF,
+ "unsetenv", dounsetenv, 1, INF,
+ "wait", dowait, 0, 0,
+ "while", dowhile, 1, INF,