From 79f6a17908658fe83d0c1c5553927b2ce74deca9 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 17 Jul 2018 08:24:58 +1000 Subject: [PATCH] Rebase against adb926d5a5032130d55e4d39316efdb11cc1fe1d --- ...sults-as-optional-in-GetCharacterPla.patch | 97 ------------------- .../gdi32-GetCharacterPlacement/definition | 1 - patches/kernel32-Debugger/definition | 2 +- patches/patchinstall.sh | 25 +---- 4 files changed, 2 insertions(+), 123 deletions(-) delete mode 100644 patches/gdi32-GetCharacterPlacement/0001-gdi32-Treat-lpResults-as-optional-in-GetCharacterPla.patch delete mode 100644 patches/gdi32-GetCharacterPlacement/definition diff --git a/patches/gdi32-GetCharacterPlacement/0001-gdi32-Treat-lpResults-as-optional-in-GetCharacterPla.patch b/patches/gdi32-GetCharacterPlacement/0001-gdi32-Treat-lpResults-as-optional-in-GetCharacterPla.patch deleted file mode 100644 index 6446dba5..00000000 --- a/patches/gdi32-GetCharacterPlacement/0001-gdi32-Treat-lpResults-as-optional-in-GetCharacterPla.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 1f4a7bc3ed8ede33a6e623bf49067550cee433d8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sun, 19 Mar 2017 15:52:42 +0100 -Subject: gdi32: Treat lpResults as optional in GetCharacterPlacement. - ---- - dlls/gdi32/font.c | 13 ++++++++++++- - dlls/gdi32/tests/font.c | 32 ++++++++++++++++++++++++++++++++ - 2 files changed, 44 insertions(+), 1 deletion(-) - -diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c -index ddd0051ab6..fcc24d8645 100644 ---- a/dlls/gdi32/font.c -+++ b/dlls/gdi32/font.c -@@ -3201,10 +3201,18 @@ GetCharacterPlacementA(HDC hdc, LPCSTR lpString, INT uCount, - TRACE("%s, %d, %d, 0x%08x\n", - debugstr_an(lpString, uCount), uCount, nMaxExtent, dwFlags); - -+ lpStringW = FONT_mbtowc(hdc, lpString, uCount, &uCountW, &font_cp); -+ -+ if (!lpResults) -+ { -+ ret = GetCharacterPlacementW(hdc, lpStringW, uCountW, nMaxExtent, NULL, dwFlags); -+ HeapFree(GetProcessHeap(), 0, lpStringW); -+ return ret; -+ } -+ - /* both structs are equal in size */ - memcpy(&resultsW, lpResults, sizeof(resultsW)); - -- lpStringW = FONT_mbtowc(hdc, lpString, uCount, &uCountW, &font_cp); - if(lpResults->lpOutString) - resultsW.lpOutString = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*uCountW); - -@@ -3259,6 +3267,9 @@ GetCharacterPlacementW( - TRACE("%s, %d, %d, 0x%08x\n", - debugstr_wn(lpString, uCount), uCount, nMaxExtent, dwFlags); - -+ if (!lpResults) -+ return GetTextExtentPoint32W(hdc, lpString, uCount, &size) ? MAKELONG(size.cx, size.cy) : 0; -+ - TRACE("lStructSize=%d, lpOutString=%p, lpOrder=%p, lpDx=%p, lpCaretPos=%p\n" - "lpClass=%p, lpGlyphs=%p, nGlyphs=%u, nMaxFit=%d\n", - lpResults->lStructSize, lpResults->lpOutString, lpResults->lpOrder, -diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c -index fb27f8e005..974b471462 100644 ---- a/dlls/gdi32/tests/font.c -+++ b/dlls/gdi32/tests/font.c -@@ -4910,6 +4910,37 @@ static void test_GetTextMetrics2(const char *fontname, int font_height) - ok(ratio >= 90 && ratio <= 110, "expected width/height ratio 90-110, got %d\n", ratio); - } - -+static void test_GetCharacterPlacement(void) -+{ -+ GCP_RESULTSA result; -+ DWORD size, size2; -+ WCHAR glyphs[20]; -+ HDC hdc; -+ -+ hdc = CreateCompatibleDC(0); -+ ok(!!hdc, "CreateCompatibleDC failed\n"); -+ -+ memset(&result, 0, sizeof(result)); -+ result.lStructSize = sizeof(result); -+ result.lpGlyphs = glyphs; -+ result.nGlyphs = 20; -+ -+ size = GetCharacterPlacementA(hdc, "Wine Test", 9, 0, &result, 0); -+ ok(size, "GetCharacterPlacementA failed!\n"); -+ -+ size2 = GetCharacterPlacementA(hdc, "Wine Test", 9, 0, NULL, 0); -+ ok(size2, "GetCharacterPlacementA failed!\n"); -+ ok(size == size2, "GetCharacterPlacementA returned different result: %u vs %u\n", size2, size); -+ -+ size2 = GetCharacterPlacementA(hdc, "Wine Test", 9, 1024, NULL, GCP_REORDER); -+ ok(size2, "GetCharacterPlacementA failed!\n"); -+ ok(size == size2, "GetCharacterPlacementA returned different result: %u vs %u\n", size2, size); -+ -+ size = GetCharacterPlacementA(hdc, "Wine Test", 9, 1024, &result, GCP_REORDER); -+ ok(size, "GetCharacterPlacementA failed!\n"); -+ ok(size == size2, "GetCharacterPlacementA returned different result: %u vs %u\n", size2, size); -+} -+ - static void test_CreateFontIndirect(void) - { - LOGFONTA lf, getobj_lf; -@@ -6682,6 +6713,7 @@ START_TEST(font) - test_GetTextMetrics2("Arial", -11); - test_GetTextMetrics2("Arial", -55); - test_GetTextMetrics2("Arial", -110); -+ test_GetCharacterPlacement(); - test_CreateFontIndirect(); - test_CreateFontIndirectEx(); - test_oemcharset(); --- -2.11.0 - diff --git a/patches/gdi32-GetCharacterPlacement/definition b/patches/gdi32-GetCharacterPlacement/definition deleted file mode 100644 index 7f8f3b6e..00000000 --- a/patches/gdi32-GetCharacterPlacement/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [42669] Treat lpResults as optional in gdi32.GetCharacterPlacement diff --git a/patches/kernel32-Debugger/definition b/patches/kernel32-Debugger/definition index 951a7c39..9334d8ba 100644 --- a/patches/kernel32-Debugger/definition +++ b/patches/kernel32-Debugger/definition @@ -1 +1 @@ -Fixes: [35928] Crash handlers/debuggers fail to display user-interface when invoked for crashing (non-interactive) service processes (inherited Wine service window station/desktop) \ No newline at end of file +#Fixes: [35928] Crash handlers/debuggers fail to display user-interface when invoked for crashing (non-interactive) service processes (inherited Wine service window station/desktop) diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 15a7c623..238954bf 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "414fe80aebe3850fd016da5cb883f4bfeab1c543" + echo "adb926d5a5032130d55e4d39316efdb11cc1fe1d" } # Show version information @@ -151,7 +151,6 @@ patch_enable_all () enable_explorer_Video_Registry_Key="$1" enable_fonts_Missing_Fonts="$1" enable_fsutil_Stub_Program="$1" - enable_gdi32_GetCharacterPlacement="$1" enable_gdi32_Lazy_Font_Initialization="$1" enable_gdi32_MultiMonitor="$1" enable_gdi32_Path_Metafile="$1" @@ -626,9 +625,6 @@ patch_enable () fsutil-Stub_Program) enable_fsutil_Stub_Program="$2" ;; - gdi32-GetCharacterPlacement) - enable_gdi32_GetCharacterPlacement="$2" - ;; gdi32-Lazy_Font_Initialization) enable_gdi32_Lazy_Font_Initialization="$2" ;; @@ -3776,21 +3772,6 @@ if test "$enable_fsutil_Stub_Program" -eq 1; then ) >> "$patchlist" fi -# Patchset gdi32-GetCharacterPlacement -# | -# | This patchset fixes the following Wine bugs: -# | * [#42669] Treat lpResults as optional in gdi32.GetCharacterPlacement -# | -# | Modified files: -# | * dlls/gdi32/font.c, dlls/gdi32/tests/font.c -# | -if test "$enable_gdi32_GetCharacterPlacement" -eq 1; then - patch_apply gdi32-GetCharacterPlacement/0001-gdi32-Treat-lpResults-as-optional-in-GetCharacterPla.patch - ( - printf '%s\n' '+ { "Michael Müller", "gdi32: Treat lpResults as optional in GetCharacterPlacement.", 1 },'; - ) >> "$patchlist" -fi - # Patchset gdi32-Lazy_Font_Initialization # | # | Modified files: @@ -4066,10 +4047,6 @@ fi # Patchset kernel32-Debugger # | -# | This patchset fixes the following Wine bugs: -# | * [#35928] Crash handlers/debuggers fail to display user-interface when invoked for crashing (non-interactive) service -# | processes (inherited Wine service window station/desktop) -# | # | Modified files: # | * dlls/kernel32/except.c # |