- for (;;) {
- printf("%s> ", prompt);
- if (gets(line) == NULL) {
- if (feof(stdin) || ferror(stdin))
- quit();
- break;
- }
- if (line[0] == 0)
- break;
- makeargv();
- c = getcmd(margv[0]);
- if (c == Ambiguous(struct cmd *)) {
- printf("?Ambiguous command\n");
- continue;
- }
- if (c == 0) {
- printf("?Invalid command\n");
- continue;
- }
- if (c->needconnect && !connected) {
- printf("?Need to be connected first.\n");
- continue;
- }
- if ((*c->handler)(margc, margv)) {
- break;
- }