Skip to content

Commit 579a6e3

Browse files
committed
Really use 62 as the upper boundary as requested and not 32.
1 parent 23f4da9 commit 579a6e3

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

ext/gmp/gmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ ZEND_FUNCTION(gmp_strval)
796796
return;
797797
}
798798

799-
if ((base < 2 && base > -2) || base > 36 || base < -36) {
799+
if ((base < 2 && base > -2) || base > 62 || base < -36) {
800800
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %ld", base);
801801
RETURN_FALSE;
802802
}

ext/gmp/tests/bug50283.phpt

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,29 @@ Feature Request #50283 (allow base in gmp_strval to use full range: 2 to 62, and
55
--FILE--
66
<?php
77
$a = gmp_init("0x41682179fbf5");
8-
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,-36));
8+
printf("Decimal: %s, -36-based: %s\n", gmp_strval($a), gmp_strval($a,-36));
99
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,36));
10-
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,-1));
11-
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,1));
12-
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,-37));
13-
printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,37));
10+
printf("Decimal: %s, -1-based: %s\n", gmp_strval($a), gmp_strval($a,-1));
11+
printf("Decimal: %s, 1-based: %s\n", gmp_strval($a), gmp_strval($a,1));
12+
printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37));
13+
printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37));
14+
printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62));
15+
printf("Decimal: %s, 63-based: %s\n", gmp_strval($a), gmp_strval($a,63));
1416
?>
1517
--EXPECTF--
16-
Decimal: 71915494046709, 36-based: PHPISCOOL
18+
Decimal: 71915494046709, -36-based: PHPISCOOL
1719
Decimal: 71915494046709, 36-based: phpiscool
1820

1921
Warning: gmp_strval(): Bad base for conversion: -1 in %s on line 5
20-
Decimal: 71915494046709, 36-based:
22+
Decimal: 71915494046709, -1-based:
2123

2224
Warning: gmp_strval(): Bad base for conversion: 1 in %s on line 6
23-
Decimal: 71915494046709, 36-based:
25+
Decimal: 71915494046709, 1-based:
2426

2527
Warning: gmp_strval(): Bad base for conversion: -37 in %s on line 7
26-
Decimal: 71915494046709, 36-based:
28+
Decimal: 71915494046709, -37-based:
29+
Decimal: 71915494046709, 37-based: KHKATELJF
30+
Decimal: 71915494046709, 62-based: KQ6yq741
2731

28-
Warning: gmp_strval(): Bad base for conversion: 37 in %s on line 8
29-
Decimal: 71915494046709, 36-based:
32+
Warning: gmp_strval(): Bad base for conversion: 63 in %s on line 10
33+
Decimal: 71915494046709, 63-based:

0 commit comments

Comments
 (0)