Added patch to improve detection of symbol charset for old truetype fonts.

This commit is contained in:
Sebastian Lackner 2015-11-22 22:53:57 +01:00
parent c60b60d2f5
commit 64719a7bda
5 changed files with 70 additions and 4 deletions

View File

@ -34,9 +34,10 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [1]:**
**Bug fixes and features included in the next upcoming release [2]:**
* Fix broken textures in XIII Century: Death or Glory ([Wine Bug #25419](https://bugs.winehq.org/show_bug.cgi?id=25419))
* Improve detection of symbol charset for old truetype fonts ([Wine Bug #33117](https://bugs.winehq.org/show_bug.cgi?id=33117))
**Bug fixes and features in Wine Staging 1.7.55 [269]:**

View File

@ -1,8 +1,10 @@
wine-staging (1.7.56) UNRELEASED; urgency=low
wine-staging (1.8~rc1) UNRELEASED; urgency=low
* Removed patch to allow dinput EnumDevices callback with broken calling
convention (accepted upstream).
* Added patch to fix required privileges for load_registry and unload_registry
* Removed patch to fix required privileges for load_registry and
unload_registry
wineserver call (accepted upstream).
* Added patch to improve detection of symbol charset for old truetype fonts.
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 15 Nov 2015 21:20:51 +0100
wine-staging (1.7.55) unstable; urgency=low

View File

@ -0,0 +1,43 @@
From 256b632c53c263a4ebcb37ba7d103d5d37e4d0dc Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Wed, 18 Nov 2015 14:16:36 +0800
Subject: gdi32: Improve detection of symbol charset for old truetype fonts.
This patch uses same check for symbol charset that get_outline_text_metrics()
already does, and allows the font attached to the bug 33117 be correctly
recognized as a symbol ttf (like Windows does).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/gdi32/freetype.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 693a54d..a6c8097 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -1980,7 +1980,6 @@ static inline void get_bitmap_size( FT_Face ft_face, Bitmap_Size *face_size )
static inline void get_fontsig( FT_Face ft_face, FONTSIGNATURE *fs )
{
TT_OS2 *os2;
- FT_UInt dummy;
CHARSETINFO csi;
FT_WinFNT_HeaderRec winfnt_header;
int i;
@@ -1997,10 +1996,10 @@ static inline void get_fontsig( FT_Face ft_face, FONTSIGNATURE *fs )
if (os2->version == 0)
{
- if (pFT_Get_First_Char( ft_face, &dummy ) < 0x100)
- fs->fsCsb[0] = FS_LATIN1;
- else
+ if (os2->usFirstCharIndex >= 0xf000 && os2->usFirstCharIndex < 0xf100)
fs->fsCsb[0] = FS_SYMBOL;
+ else
+ fs->fsCsb[0] = FS_LATIN1;
}
else
{
--
2.6.2

View File

@ -0,0 +1 @@
Fixes: [33117] Improve detection of symbol charset for old truetype fonts

View File

@ -58,7 +58,7 @@ upstream_commit()
# Show version information
version()
{
echo "Wine Staging 1.7.56 (unreleased)"
echo "Wine Staging 1.8~rc1 (unreleased)"
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
echo ""
echo "Patchset to be applied on upstream Wine:"
@ -138,6 +138,7 @@ patch_enable_all ()
enable_gdi32_Lazy_Font_Initialization="$1"
enable_gdi32_MaxPixelFormats="$1"
enable_gdi32_MultiMonitor="$1"
enable_gdi32_Symbol_Truetype_Font="$1"
enable_hal_KeQueryPerformanceCounter="$1"
enable_hid_HidP_TranslateUsagesToI8042ScanCodes="$1"
enable_hnetcfg_INetFwAuthorizedApplication="$1"
@ -521,6 +522,9 @@ patch_enable ()
gdi32-MultiMonitor)
enable_gdi32_MultiMonitor="$2"
;;
gdi32-Symbol_Truetype_Font)
enable_gdi32_Symbol_Truetype_Font="$2"
;;
hal-KeQueryPerformanceCounter)
enable_hal_KeQueryPerformanceCounter="$2"
;;
@ -3154,6 +3158,21 @@ if test "$enable_gdi32_MultiMonitor" -eq 1; then
) >> "$patchlist"
fi
# Patchset gdi32-Symbol_Truetype_Font
# |
# | This patchset fixes the following Wine bugs:
# | * [#33117] Improve detection of symbol charset for old truetype fonts
# |
# | Modified files:
# | * dlls/gdi32/freetype.c
# |
if test "$enable_gdi32_Symbol_Truetype_Font" -eq 1; then
patch_apply gdi32-Symbol_Truetype_Font/0001-gdi32-Improve-detection-of-symbol-charset-for-old-tr.patch
(
echo '+ { "Dmitry Timoshkov", "gdi32: Improve detection of symbol charset for old truetype fonts.", 1 },';
) >> "$patchlist"
fi
# Patchset hal-KeQueryPerformanceCounter
# |
# | This patchset fixes the following Wine bugs: