dsp Wed, 25 Nov 2009 23:38:34 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=291323
Log: Also allow base 62 for gmp_init as requested in (#50283) Bug: http://bugs.php.net/50283 (To be documented) allow base in gmp_strval to use full range: 2 to 62, and -2 to -36 Changed paths: U php/php-src/branches/PHP_5_2/ext/gmp/gmp.c U php/php-src/branches/PHP_5_2/ext/gmp/tests/bug50283.phpt U php/php-src/branches/PHP_5_3/ext/gmp/gmp.c U php/php-src/branches/PHP_5_3/ext/gmp/tests/bug50283.phpt U php/php-src/trunk/ext/gmp/gmp.c U php/php-src/trunk/ext/gmp/tests/bug50283.phpt Modified: php/php-src/branches/PHP_5_2/ext/gmp/gmp.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/gmp/gmp.c 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/branches/PHP_5_2/ext/gmp/gmp.c 2009-11-25 23:38:34 UTC (rev 291323) @@ -753,9 +753,9 @@ } if (argc == 2) { - convert_to_long_ex(base_arg); - base = Z_LVAL_PP(base_arg); - if (base < 2 || base > 36) { + convert_to_long_ex(base_arg); + base = Z_LVAL_PP(base_arg); + if (base < 2 || base > 62) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %d (should be between 2 and 36)", base); RETURN_FALSE; } Modified: php/php-src/branches/PHP_5_2/ext/gmp/tests/bug50283.phpt =================================================================== --- php/php-src/branches/PHP_5_2/ext/gmp/tests/bug50283.phpt 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/branches/PHP_5_2/ext/gmp/tests/bug50283.phpt 2009-11-25 23:38:34 UTC (rev 291323) @@ -12,7 +12,8 @@ printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37)); printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37)); printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62)); -printf("Decimal: %s, 63-based: %s\n", gmp_strval($a), gmp_strval($a,63)); +printf("Decimal: %s, 63-based: %s\n\n", gmp_strval($a), gmp_strval($a,63)); +printf("Base 32 and 62-based: %s\n", gmp_strval(gmp_init("gh82179fbf5", 32), 62)); ?> --EXPECTF-- Decimal: 71915494046709, -36-based: PHPISCOOL @@ -31,3 +32,5 @@ Warning: gmp_strval(): Bad base for conversion: 63 in %s on line 10 Decimal: 71915494046709, 63-based: + +Base 32 and 62-based: 1NHkAcdIiD Modified: php/php-src/branches/PHP_5_3/ext/gmp/gmp.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/gmp/gmp.c 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/branches/PHP_5_3/ext/gmp/gmp.c 2009-11-25 23:38:34 UTC (rev 291323) @@ -746,7 +746,7 @@ return; } - if (base && (base < 2 || base > 36)) { + if (base && (base < 2 || base > 62)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %ld (should be between 2 and 36)", base); RETURN_FALSE; } Modified: php/php-src/branches/PHP_5_3/ext/gmp/tests/bug50283.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/gmp/tests/bug50283.phpt 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/branches/PHP_5_3/ext/gmp/tests/bug50283.phpt 2009-11-25 23:38:34 UTC (rev 291323) @@ -12,7 +12,8 @@ printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37)); printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37)); printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62)); -printf("Decimal: %s, 63-based: %s\n", gmp_strval($a), gmp_strval($a,63)); +printf("Decimal: %s, 63-based: %s\n\n", gmp_strval($a), gmp_strval($a,63)); +printf("Base 32 and 62-based: %s\n", gmp_strval(gmp_init("gh82179fbf5", 32), 62)); ?> --EXPECTF-- Decimal: 71915494046709, -36-based: PHPISCOOL @@ -31,3 +32,5 @@ Warning: gmp_strval(): Bad base for conversion: 63 in %s on line 10 Decimal: 71915494046709, 63-based: + +Base 32 and 62-based: 1NHkAcdIiD Modified: php/php-src/trunk/ext/gmp/gmp.c =================================================================== --- php/php-src/trunk/ext/gmp/gmp.c 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/trunk/ext/gmp/gmp.c 2009-11-25 23:38:34 UTC (rev 291323) @@ -754,7 +754,7 @@ return; } - if (base && (base < 2 || base > 36)) { + if (base && (base < 2 || base > 62)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %ld (should be between 2 and 36)", base); RETURN_FALSE; } Modified: php/php-src/trunk/ext/gmp/tests/bug50283.phpt =================================================================== --- php/php-src/trunk/ext/gmp/tests/bug50283.phpt 2009-11-25 19:53:36 UTC (rev 291322) +++ php/php-src/trunk/ext/gmp/tests/bug50283.phpt 2009-11-25 23:38:34 UTC (rev 291323) @@ -12,7 +12,8 @@ printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37)); printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37)); printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62)); -printf("Decimal: %s, 63-based: %s\n", gmp_strval($a), gmp_strval($a,63)); +printf("Decimal: %s, 63-based: %s\n\n", gmp_strval($a), gmp_strval($a,63)); +printf("Base 32 and 62-based: %s\n", gmp_strval(gmp_init("gh82179fbf5", 32), 62)); ?> --EXPECTF-- Decimal: 71915494046709, -36-based: PHPISCOOL @@ -31,3 +32,5 @@ Warning: gmp_strval(): Bad base for conversion: 63 in %s on line 10 Decimal: 71915494046709, 63-based: + +Base 32 and 62-based: 1NHkAcdIiD
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php