| /* $Revision: 1.2 $ | |
| ** | |
| ** A "micro-shell" to test editline library. | |
| ** If given any arguments, commands aren't executed. | |
| */ | |
| #include <stdio.h> | |
| #if defined(HAVE_STDLIB) | |
| #include <stdlib.h> | |
| #endif /* defined(HAVE_STDLIB) */ | |
| const char version_string[] = "4.321"; | |
| extern char *readline(); | |
| extern void add_history(); | |
| #if !defined(HAVE_STDLIB) | |
| extern int chdir(); | |
| extern int free(); | |
| extern int strncmp(); | |
| extern int system(); | |
| extern void exit(); | |
| #endif /* !defined(HAVE_STDLIB) */ | |
| #if defined(NEED_PERROR) | |
| void | |
| perror(s) | |
| char *s; | |
| { | |
| extern int errno; | |
| (voidf)printf(stderr, "%s: error %d\n", s, errno); | |
| } | |
| #endif /* defined(NEED_PERROR) */ | |
| /* ARGSUSED1 */ | |
| int | |
| main(ac, av) | |
| int ac; | |
| char *av[]; | |
| { | |
| char *p; | |
| int doit; | |
| doit = ac == 1; | |
| while ((p = readline("testit> ")) != NULL) { | |
| (void)printf("\t\t\t|%s|\n", p); | |
| if (doit) | |
| if (strncmp(p, "cd ", 3) == 0) { | |
| if (chdir(&p[3]) < 0) | |
| perror(&p[3]); | |
| } | |
| else if (system(p) != 0) | |
| perror(p); | |
| add_history(p); | |
| free(p); | |
| } | |
| exit(0); | |
| /* NOTREACHED */ | |
| } |