home *** CD-ROM | disk | FTP | other *** search
- /* $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>
- #include <string.h>
- #endif /* defined(HAVE_STDLIB) */
-
- 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) */
- #ifdef atarist
- #include <unistd.h>
- #endif
-
- #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 */
- }
-