Huw Davies : fonts:
Add the Won sign in place of the backslash for Korean fonts.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Apr 7 08:05:25 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 26dbcc0aeec58d1f0b6c03937aa2bd8e4399ff12
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=26dbcc0aeec58d1f0b6c03937aa2bd8e4399ff12
Author: Huw Davies <huw at codeweavers.com>
Date: Fri Apr 7 10:28:30 2006 +0100
fonts: Add the Won sign in place of the backslash for Korean fonts.
---
fonts/system.sfd | 19 +++++++++++++------
tools/sfnt2fnt.c | 17 ++++++++++++++---
2 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/fonts/system.sfd b/fonts/system.sfd
index 39aa2a2..2a0af85 100644
--- a/fonts/system.sfd
+++ b/fonts/system.sfd
@@ -39,13 +39,12 @@ ScriptLang: 2
LangName: 1033 "" "" "" "" "" "" "" "" "Created with FontForge 1.0 (http://fontforge.sourceforge.net)" "Huw D M Davies" "" "http://www.winehq.org" "" "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.+AAoA +AAoA-This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.+AAoA +AAoA-You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA+AAoA" "http://www.gnu.org/licenses/lgpl.html"
Encoding: UnicodeBmp
UnicodeInterp: none
-NameList: Adobe Glyph List
DisplaySize: 16
AntiAlias: 0
FitToEm: 1
-WinInfo: 836 19 18
+WinInfo: 0 19 18
OnlyBitmaps: 1
-BeginChars: 65536 347
+BeginChars: 65536 348
StartChar: space
Encoding: 32 32 0
Width: 4
@@ -1847,17 +1846,23 @@ EndChar
StartChar: afii10023
Encoding: 1025 1025 345
Width: 9
-Flags: HW
+Flags: W
TeX: 97 0 0 0
EndChar
StartChar: afii10071
Encoding: 1105 1105 346
Width: 8
-Flags: HW
+Flags: W
TeX: 97 0 0 0
EndChar
+StartChar: uni20A9
+Encoding: 8361 8361 347
+Width: 9
+Flags: W
+TeX: 117 0 0 0
+EndChar
EndChars
-BitmapFont: 16 347 13 3 1
+BitmapFont: 16 348 13 3 1
BDFChar: 0 32 4 14 14 0 0
z
BDFChar: 1 33 4 1 2 0 9
@@ -2552,5 +2557,7 @@ BDFChar: 345 1025 9 1 7 0 12
bfg(d^qdb`^qdb$rVuou
BDFChar: 346 1105 8 1 6 0 9
bfg'3bfojtb]j*f
+BDFChar: 347 8361 9 0 8 0 9
+ at fU9ECB/,Ms+"kbCB/haG5rfe
EndBitmapFont
EndSplineFont
diff --git a/tools/sfnt2fnt.c b/tools/sfnt2fnt.c
index 921bb9a..51a0e41 100644
--- a/tools/sfnt2fnt.c
+++ b/tools/sfnt2fnt.c
@@ -179,6 +179,15 @@ static int lookup_charset(int enc)
return OEM_CHARSET;
}
+static int get_char(const union cptable *cptable, int enc, int index)
+{
+ /* Korean has the Won sign in place of '\\' */
+ if(enc == 949 && index == '\\')
+ return 0x20a9;
+
+ return cptable->sbcs.cp2uni[index];
+}
+
static void fill_fontinfo(FT_Face face, int enc, FILE *fp, int dpi, unsigned char def_char, int avg_width)
{
int ascent = 0, il, ppem, descent = 0, width_bytes = 0, space_size, max_width = 0;
@@ -282,10 +291,11 @@ static void fill_fontinfo(FT_Face face,
os2 = FT_Get_Sfnt_Table(face, ft_sfnt_os2);
for(i = first_char; i < 0x100; i++) {
- gi = FT_Get_Char_Index(face, cptable->sbcs.cp2uni[i]);
+ int c = get_char(cptable, enc, i);
+ gi = FT_Get_Char_Index(face, c);
if(gi == 0)
fprintf(stderr, "Missing glyph for char %04x\n", cptable->sbcs.cp2uni[i]);
- if(FT_Load_Char(face, cptable->sbcs.cp2uni[i], FT_LOAD_DEFAULT)) {
+ if(FT_Load_Char(face, c, FT_LOAD_DEFAULT)) {
fprintf(stderr, "error loading char %d - bad news!\n", i);
continue;
}
@@ -365,7 +375,8 @@ static void fill_fontinfo(FT_Face face,
fwrite(dfCharTable + fi.dfFirstChar, sizeof(*dfCharTable), ((unsigned char)fi.dfLastChar - (unsigned char)fi.dfFirstChar) + 3, fp);
for(i = first_char; i < 0x100; i++) {
- if(FT_Load_Char(face, cptable->sbcs.cp2uni[i], FT_LOAD_DEFAULT)) {
+ int c = get_char(cptable, enc, i);
+ if(FT_Load_Char(face, c, FT_LOAD_DEFAULT)) {
continue;
}
assert(dfCharTable[i].width == face->glyph->metrics.horiAdvance >> 6);
More information about the wine-cvs
mailing list