From a25e66a479d5fea0eac3d74fbe3a082352799358 Mon Sep 17 00:00:00 2001 From: tjg Date: Fri, 12 Oct 2001 09:30:14 +0000 Subject: Bug: semantic errors in `fn prompt' no longer throw rc into a tailspin. --- input.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'input.c') diff --git a/input.c b/input.c index c45444f..74e4d91 100644 --- a/input.c +++ b/input.c @@ -243,7 +243,6 @@ extern void flushu() { extern Node *doit(bool clobberexecit) { bool eof; bool execit; - bool infnprompt; Jbwrap j; Estack e1; Edata jerror; @@ -251,7 +250,6 @@ extern Node *doit(bool clobberexecit) { if (dashen) clobberexecit = FALSE; execit = clobberexecit; - infnprompt = FALSE; sigsetjmp(j.j, 1); jerror.jb = &j; except(eError, jerror, &e1); @@ -272,13 +270,14 @@ extern Node *doit(bool clobberexecit) { if (interactive) { List *s; if (!dashen && fnlookup("prompt") != NULL) { + static bool died = FALSE; static char *arglist[] = { "prompt", NULL }; - if (!infnprompt) { - infnprompt = TRUE; + if (!died) { + died = TRUE; funcall(arglist); } - infnprompt = FALSE; + died = FALSE; } if ((s = varlookup("prompt")) != NULL) { #if EDITLINE || READLINE -- cgit v1.2.3