- if (!(setjmp (sigenv))) {
- istat = SIGNAL (SIGINT, intrser);
- } else {
- SIGNAL (SIGINT, istat);
- return NULL;
- }
-
- for (;;) {
- printf ("%s", prompt);
- fflush (stdout);
- cp = ansbuf;
- while ((i = getchar ()) != '\n') {
- if (i == EOF)
- longjmp (sigenv, 1);
- if (cp < &ansbuf[sizeof ansbuf - 1])
- *cp++ = i;
- }
- *cp = '\0';
- if (ansbuf[0] == '?' || cp == ansbuf) {
- printf ("Options are:\n");
- print_sw (ALL, ansp, "");
- continue;
- }
- cpp = brkstring (ansbuf, " ", NULL);
- switch (smatch (*cpp, ansp)) {
- case AMBIGSW:
- ambigsw (*cpp, ansp);
- continue;
- case UNKWNSW:
- printf (" -%s unknown. Hit <CR> for help.\n", *cpp);
- continue;
- default:
+ if (!(setjmp (sigenv))) {
+ istat = SIGNAL (SIGINT, intrser);
+ } else {