From b96be173766c58ccfcc3abc84bd751ba000be838 Mon Sep 17 00:00:00 2001 From: aiju Date: Sat, 8 Dec 2018 18:04:25 +0000 Subject: dtracy: fix lexer bug --- sys/src/cmd/dtracy/lex.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/src/cmd/dtracy/lex.c b/sys/src/cmd/dtracy/lex.c index 15a959ffa..c820f145c 100644 --- a/sys/src/cmd/dtracy/lex.c +++ b/sys/src/cmd/dtracy/lex.c @@ -7,7 +7,7 @@ #include "fns.h" #include "y.tab.h" -char *str, *strp; +char *str, *strp, *stre; int lineno = 1; int errors; @@ -60,6 +60,7 @@ void lexstring(char *s) { str = strp = s; + stre = str + strlen(str); } void @@ -88,7 +89,10 @@ yyerror(char *msg) static int getch(void) { - if(*strp == 0) return -1; + if(strp >= stre){ + strp++; + return -1; + } return *strp++; } @@ -96,8 +100,7 @@ static void ungetch(void) { assert(strp > str); - if(*strp != 0) - strp--; + strp--; } int -- cgit v1.2.3