summaryrefslogtreecommitdiff
path: root/ext/standard/scanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/scanf.c')
-rw-r--r--ext/standard/scanf.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c
index e6b3f5865b..903fe83479 100644
--- a/ext/standard/scanf.c
+++ b/ext/standard/scanf.c
@@ -581,7 +581,8 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
int varStart, zval **return_value TSRMLS_DC)
{
int numVars, nconversions, totalVars = -1;
- int i, value, result;
+ int i, result;
+ long value;
int objIndex;
char *end, *baseString;
zval **current;
@@ -1059,9 +1060,9 @@ addToInt:
*/
if (!(flags & SCAN_SUPPRESS)) {
*end = '\0';
- value = (int) (*fn)(buf, NULL, base);
+ value = (long) (*fn)(buf, NULL, base);
if ((flags & SCAN_UNSIGNED) && (value < 0)) {
- snprintf(buf, sizeof(buf), "%u", value); /* INTL: ISO digit */
+ snprintf(buf, sizeof(buf), "%lu", value); /* INTL: ISO digit */
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {