@@ -49,10 +49,10 @@ inline static void
49
49
php_sprintf_appendchar (zend_string * * buffer , size_t * pos , char add )
50
50
{
51
51
if ((* pos + 1 ) >= ZSTR_LEN (* buffer )) {
52
- PRINTF_DEBUG (("%s(): ereallocing buffer to %d bytes\n" , get_active_function_name (), ZSTR_LEN (* buffer )));
52
+ PRINTF_DEBUG (("%s(): ereallocing buffer to %zu bytes\n" , get_active_function_name (), ZSTR_LEN (* buffer )));
53
53
* buffer = zend_string_extend (* buffer , ZSTR_LEN (* buffer ) << 1 , 0 );
54
54
}
55
- PRINTF_DEBUG (("sprintf: appending '%c', pos=\n" , add , * pos ));
55
+ PRINTF_DEBUG (("sprintf: appending '%c', pos=%zu \n" , add , * pos ));
56
56
ZSTR_VAL (* buffer )[(* pos )++ ] = add ;
57
57
}
58
58
/* }}} */
@@ -64,13 +64,13 @@ php_sprintf_appendchars(zend_string **buffer, size_t *pos, char *add, size_t len
64
64
if ((* pos + len ) >= ZSTR_LEN (* buffer )) {
65
65
size_t nlen = ZSTR_LEN (* buffer );
66
66
67
- PRINTF_DEBUG (("%s(): ereallocing buffer to %d bytes\n" , get_active_function_name (), ZSTR_LEN (* buffer )));
67
+ PRINTF_DEBUG (("%s(): ereallocing buffer to %zu bytes\n" , get_active_function_name (), ZSTR_LEN (* buffer )));
68
68
do {
69
69
nlen = nlen << 1 ;
70
70
} while ((* pos + len ) >= nlen );
71
71
* buffer = zend_string_extend (* buffer , nlen , 0 );
72
72
}
73
- PRINTF_DEBUG (("sprintf: appending \"%s\", pos=\n" , add , * pos ));
73
+ PRINTF_DEBUG (("sprintf: appending \"%s\", pos=%zu \n" , add , * pos ));
74
74
memcpy (ZSTR_VAL (* buffer ) + (* pos ), add , len );
75
75
* pos += len ;
76
76
}
@@ -90,7 +90,7 @@ php_sprintf_appendstring(zend_string **buffer, size_t *pos, char *add,
90
90
copy_len = (expprec ? MIN (max_width , len ) : len );
91
91
npad = (min_width < copy_len ) ? 0 : min_width - copy_len ;
92
92
93
- PRINTF_DEBUG (("sprintf: appendstring(%x , %d , %d , \"%s\", %d , '%c', %d )\n" ,
93
+ PRINTF_DEBUG (("sprintf: appendstring(%p , %zu , %zu , \"%s\", %zu , '%c', %zu )\n" ,
94
94
* buffer , * pos , ZSTR_LEN (* buffer ), add , min_width , padding , alignment ));
95
95
m_width = MAX (min_width , copy_len );
96
96
@@ -108,7 +108,7 @@ php_sprintf_appendstring(zend_string **buffer, size_t *pos, char *add,
108
108
}
109
109
size <<= 1 ;
110
110
}
111
- PRINTF_DEBUG (("sprintf ereallocing buffer to %d bytes\n" , size ));
111
+ PRINTF_DEBUG (("sprintf ereallocing buffer to %zu bytes\n" , size ));
112
112
* buffer = zend_string_extend (* buffer , size , 0 );
113
113
}
114
114
if (alignment == ALIGN_RIGHT ) {
@@ -143,8 +143,8 @@ php_sprintf_appendint(zend_string **buffer, size_t *pos, zend_long number,
143
143
zend_ulong magn , nmagn ;
144
144
unsigned int i = NUM_BUF_SIZE - 1 , neg = 0 ;
145
145
146
- PRINTF_DEBUG (("sprintf: appendint(%x , %x , %x, %d , %d , '%c', %d )\n" ,
147
- * buffer , pos , & ZSTR_LEN (* buffer ), number , width , padding , alignment ));
146
+ PRINTF_DEBUG (("sprintf: appendint(%p , %zu , %zu, " ZEND_LONG_FMT " , %zu , '%c', %zu )\n" ,
147
+ * buffer , * pos , ZSTR_LEN (* buffer ), number , width , padding , alignment ));
148
148
if (number < 0 ) {
149
149
neg = 1 ;
150
150
magn = ((zend_ulong ) - (number + 1 )) + 1 ;
@@ -169,7 +169,7 @@ php_sprintf_appendint(zend_string **buffer, size_t *pos, zend_long number,
169
169
} else if (always_sign ) {
170
170
numbuf [-- i ] = '+' ;
171
171
}
172
- PRINTF_DEBUG (("sprintf: appending %d as \"%s\", i=%d \n" ,
172
+ PRINTF_DEBUG (("sprintf: appending " ZEND_LONG_FMT " as \"%s\", i=%u \n" ,
173
173
number , & numbuf [i ], i ));
174
174
php_sprintf_appendstring (buffer , pos , & numbuf [i ], width , 0 ,
175
175
padding , alignment , (NUM_BUF_SIZE - 1 ) - i ,
@@ -187,8 +187,8 @@ php_sprintf_appenduint(zend_string **buffer, size_t *pos,
187
187
zend_ulong magn , nmagn ;
188
188
unsigned int i = NUM_BUF_SIZE - 1 ;
189
189
190
- PRINTF_DEBUG (("sprintf: appenduint(%x , %x , %x, %d , %d , '%c', %d )\n" ,
191
- * buffer , pos , & ZSTR_LEN (* buffer ), number , width , padding , alignment ));
190
+ PRINTF_DEBUG (("sprintf: appenduint(%p , %zu , %zu, " ZEND_LONG_FMT " , %zu , '%c', %zu )\n" ,
191
+ * buffer , * pos , ZSTR_LEN (* buffer ), number , width , padding , alignment ));
192
192
magn = (zend_ulong ) number ;
193
193
194
194
/* Can't right-pad 0's on integers */
@@ -203,7 +203,7 @@ php_sprintf_appenduint(zend_string **buffer, size_t *pos,
203
203
magn = nmagn ;
204
204
} while (magn > 0 && i > 0 );
205
205
206
- PRINTF_DEBUG (("sprintf: appending %d as \"%s\", i=%d\n" , number , & numbuf [i ], i ));
206
+ PRINTF_DEBUG (("sprintf: appending " ZEND_LONG_FMT " as \"%s\", i=%d\n" , number , & numbuf [i ], i ));
207
207
php_sprintf_appendstring (buffer , pos , & numbuf [i ], width , 0 ,
208
208
padding , alignment , (NUM_BUF_SIZE - 1 ) - i , /* neg */ false, 0 , 0 );
209
209
}
@@ -229,8 +229,8 @@ php_sprintf_appenddouble(zend_string **buffer, size_t *pos,
229
229
struct lconv * lconv ;
230
230
#endif
231
231
232
- PRINTF_DEBUG (("sprintf: appenddouble(%x , %x , %x , %f, %d , '%c', %d , %c)\n" ,
233
- * buffer , pos , & ZSTR_LEN (* buffer ), number , width , padding , alignment , fmt ));
232
+ PRINTF_DEBUG (("sprintf: appenddouble(%p , %zu , %zu , %f, %zu , '%c', %zu , %c)\n" ,
233
+ * buffer , * pos , ZSTR_LEN (* buffer ), number , width , padding , alignment , fmt ));
234
234
if ((adjust & ADJ_PRECISION ) == 0 ) {
235
235
precision = FLOAT_PRECISION ;
236
236
} else if (precision > MAX_FLOAT_PRECISION ) {
@@ -328,8 +328,8 @@ php_sprintf_append2n(zend_string **buffer, size_t *pos, zend_long number,
328
328
zend_ulong i = NUM_BUF_SIZE - 1 ;
329
329
int andbits = (1 << n ) - 1 ;
330
330
331
- PRINTF_DEBUG (("sprintf: append2n(%x , %x , %x, %d , %d , '%c', %d , %d, %x )\n" ,
332
- * buffer , pos , & ZSTR_LEN (* buffer ), number , width , padding , alignment , n ,
331
+ PRINTF_DEBUG (("sprintf: append2n(%p , %zu , %zu, " ZEND_LONG_FMT " , %zu , '%c', %zu , %d, %p )\n" ,
332
+ * buffer , * pos , ZSTR_LEN (* buffer ), number , width , padding , alignment , n ,
333
333
chartable ));
334
334
PRINTF_DEBUG (("sprintf: append2n 2^%d andbits=%x\n" , n , andbits ));
335
335
@@ -361,7 +361,7 @@ php_sprintf_getnumber(char **buffer, size_t *len)
361
361
* len -= i ;
362
362
* buffer = endptr ;
363
363
}
364
- PRINTF_DEBUG (("sprintf_getnumber: number was %d bytes long\n" , i ));
364
+ PRINTF_DEBUG (("sprintf_getnumber: number was %zu bytes long\n" , i ));
365
365
366
366
if (num >= INT_MAX || num < 0 ) {
367
367
return -1 ;
@@ -429,6 +429,10 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
429
429
int always_sign ;
430
430
int max_missing_argnum = -1 ;
431
431
432
+ /* For debugging */
433
+ const char * format_orig = format ;
434
+ ZEND_IGNORE_VALUE (format_orig );
435
+
432
436
result = zend_string_alloc (size , 0 );
433
437
434
438
currarg = 0 ;
@@ -462,8 +466,8 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
462
466
always_sign = 0 ;
463
467
expprec = 0 ;
464
468
465
- PRINTF_DEBUG (("sprintf: first looking at '%c', inpos=%d \n" ,
466
- * format , format - Z_STRVAL_P ( z_format ) ));
469
+ PRINTF_DEBUG (("sprintf: first looking at '%c', inpos=%zu \n" ,
470
+ * format , format - format_orig ));
467
471
if (isalpha ((int )* format )) {
468
472
width = precision = 0 ;
469
473
argnum = ARG_NUM_NEXT ;
@@ -476,8 +480,8 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
476
480
477
481
/* after argnum comes modifiers */
478
482
PRINTF_DEBUG (("sprintf: looking for modifiers\n"
479
- "sprintf: now looking at '%c', inpos=%d \n" ,
480
- * format , format - Z_STRVAL_P ( z_format ) ));
483
+ "sprintf: now looking at '%c', inpos=%zu \n" ,
484
+ * format , format - format_orig ));
481
485
for (;; format ++ , format_len -- ) {
482
486
if (* format == ' ' || * format == '0' ) {
483
487
padding = * format ;
@@ -528,15 +532,15 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
528
532
goto fail ;
529
533
}
530
534
if (Z_LVAL_P (tmp ) < 0 || Z_LVAL_P (tmp ) > INT_MAX ) {
531
- zend_value_error ("Width must be greater than zero and less than %d" , INT_MAX );
535
+ zend_value_error ("Width must be between 0 and %d" , INT_MAX );
532
536
goto fail ;
533
537
}
534
538
width = Z_LVAL_P (tmp );
535
539
adjusting |= ADJ_WIDTH ;
536
540
} else if (isdigit ((int )* format )) {
537
541
PRINTF_DEBUG (("sprintf: getting width\n" ));
538
542
if ((width = php_sprintf_getnumber (& format , & format_len )) < 0 ) {
539
- zend_value_error ("Width must be greater than zero and less than %d" , INT_MAX );
543
+ zend_value_error ("Width must be between 0 and %d" , INT_MAX );
540
544
goto fail ;
541
545
}
542
546
adjusting |= ADJ_WIDTH ;
@@ -580,7 +584,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
580
584
expprec = 1 ;
581
585
} else if (isdigit ((int )* format )) {
582
586
if ((precision = php_sprintf_getnumber (& format , & format_len )) < 0 ) {
583
- zend_value_error ("Precision must be greater than zero and less than %d" , INT_MAX );
587
+ zend_value_error ("Precision must be between 0 and %d" , INT_MAX );
584
588
goto fail ;
585
589
}
586
590
adjusting |= ADJ_PRECISION ;
0 commit comments