From: Paul Gofman pgofman@codeweavers.com
--- dlls/ntdll/printf.h | 4 ++-- dlls/ntdll/tests/string.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/printf.h b/dlls/ntdll/printf.h index b7dba6594a5..43ed6bd23fc 100644 --- a/dlls/ntdll/printf.h +++ b/dlls/ntdll/printf.h @@ -498,8 +498,8 @@ static int FUNC_NAME(pf_vsnprintf)( FUNC_NAME(pf_output) *out, const APICHAR *fo if( x != number ) RtlFreeHeap( GetProcessHeap(), 0, x ); } - else - continue; + else if (*p) r = FUNC_NAME(pf_output_string)( out, p, 1 ); + else break;
if( r<0 ) return r; diff --git a/dlls/ntdll/tests/string.c b/dlls/ntdll/tests/string.c index 6454720b645..43330b2006f 100644 --- a/dlls/ntdll/tests/string.c +++ b/dlls/ntdll/tests/string.c @@ -1891,7 +1891,9 @@ static void test_printf_format(void) { "%I64llu", sizeof(ULONG64), "10", NULL, 10 }, { "%I64s", sizeof(ULONG_PTR), "str", NULL, (ULONG_PTR)"str", L"str" }, { "%q%u", sizeof(ULONG), "q10", NULL, 10 }, + { "%lhw%u", 0, "%u", NULL, 10 }, { "%u% ", sizeof(ULONG), "10", NULL, 10 }, + { "%u% %u", sizeof(ULONG), "10%u", NULL, 10 }, { "% ll u", 0, " u", NULL, 10 }, { "% llu", sizeof(ULONG64), "10", NULL, 10 }, { "%# llx", sizeof(ULONG64), "0xa", NULL, 10 },