From: Emden R. Gansner Date: Thu, 24 Jul 2014 20:47:57 +0000 (-0400) Subject: Fix bug 2470 X-Git-Tag: TRAVIS_CI_BUILD_EXPERIMENTAL~196 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ed8b3f558fe8dd65bfc8f7c66146e035cc622932;p=graphviz Fix bug 2470 --- diff --git a/lib/cgraph/scan.l b/lib/cgraph/scan.l index 87db5d4b3..f6edf7576 100644 --- a/lib/cgraph/scan.l +++ b/lib/cgraph/scan.l @@ -221,10 +221,28 @@ void yyerror(char *str) agxbput (&xb, ": "); } agxbput (&xb, str); - sprintf(buf," in line %d near '", line_num); + sprintf(buf," in line %d", line_num); agxbput (&xb, buf); - agxbput (&xb, yytext); - agxbput (&xb,"'\n"); + if (*yytext) { + agxbput(&xb," near '"); + agxbput (&xb, yytext); + agxbputc (&xb, '\''); + } + else switch (YYSTATE) { + case qstring : + sprintf(buf, " scanning a quoted string (missing endquote? longer than %d?)", YY_BUF_SIZE); + agxbput (&xb, buf); + break; + case hstring : + sprintf(buf, " scanning a HTML string (missing '>'? bad nesting? longer than %d?)", YY_BUF_SIZE); + agxbput (&xb, buf); + break; + case comment : + sprintf(buf, " scanning a /*...*/ comment (missing '*/? longer than %d?)", YY_BUF_SIZE); + agxbput (&xb, buf); + break; + } + agxbputc (&xb, '\n'); agerr(AGERR,agxbuse(&xb)); agxbfree(&xb); }