From: Paul Gofman pgofman@codeweavers.com
--- dlls/msvcrt/scanf.h | 3 +++ dlls/msvcrt/tests/scanf.c | 5 +++++ dlls/ucrtbase/tests/scanf.c | 6 ++++++ 3 files changed, 14 insertions(+)
diff --git a/dlls/msvcrt/scanf.h b/dlls/msvcrt/scanf.h index 1d7a92a9c1c..079414e9be3 100644 --- a/dlls/msvcrt/scanf.h +++ b/dlls/msvcrt/scanf.h @@ -272,6 +272,9 @@ _FUNCTION_ { } l_prefix = 1; break; + case 'j': + I64_prefix = 1; + break; case 'w': w_prefix = 1; break; case 'L': L_prefix = 1; break; case 'I': diff --git a/dlls/msvcrt/tests/scanf.c b/dlls/msvcrt/tests/scanf.c index e175342796b..b41f0d1d119 100644 --- a/dlls/msvcrt/tests/scanf.c +++ b/dlls/msvcrt/tests/scanf.c @@ -350,6 +350,11 @@ static void test_sscanf( void ) ret = p_sscanf("\x81\x82test", "\x81%\x82%s", buffer); ok(ret == 1, "got %d\n", ret); ok(!strcmp(buffer, "test"), "buf = %s\n", buffer); + + result64 = 0; + ret = p_sscanf("0xfefefefefefefefe", "%jx", &result64); + ok(ret == 1, "got %d\n", ret); + ok(result64 == 0xfefefefefefefefell, "got 0x%s\n", wine_dbgstr_longlong(result64)); }
static void test_sscanf_s(void) diff --git a/dlls/ucrtbase/tests/scanf.c b/dlls/ucrtbase/tests/scanf.c index 072352ae164..48e9c12f6d1 100644 --- a/dlls/ucrtbase/tests/scanf.c +++ b/dlls/ucrtbase/tests/scanf.c @@ -321,6 +321,12 @@ static void test_sscanf(void) ok(ret == 1, "sscanf returned %d for flags %#x\n", ret, tests[i]); ok(result_ptr == (DWORD_PTR)0x123456789ull, /* this is truncated on 32bit systems */ "got wrong number %Ix for flags %#x\n", result_ptr, tests[i]); + + result64 = 0; + ret = vsscanf_wrapper(tests[i], "0xfefefefefefefefe", -1, "%jx", &result64); + ok(ret == 1, "sscanf returned %d for flags %#x\n", ret, tests[i]); + ok(result64 == 0xfefefefefefefefell, "got wrong number 0x%s for flags %#x\n", + wine_dbgstr_longlong(result64), tests[i]); } }
Helps WRC Generations create multiplayer lobby.