Windres problem with Boling book example
Nick Clifton
nickc@redhat.com
Tue Nov 28 09:37:00 GMT 2006
Hi Danny,
> - fix the small bug
Thanks!
> - extend the lex pattern so more characters stop a keyword
I think that this may cause a problem. You are now allowing the
characters (); as keyword terminators, but you have not added a lex
pattern to match them in a string. Thus for example if the programmer
is trying to compile this string
ToBe(OrNotToBe)
the patched windres would barf on the parentheses.
There are a couple of other minor problems with the patch which it would
be nice to clean up:
* You have the comma character listed twice in the new lex pattern.
* The code does not follow the GNU coding standard.
The body of the pattern ought to look something like this.
(I have included a couple of code tidy ups as well):
s = get_string (strlen (yytext) + 1);
for (i = 0; keywords[i].word != NULL; i++)
if (strcasecmp (keywords[i].word, yytext) == 0)
break;
if (keywords[i].word == NULL)
yylval.s = strcpy (s, yytext);
MAYBE_RETURN (keywords[i].token);
Cheers
Nick
More information about the Binutils
mailing list