diff options
Diffstat (limited to 'as/express.c')
-rw-r--r-- | as/express.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/as/express.c b/as/express.c index 3e93061..0bcd8b4 100644 --- a/as/express.c +++ b/as/express.c @@ -358,26 +358,32 @@ PUBLIC void scompare() register char *string1; register char *string2; - for (string2 = string1 = lineptr; *string2 != ')'; ++string2) + for (string2 = string1 = lineptr; *string2 != ','; ++string2) if (*string2 == 0 || *string2 == ')') { symname = string2; experror(COMEXP); return; } + string2++; while (*string1++ == *string2++) ; if (string2[-1] == ')') { if (string1[-1] == ',') lastexp.offset = TRUE; /* else leave FALSE */ + lineptr = string2; } else /* FALSE, keep reading to verify syntax */ + { for (; *string2 != ')'; ++string2) if (*string2 == 0 || *string2 == ',') { symname = string2; experror(RPEXP); } + lineptr = ++string2; + } + getsym(); } } |