Piotr Caban : ntdll: Ignore L length specifier in printf.

Alexandre Julliard julliard at winehq.org
Tue Jul 14 16:23:38 CDT 2020


Module: wine
Branch: master
Commit: a6fb7be678438ab689ac87ad4ed21a9b33a17c2e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a6fb7be678438ab689ac87ad4ed21a9b33a17c2e

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Jul 14 15:33:24 2020 +0200

ntdll: Ignore L length specifier in printf.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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));




More information about the wine-cvs mailing list