[PATCH 2/2] gdi32: Cleanup otmfsType bit mask from reserved bits

Nikolay Sivov nsivov at codeweavers.com
Sun Mar 5 04:44:59 CST 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---

Should fix t2embed test failures, http://test.winehq.org/data/tests/t2embed:t2embed.html.

 dlls/gdi32/freetype.c   | 3 ++-
 dlls/gdi32/tests/font.c | 1 -
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index a5147b5daf..49e8c2f956 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -7914,7 +7914,8 @@ static BOOL get_outline_text_metrics(GdiFont *font)
         font->potm->otmfsSelection |= 1;
     if (font->fake_bold)
         font->potm->otmfsSelection |= 1 << 5;
-    font->potm->otmfsType = pOS2->fsType;
+    /* Only return valid bits that define embedding and subsetting restrictions */
+    font->potm->otmfsType = pOS2->fsType & 0x30e;
     font->potm->otmsCharSlopeRise = pHori->caret_Slope_Rise;
     font->potm->otmsCharSlopeRun = pHori->caret_Slope_Run;
     font->potm->otmItalicAngle = 0; /* POST table */
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 834078e5a9..7c80779137 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -5676,7 +5676,6 @@ static void test_fstype_fixup(void)
 
     /* Test font has fsType set to 0x7fff, test that reserved bits are filtered out,
        valid bits are 1, 2, 3, 8, 9. */
-todo_wine
     ok((otm->otmfsType & ~0x30e) == 0, "fsType %#x\n", otm->otmfsType);
 
     HeapFree(GetProcessHeap(), 0, otm);
-- 
2.11.0




More information about the wine-patches mailing list