Add extra test functionality.

Obtained from:	NetBSD
This commit is contained in:
Mike Smith 1997-06-25 08:14:45 +00:00
parent bd5176cb38
commit 38ec47c346
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=26927

View File

@ -179,28 +179,56 @@ main(argc, argv)
history(hist, continuation ? H_ADD : H_ENTER, buf);
continuation = 0;
if (el_parse(el, ac, av) != -1) {
tok_reset(tok);
continue;
if (strcmp(av[0], "history") == 0) {
const struct HistEvent *he;
switch (ac) {
case 1:
for (he = history(hist, H_LAST); he;
he = history(hist, H_PREV))
(void) fprintf(stdout, "%4d %s", he->num, he->str);
break;
case 2:
if (strcmp(av[1], "clear") == 0)
history(hist, H_CLEAR);
else
goto badhist;
break;
case 3:
if (strcmp(av[1], "load") == 0)
history(hist, H_LOAD, av[2]);
else if (strcmp(av[1], "save") == 0)
history(hist, H_SAVE, av[2]);
break;
badhist:
default:
(void) fprintf(stderr, "Bad history arguments\n");
break;
}
}
else if (el_parse(el, ac, av) == -1) {
switch (fork()) {
case 0:
execvp(av[0], av);
perror(av[0]);
_exit(1);
/*NOTREACHED*/
break;
switch (fork()) {
case 0:
execvp(av[0], av);
perror(av[0]);
_exit(1);
/*NOTREACHED*/
break;
case -1:
perror("fork");
break;
case -1:
perror("fork");
break;
default:
if (wait(&num) == -1)
perror("wait");
(void) fprintf(stderr, "Exit %x\n", num);
break;
default:
if (wait(&num) == -1)
perror("wait");
(void) fprintf(stderr, "Exit %x\n", num);
break;
}
}
tok_reset(tok);
}