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;