diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c index 5623a3755b34d..9464fa27f7160 100644 --- a/ext/standard/formatted_print.c +++ b/ext/standard/formatted_print.c @@ -466,7 +466,7 @@ php_formatted_print(int ht, int *len, int use_array, int format_offset TSRMLS_DC "sprintf: now looking at '%c', inpos=%d\n", format[inpos], inpos)); for (;; inpos++) { - if (format[inpos] == ' ' || format[inpos] == '0') { + if ((format[inpos] == ' ' || format[inpos] == '0') && padding == ' ') { padding = format[inpos]; } else if (format[inpos] == '-') { alignment = ALIGN_LEFT; diff --git a/ext/standard/tests/strings/bug61532.phpt b/ext/standard/tests/strings/bug61532.phpt new file mode 100644 index 0000000000000..452be8eb563bd --- /dev/null +++ b/ext/standard/tests/strings/bug61532.phpt @@ -0,0 +1,10 @@ +--TEST-- +printf custom padding modiffier bug #61532 +--FILE-- + +--EXPECT-- +......foo +......foo