diff --git a/conf/cf-lex.l b/conf/cf-lex.l index a43f9eb..408fa93 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -129,10 +129,10 @@ include ^{WHITE}*include{WHITE}*\".*\"{WHITE}*; 0x{XIGIT}+ { char *e; - long int l; + unsigned long int l; errno = 0; l = strtoul(yytext+2, &e, 16); - if (e && *e || errno == ERANGE || (long int)(int) l != l) + if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l) cf_error("Number out of range"); cf_lval.i = l; return NUM; @@ -140,10 +140,10 @@ include ^{WHITE}*include{WHITE}*\".*\"{WHITE}*; {DIGIT}+ { char *e; - long int l; + unsigned long int l; errno = 0; l = strtoul(yytext, &e, 10); - if (e && *e || errno == ERANGE || (long int)(int) l != l) + if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l) cf_error("Number out of range"); cf_lval.i = l; return NUM;