puts("?Invalid command");
puts("?Invalid command.");
cmdscanner(top)	int top;{	struct cmd *c;	int num;	if (!top #ifndef SMALLFTP	    && !editing#endif /* !SMALLFTP */	    )		(void)putchar('\n');	for (;;) {#ifndef SMALLFTP		if (!editing) {#endif /* !SMALLFTP */			if (fromatty) {				fputs(prompt(), stdout);				(void)fflush(stdout);			}			if (fgets(line, sizeof(line), stdin) == NULL)				quit(0, 0);			num = strlen(line);			if (num == 0)				break;			if (line[--num] == '\n') {				if (num == 0)					break;				line[num] = '\0';			} else if (num == sizeof(line) - 2) {				puts("sorry, input line too long");				while ((num = getchar()) != '\n' && num != EOF)					/* void */;				break;			} /* else it was a line without a newline */#ifndef SMALLFTP		} else {			const char *buf;			cursor_pos = NULL;			if ((buf = el_gets(el, &num)) == NULL || num == 0)				quit(0, 0);			if (line[--num] == '\n') {				if (num == 0)					break;			} else if (num >= sizeof(line)) {				puts("sorry, input line too long");				break;			}			memcpy(line, buf, num);			line[num] = '\0';			history(hist, H_ENTER, buf);		}#endif /* !SMALLFTP */		makeargv();		if (margc == 0)			continue;#if 0 && !defined(SMALLFTP)	/* XXX: don't want el_parse */		/*		 * el_parse returns -1 to signal that it's not been handled		 * internally.		 */		if (el_parse(el, margc, margv) != -1)			continue;#endif /* !SMALLFTP */		c = getcmd(margv[0]);		if (c == (struct cmd *)-1) {			puts("?Ambiguous command");			continue;		}		if (c == 0) {			puts("?Invalid command");			continue;		}		if (c->c_conn && !connected) {			puts("Not connected.");			continue;		}		confirmrest = 0;		(*c->c_handler)(margc, margv);		if (bell && c->c_bell)			(void)putchar('\007');		if (c->c_handler != help)			break;	}	(void)signal(SIGINT, (sig_t)intr);	(void)signal(SIGPIPE, (sig_t)lostpeer);}