iliaa Wed Jan 26 11:56:15 2005 EDT Modified files: (Branch: PHP_4_3) /php-src/ext/standard var_unserializer.c var_unserializer.re /php-src NEWS Log: MFH: Fixed bug #31699 (unserialize() float problem on non-English locales).
http://cvs.php.net/diff.php/php-src/ext/standard/var_unserializer.c?r1=1.18.4.18&r2=1.18.4.19&ty=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.18.4.18 php-src/ext/standard/var_unserializer.c:1.18.4.19 --- php-src/ext/standard/var_unserializer.c:1.18.4.18 Tue Jan 18 06:08:20 2005 +++ php-src/ext/standard/var_unserializer.c Wed Jan 26 11:56:14 2005 @@ -1,5 +1,5 @@ -/* Generated by re2c 0.9.2 on Tue Jan 18 13:06:25 2005 */ -#line 1 "var_unserializer.re" +/* Generated by re2c 0.9.3 on Wed Jan 26 11:07:03 2005 */ +#line 1 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ | PHP Version 4 | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var_unserializer.c,v 1.18.4.18 2005/01/18 11:08:20 sniper Exp $ */ +/* $Id: var_unserializer.c,v 1.18.4.19 2005/01/26 16:56:14 iliaa Exp $ */ #include "php.h" #include "ext/standard/php_var.h" @@ -147,7 +147,7 @@ #define YYMARKER marker -#line 154 "var_unserializer.re" +#line 154 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" @@ -339,7 +339,7 @@ -#line 7 "re2c-output.c" +#line 7 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -432,9 +432,9 @@ if(yych == ':') goto yy87; goto yy4; yy4: -#line 576 "var_unserializer.re" +#line 576 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { return 0; } -#line 102 "re2c-output.c" +#line 102 "<stdout>" yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == ':') goto yy81; @@ -470,16 +470,16 @@ yych = *(YYMARKER = ++YYCURSOR); if(yych == ':') goto yy17; goto yy4; -yy14: yych = *++YYCURSOR; +yy14: ++YYCURSOR; goto yy15; yy15: -#line 570 "var_unserializer.re" +#line 570 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { /* this is the case where we have less data than planned */ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Unexpected end of serialized data"); return 0; /* not sure if it should be 0 or 1 here? */ } -#line 147 "re2c-output.c" +#line 147 "<stdout>" yy16: yych = *++YYCURSOR; goto yy4; yy17: yych = *++YYCURSOR; @@ -499,10 +499,10 @@ yy21: yych = *++YYCURSOR; if(yych != '"') goto yy2; goto yy22; -yy22: yych = *++YYCURSOR; +yy22: ++YYCURSOR; goto yy23; yy23: -#line 489 "var_unserializer.re" +#line 489 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { size_t len, len2, maxlen; int elements; @@ -583,7 +583,7 @@ return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 251 "re2c-output.c" +#line 252 "<stdout>" yy24: yych = *++YYCURSOR; if(yych <= ','){ if(yych != '+') goto yy2; @@ -609,10 +609,10 @@ yy28: yych = *++YYCURSOR; if(yych != '"') goto yy2; goto yy29; -yy29: yych = *++YYCURSOR; +yy29: ++YYCURSOR; goto yy30; yy30: -#line 481 "var_unserializer.re" +#line 481 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { INIT_PZVAL(*rval); @@ -620,7 +620,7 @@ return object_common2(UNSERIALIZE_PASSTHRU, object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); } -#line 288 "re2c-output.c" +#line 290 "<stdout>" yy31: yych = *++YYCURSOR; if(yych == '+') goto yy32; if(yych <= '/') goto yy2; @@ -641,10 +641,10 @@ yy35: yych = *++YYCURSOR; if(yych != '{') goto yy2; goto yy36; -yy36: yych = *++YYCURSOR; +yy36: ++YYCURSOR; goto yy37; yy37: -#line 463 "var_unserializer.re" +#line 463 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { int elements = parse_iv(start + 2); @@ -662,7 +662,7 @@ return finish_nested_data(UNSERIALIZE_PASSTHRU); } -#line 330 "re2c-output.c" +#line 333 "<stdout>" yy38: yych = *++YYCURSOR; if(yych == '+') goto yy39; if(yych <= '/') goto yy2; @@ -683,10 +683,10 @@ yy42: yych = *++YYCURSOR; if(yych != '"') goto yy2; goto yy43; -yy43: yych = *++YYCURSOR; +yy43: ++YYCURSOR; goto yy44; yy44: -#line 435 "var_unserializer.re" +#line 435 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -714,7 +714,7 @@ ZVAL_STRINGL(*rval, str, len, 1); return 1; } -#line 382 "re2c-output.c" +#line 386 "<stdout>" yy45: yych = *++YYCURSOR; if(yych <= '/'){ if(yych <= ','){ @@ -800,17 +800,17 @@ goto yy2; } } -yy55: yych = *++YYCURSOR; +yy55: ++YYCURSOR; goto yy56; yy56: -#line 428 "var_unserializer.re" +#line 428 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); - ZVAL_DOUBLE(*rval, atof(start + 2)); + ZVAL_DOUBLE(*rval, zend_strtod(start + 2, NULL)); return 1; } -#line 478 "re2c-output.c" +#line 484 "<stdout>" yy57: yych = *++YYCURSOR; if(yych <= ','){ if(yych != '+') goto yy2; @@ -867,15 +867,15 @@ yy65: yych = *++YYCURSOR; if(yych != ';') goto yy2; goto yy66; -yy66: yych = *++YYCURSOR; +yy66: ++YYCURSOR; goto yy67; yy67: -#line 411 "var_unserializer.re" +#line 411 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); #if defined(HAVE_ATOF_ACCEPTS_NAN) && defined(HAVE_ATOF_ACCEPTS_INF) - ZVAL_DOUBLE(*rval, atof(start + 2)); + ZVAL_DOUBLE(*rval, zend_strtod(start + 2, NULL)); #else if (!strncmp(start + 2, "NAN", 3)) { ZVAL_DOUBLE(*rval, php_get_nan()); @@ -887,7 +887,7 @@ #endif return 1; } -#line 555 "re2c-output.c" +#line 563 "<stdout>" yy68: yych = *++YYCURSOR; if(yych == 'N') goto yy65; goto yy2; @@ -913,17 +913,17 @@ if(yych <= '9') goto yy71; if(yych != ';') goto yy2; goto yy73; -yy73: yych = *++YYCURSOR; +yy73: ++YYCURSOR; goto yy74; yy74: -#line 404 "var_unserializer.re" +#line 404 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_LONG(*rval, parse_iv(start + 2)); return 1; } -#line 591 "re2c-output.c" +#line 600 "<stdout>" yy75: yych = *++YYCURSOR; if(yych <= '/') goto yy2; if(yych >= '2') goto yy2; @@ -931,28 +931,28 @@ yy76: yych = *++YYCURSOR; if(yych != ';') goto yy2; goto yy77; -yy77: yych = *++YYCURSOR; +yy77: ++YYCURSOR; goto yy78; yy78: -#line 397 "var_unserializer.re" +#line 397 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_BOOL(*rval, parse_iv(start + 2)); return 1; } -#line 609 "re2c-output.c" -yy79: yych = *++YYCURSOR; +#line 618 "<stdout>" +yy79: ++YYCURSOR; goto yy80; yy80: -#line 390 "var_unserializer.re" +#line 390 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_NULL(*rval); return 1; } -#line 620 "re2c-output.c" +#line 629 "<stdout>" yy81: yych = *++YYCURSOR; if(yych <= ','){ if(yych != '+') goto yy2; @@ -975,10 +975,10 @@ if(yych <= '9') goto yy83; if(yych != ';') goto yy2; goto yy85; -yy85: yych = *++YYCURSOR; +yy85: ++YYCURSOR; goto yy86; yy86: -#line 367 "var_unserializer.re" +#line 367 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { int id; @@ -1001,7 +1001,7 @@ return 1; } -#line 669 "re2c-output.c" +#line 679 "<stdout>" yy87: yych = *++YYCURSOR; if(yych <= ','){ if(yych != '+') goto yy2; @@ -1024,10 +1024,10 @@ if(yych <= '9') goto yy89; if(yych != ';') goto yy2; goto yy91; -yy91: yych = *++YYCURSOR; +yy91: ++YYCURSOR; goto yy92; yy92: -#line 346 "var_unserializer.re" +#line 346 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" { int id; @@ -1048,9 +1048,9 @@ return 1; } -#line 716 "re2c-output.c" +#line 727 "<stdout>" } -#line 578 "var_unserializer.re" +#line 578 "/home/rei/php_dev/php4/ext/standard/var_unserializer.re" return 0; http://cvs.php.net/diff.php/php-src/ext/standard/var_unserializer.re?r1=1.11.4.11&r2=1.11.4.12&ty=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.11.4.11 php-src/ext/standard/var_unserializer.re:1.11.4.12 --- php-src/ext/standard/var_unserializer.re:1.11.4.11 Mon Jan 17 07:28:08 2005 +++ php-src/ext/standard/var_unserializer.re Wed Jan 26 11:56:14 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var_unserializer.re,v 1.11.4.11 2005/01/17 12:28:08 sesser Exp $ */ +/* $Id: var_unserializer.re,v 1.11.4.12 2005/01/26 16:56:14 iliaa Exp $ */ #include "php.h" #include "ext/standard/php_var.h" @@ -412,7 +412,7 @@ *p = YYCURSOR; INIT_PZVAL(*rval); #if defined(HAVE_ATOF_ACCEPTS_NAN) && defined(HAVE_ATOF_ACCEPTS_INF) - ZVAL_DOUBLE(*rval, atof(start + 2)); + ZVAL_DOUBLE(*rval, zend_strtod(start + 2, NULL)); #else if (!strncmp(start + 2, "NAN", 3)) { ZVAL_DOUBLE(*rval, php_get_nan()); @@ -428,7 +428,7 @@ "d:" (iv | nv | nvexp) ";" { *p = YYCURSOR; INIT_PZVAL(*rval); - ZVAL_DOUBLE(*rval, atof(start + 2)); + ZVAL_DOUBLE(*rval, zend_strtod(start + 2, NULL)); return 1; } http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.821&r2=1.1247.2.822&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1247.2.821 php-src/NEWS:1.1247.2.822 --- php-src/NEWS:1.1247.2.821 Tue Jan 25 19:03:17 2005 +++ php-src/NEWS Wed Jan 26 11:56:14 2005 @@ -8,6 +8,7 @@ - Fixed MacOSX shared extensions crashing on Apache startup. (Rasmus) - Fixed bug #31684 (dio_tcsetattr(): misconfigured termios settings). (elod at itfais dot com) +- Fixed bug #31699 (unserialize() float problem on non-English locales). (Ilia) - Fixed bug #31623 (OCILogin does not support password grace period). (daniel dot beet at accuratesoftware dot com, Tony) - Fixed bug #31580 (fgetcsv() problematic with "" escape sequences). (Ilia)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php