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;