=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/bc/scan.l,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** src/usr.bin/bc/scan.l 2003/11/17 11:20:13 1.13 --- src/usr.bin/bc/scan.l 2003/12/02 09:00:07 1.14 *************** *** 1,5 **** %{ ! /* $OpenBSD: scan.l,v 1.13 2003/11/17 11:20:13 otto Exp $ */ /* * Copyright (c) 2003, Otto Moerbeek --- 1,5 ---- %{ ! /* $OpenBSD: scan.l,v 1.14 2003/12/02 09:00:07 otto Exp $ */ /* * Copyright (c) 2003, Otto Moerbeek *************** *** 18,24 **** */ #ifndef lint ! static const char rcsid[] = "$OpenBSD: scan.l,v 1.13 2003/11/17 11:20:13 otto Exp $"; #endif /* not lint */ #include --- 18,24 ---- */ #ifndef lint ! static const char rcsid[] = "$OpenBSD: scan.l,v 1.14 2003/12/02 09:00:07 otto Exp $"; #endif /* not lint */ #include *************** *** 40,45 **** --- 40,48 ---- %} DIGIT [0-9A-F] + ALPHA [a-z_] + ALPHANUM [a-z_0-9] + %x comment string number %% *************** *** 162,174 **** "{" return LBRACE; "}" return RBRACE; ! [a-z] yylval.str = yytext; return LETTER; \\\n lineno++; \n lineno++; return NEWLINE; #[^\n]* ; [ \t] ; . yyerror("illegal character"); %% --- 165,186 ---- "{" return LBRACE; "}" return RBRACE; ! {ALPHA}{ALPHANUM}* { ! /* alloc an extra byte for the type marker */ ! char *p = malloc(yyleng + 2); ! if (p == NULL) ! err(1, NULL); ! strlcpy(p, yytext, yyleng + 1); ! yylval.astr = p; ! return LETTER; ! } \\\n lineno++; \n lineno++; return NEWLINE; #[^\n]* ; [ \t] ; + <> return QUIT; . yyerror("illegal character"); %% *************** *** 191,197 **** arglen = strlen(str); ! if (strlen(strbuf) + arglen + 1> strbuf_sz) { size_t newsize; char *p; --- 203,209 ---- arglen = strlen(str); ! if (strlen(strbuf) + arglen + 1 > strbuf_sz) { size_t newsize; char *p;