cmd 28 sh.c struct cmd *cmd;
cmd 37 sh.c struct cmd *left;
cmd 38 sh.c struct cmd *right;
cmd 43 sh.c struct cmd *left;
cmd 44 sh.c struct cmd *right;
cmd 49 sh.c struct cmd *cmd;
cmd 54 sh.c struct cmd *parsecmd(char*);
cmd 67 sh.c if(cmd == 0)
cmd 70 sh.c switch(cmd->type){
cmd 75 sh.c ecmd = (struct execcmd*)cmd;
cmd 83 sh.c rcmd = (struct redircmd*)cmd;
cmd 89 sh.c runcmd(rcmd->cmd);
cmd 93 sh.c lcmd = (struct listcmd*)cmd;
cmd 101 sh.c pcmd = (struct pipecmd*)cmd;
cmd 125 sh.c bcmd = (struct backcmd*)cmd;
cmd 127 sh.c runcmd(bcmd->cmd);
cmd 196 sh.c struct cmd*
cmd 199 sh.c struct execcmd *cmd;
cmd 201 sh.c cmd = malloc(sizeof(*cmd));
cmd 202 sh.c memset(cmd, 0, sizeof(*cmd));
cmd 203 sh.c cmd->type = EXEC;
cmd 204 sh.c return (struct cmd*)cmd;
cmd 207 sh.c struct cmd*
cmd 210 sh.c struct redircmd *cmd;
cmd 212 sh.c cmd = malloc(sizeof(*cmd));
cmd 213 sh.c memset(cmd, 0, sizeof(*cmd));
cmd 214 sh.c cmd->type = REDIR;
cmd 215 sh.c cmd->cmd = subcmd;
cmd 216 sh.c cmd->file = file;
cmd 217 sh.c cmd->efile = efile;
cmd 218 sh.c cmd->mode = mode;
cmd 219 sh.c cmd->fd = fd;
cmd 220 sh.c return (struct cmd*)cmd;
cmd 223 sh.c struct cmd*
cmd 226 sh.c struct pipecmd *cmd;
cmd 228 sh.c cmd = malloc(sizeof(*cmd));
cmd 229 sh.c memset(cmd, 0, sizeof(*cmd));
cmd 230 sh.c cmd->type = PIPE;
cmd 231 sh.c cmd->left = left;
cmd 232 sh.c cmd->right = right;
cmd 233 sh.c return (struct cmd*)cmd;
cmd 236 sh.c struct cmd*
cmd 239 sh.c struct listcmd *cmd;
cmd 241 sh.c cmd = malloc(sizeof(*cmd));
cmd 242 sh.c memset(cmd, 0, sizeof(*cmd));
cmd 243 sh.c cmd->type = LIST;
cmd 244 sh.c cmd->left = left;
cmd 245 sh.c cmd->right = right;
cmd 246 sh.c return (struct cmd*)cmd;
cmd 249 sh.c struct cmd*
cmd 252 sh.c struct backcmd *cmd;
cmd 254 sh.c cmd = malloc(sizeof(*cmd));
cmd 255 sh.c memset(cmd, 0, sizeof(*cmd));
cmd 256 sh.c cmd->type = BACK;
cmd 257 sh.c cmd->cmd = subcmd;
cmd 258 sh.c return (struct cmd*)cmd;
cmd 323 sh.c struct cmd *parseline(char**, char*);
cmd 324 sh.c struct cmd *parsepipe(char**, char*);
cmd 325 sh.c struct cmd *parseexec(char**, char*);
cmd 326 sh.c struct cmd *nulterminate(struct cmd*);
cmd 328 sh.c struct cmd*
cmd 332 sh.c struct cmd *cmd;
cmd 335 sh.c cmd = parseline(&s, es);
cmd 341 sh.c nulterminate(cmd);
cmd 342 sh.c return cmd;
cmd 345 sh.c struct cmd*
cmd 348 sh.c struct cmd *cmd;
cmd 350 sh.c cmd = parsepipe(ps, es);
cmd 353 sh.c cmd = backcmd(cmd);
cmd 357 sh.c cmd = listcmd(cmd, parseline(ps, es));
cmd 359 sh.c return cmd;
cmd 362 sh.c struct cmd*
cmd 365 sh.c struct cmd *cmd;
cmd 367 sh.c cmd = parseexec(ps, es);
cmd 370 sh.c cmd = pipecmd(cmd, parsepipe(ps, es));
cmd 372 sh.c return cmd;
cmd 375 sh.c struct cmd*
cmd 387 sh.c cmd = redircmd(cmd, q, eq, O_RDONLY, 0);
cmd 390 sh.c cmd = redircmd(cmd, q, eq, O_WRONLY|O_CREATE, 1);
cmd 393 sh.c cmd = redircmd(cmd, q, eq, O_WRONLY|O_CREATE, 1);
cmd 397 sh.c return cmd;
cmd 400 sh.c struct cmd*
cmd 403 sh.c struct cmd *cmd;
cmd 408 sh.c cmd = parseline(ps, es);
cmd 412 sh.c cmd = parseredirs(cmd, ps, es);
cmd 413 sh.c return cmd;
cmd 416 sh.c struct cmd*
cmd 421 sh.c struct execcmd *cmd;
cmd 422 sh.c struct cmd *ret;
cmd 428 sh.c cmd = (struct execcmd*)ret;
cmd 437 sh.c cmd->argv[argc] = q;
cmd 438 sh.c cmd->eargv[argc] = eq;
cmd 444 sh.c cmd->argv[argc] = 0;
cmd 445 sh.c cmd->eargv[argc] = 0;
cmd 450 sh.c struct cmd*
cmd 460 sh.c if(cmd == 0)
cmd 463 sh.c switch(cmd->type){
cmd 465 sh.c ecmd = (struct execcmd*)cmd;
cmd 471 sh.c rcmd = (struct redircmd*)cmd;
cmd 472 sh.c nulterminate(rcmd->cmd);
cmd 477 sh.c pcmd = (struct pipecmd*)cmd;
cmd 483 sh.c lcmd = (struct listcmd*)cmd;
cmd 489 sh.c bcmd = (struct backcmd*)cmd;
cmd 490 sh.c nulterminate(bcmd->cmd);
cmd 493 sh.c return cmd;