Module: wine Branch: master Commit: a6fb7be678438ab689ac87ad4ed21a9b33a17c2e URL: https://source.winehq.org/git/wine.git/?a=commit;h=a6fb7be678438ab689ac87ad4... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Jul 14 15:33:24 2020 +0200 ntdll: Ignore L length specifier in printf. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntdll/printf.h | 6 +++++- dlls/ntdll/tests/string.c | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/printf.h b/dlls/ntdll/printf.h index febb9e7bf7..9f7bad767f 100644 --- a/dlls/ntdll/printf.h +++ b/dlls/ntdll/printf.h @@ -375,11 +375,15 @@ static int FUNC_NAME(pf_vsnprintf)( FUNC_NAME(pf_output) *out, const APICHAR *fo flags.IntegerDouble = TRUE; p += 2; } - else if( *p == 'l' || *p == 'L' ) + else if( *p == 'l' ) { flags.IntegerLength = LEN_LONG; p++; } + else if( *p == 'L' ) + { + p++; + } else if( *p == 'h') { flags.IntegerLength = LEN_SHORT; diff --git a/dlls/ntdll/tests/string.c b/dlls/ntdll/tests/string.c index cade4e4533..b6a40f6709 100644 --- a/dlls/ntdll/tests/string.c +++ b/dlls/ntdll/tests/string.c @@ -1529,6 +1529,14 @@ static void test__snprintf(void) ok(!memcmp(buffer, "tes", 3), "buf = %s\n", buffer); ok(buffer[3] == 0x7c, "buffer[3] = %x\n", buffer[3]); + res = p_snprintf(buffer, sizeof(buffer), "%ls", L"test"); + ok(res == strlen(buffer), "wrong size %d\n", res); + ok(!strcmp(buffer, "test"), "got %s\n", debugstr_a(buffer)); + + res = p_snprintf(buffer, sizeof(buffer), "%Ls", "test"); + ok(res == strlen(buffer), "wrong size %d\n", res); + ok(!strcmp(buffer, "test"), "got %s\n", debugstr_a(buffer)); + res = p_snprintf(buffer, sizeof(buffer), "%I64x %d", (ULONGLONG)0x1234567890, 1); ok(res == strlen(buffer), "wrong size %d\n", res); ok(!strcmp(buffer, "1234567890 1"), "got %s\n", debugstr_a(buffer));