From 38ec47c3460f6e684c50c437dc2f60c18984295b Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Wed, 25 Jun 1997 08:14:45 +0000 Subject: [PATCH] Add extra test functionality. Obtained from: NetBSD --- lib/libedit/TEST/test.c | 66 +++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 19 deletions(-) diff --git a/lib/libedit/TEST/test.c b/lib/libedit/TEST/test.c index 2379b6f84781..097055a742c0 100644 --- a/lib/libedit/TEST/test.c +++ b/lib/libedit/TEST/test.c @@ -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); }