54 |
int flags; // exit, suspend, && || |
int flags; // exit, suspend, && || |
55 |
int pid; // pid (or exit code) |
int pid; // pid (or exit code) |
56 |
int argc; |
int argc; |
57 |
char *argv[0]; |
char *argv[]; |
58 |
}; |
}; |
59 |
|
|
60 |
// A collection of processes piped into/waiting on each other. |
// A collection of processes piped into/waiting on each other. |
199 |
} |
} |
200 |
|
|
201 |
int bbsh_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
int bbsh_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
202 |
int bbsh_main(int argc, char **argv) |
int bbsh_main(int argc UNUSED_PARAM, char **argv) |
203 |
{ |
{ |
204 |
char *command=NULL; |
char *command=NULL; |
205 |
FILE *f; |
FILE *f; |
212 |
unsigned cmdlen=0; |
unsigned cmdlen=0; |
213 |
for (;;) { |
for (;;) { |
214 |
if (!f) putchar('$'); |
if (!f) putchar('$'); |
215 |
if (1 > getline(&command, &cmdlen,f ? : stdin)) break; |
if (1 > getline(&command, &cmdlen, f ? f : stdin)) break; |
216 |
|
|
217 |
handle(command); |
handle(command); |
218 |
} |
} |