From 77824530203e1bc4bcab1423fbe05ec789fc12e9 Mon Sep 17 00:00:00 2001 From: erg Date: Sat, 5 Dec 2009 22:34:03 +0000 Subject: [PATCH] Fix agerrors so it reports run-time errors as well as lex/parse errrors. --- lib/graph/graphio.c | 5 ----- lib/graph/lexer.c | 8 ++++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/graph/graphio.c b/lib/graph/graphio.c index 9f169d38c..1a54e1502 100644 --- a/lib/graph/graphio.c +++ b/lib/graph/graphio.c @@ -91,11 +91,6 @@ Agraph_t *agread_usergets(FILE * fp, gets_f usergets) return AG.parsed_g; } -int agerrors(void) -{ - return AG.syntax_errors; -} - static int _is_number_char(char c) { diff --git a/lib/graph/lexer.c b/lib/graph/lexer.c index e3c2c30d7..53c15e07a 100644 --- a/lib/graph/lexer.c +++ b/lib/graph/lexer.c @@ -35,6 +35,7 @@ static unsigned char Comment_start; static unsigned char Start_html_string; int Line_number; static char *InputFile; +static int agmaxerr; static void storeFileName (char* fname, int len) @@ -86,6 +87,7 @@ void aglexinit(FILE * fp, gets_f mygets) TokenBuf = N_NEW(LineBufSize, char); } AG.fgets (AG.linebuf, 0, fp); /* reset mygets */ + AG.syntax_errors = 0; } #define ISSPACE(c) ((c != 0) && ((isspace(c) || iscntrl(c)))) @@ -490,6 +492,11 @@ void agseterr(agerrlevel_t lvl) agerrlevel = lvl; } +int agerrors(void) +{ + return MAX(agmaxerr, AG.syntax_errors); +} + char *aglasterr() { long endpos; @@ -517,6 +524,7 @@ static int agerr_va(agerrlevel_t level, const char *fmt, va_list args) lvl = (level == AGPREV ? agerrno : (level == AGMAX) ? AGERR : level); agerrno = lvl; + agmaxerr = MAX(agmaxerr, agerrno); if (lvl >= agerrlevel) { if (level != AGPREV) fprintf(stderr, "%s: ", -- 2.40.0