diff options
author | Stanislav Malyshev <stas@php.net> | 2000-11-14 18:33:58 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2000-11-14 18:33:58 +0000 |
commit | 2d57a5b2a4f212cb528fbf23798a717580ee456c (patch) | |
tree | b0e6cde36ea19f1964195bf10bfa2e83c75b477b /Zend | |
parent | 0b6a8d0458d37d39f6416935c9e4526f31d7a8bd (diff) | |
download | php-git-2d57a5b2a4f212cb528fbf23798a717580ee456c.tar.gz |
Restore compatibility with old broken way
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_language_scanner.l | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index b537c08141..c71d05e779 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1018,10 +1018,16 @@ ANY_CHAR (.|[\n]) errno = 0; zendlval->value.lval = strtoul(yytext, NULL, 16); if (errno == ERANGE) { /* overflow */ - /* not trying strtod - it returns trans on 0x-es */ + /* not trying strtod - it returns trash on 0x-es */ zendlval->value.lval = LONG_MAX; /* maximal long */ zend_error(E_NOTICE,"Hex number is too big: %s",yytext); } else { + if(zendlval->value.lval < 0) { + /* maintain consistency with the old way */ + zendlval->value.dval = (unsigned long) zendlval->value.lval; + zendlval->type = IS_DOUBLE; + return T_DNUMBER; + } zendlval->type = IS_LONG; } zendlval->type = IS_LONG; |