From c32c3f88f0c8788118ed3701c11a5aea2aaf9356 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Thu, 22 Dec 2011 13:44:43 +0100 Subject: Fixes parsing larger numbers on 64bit platforms. --- conf/cf-lex.l | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; -- cgit v1.2.3