diff -aur freetype-2.0.7-orig/include/freetype/freetype.h freetype-2.0.7/include/freetype/freetype.h --- freetype-2.0.7-orig/include/freetype/freetype.h Fri Feb 1 10:22:39 2002 +++ freetype-2.0.7/include/freetype/freetype.h Tue Feb 5 20:40:29 2002 @@ -395,6 +395,7 @@ FT_ENC_TAG( ft_encoding_symbol, 's', 'y', 'm', 'b' ), FT_ENC_TAG( ft_encoding_unicode, 'u', 'n', 'i', 'c' ), + FT_ENC_TAG( ft_encoding_latin_1, 'l', 'a', 't', '1' ), FT_ENC_TAG( ft_encoding_latin_2, 'l', 'a', 't', '2' ), FT_ENC_TAG( ft_encoding_sjis, 's', 'j', 'i', 's' ), FT_ENC_TAG( ft_encoding_gb2312, 'g', 'b', ' ', ' ' ), diff -aur freetype-2.0.7-orig/include/freetype/internal/t1types.h freetype-2.0.7/include/freetype/internal/t1types.h --- freetype-2.0.7-orig/include/freetype/internal/t1types.h Thu Dec 20 22:22:02 2001 +++ freetype-2.0.7/include/freetype/internal/t1types.h Tue Feb 5 20:29:23 2002 @@ -80,6 +80,7 @@ t1_encoding_none = 0, t1_encoding_array, t1_encoding_standard, + t1_encoding_isolatin1, t1_encoding_expert } T1_EncodingType; diff -aur freetype-2.0.7-orig/src/type1/t1driver.c freetype-2.0.7/src/type1/t1driver.c --- freetype-2.0.7-orig/src/type1/t1driver.c Thu Oct 18 13:45:06 2001 +++ freetype-2.0.7/src/type1/t1driver.c Tue Feb 5 21:15:12 2002 @@ -275,6 +275,24 @@ /*******************************************************************/ /* */ + /* ISOLatin1 encoding support */ + /* */ + case ft_encoding_latin_1: + /* ISOLatin1 is the first page of Unicode */ + if ( charcode < 256 && psnames->unicode_value ) + { + result = psnames->lookup_unicode( &face->unicode_map, + (FT_ULong)charcode ); + + /* the function returns 0xFFFF if the Unicode charcode has */ + /* no corresponding glyph */ + if ( result == 0xFFFF ) + result = 0; + } + goto Exit; + + /*******************************************************************/ + /* */ /* Custom Type 1 encoding */ /* */ case ft_encoding_adobe_custom: diff -aur freetype-2.0.7-orig/src/type1/t1load.c freetype-2.0.7/src/type1/t1load.c --- freetype-2.0.7-orig/src/type1/t1load.c Mon Jan 28 14:34:52 2002 +++ freetype-2.0.7/src/type1/t1load.c Tue Feb 5 20:27:32 2002 @@ -1082,6 +1082,10 @@ strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 ) face->type1.encoding_type = t1_encoding_expert; + else if ( cur + 18 < limit && + strncmp( (const char*)cur, "ISOLatin1Encoding", 17 ) == 0 ) + face->type1.encoding_type = t1_encoding_isolatin1; + else { FT_ERROR(( "parse_encoding: invalid token!\n" )); diff -aur freetype-2.0.7-orig/src/type1/t1objs.c freetype-2.0.7/src/type1/t1objs.c --- freetype-2.0.7-orig/src/type1/t1objs.c Thu Jan 3 23:06:13 2002 +++ freetype-2.0.7/src/type1/t1objs.c Tue Feb 5 20:40:15 2002 @@ -473,7 +473,8 @@ } } - /* now, support either the standard, expert, or custom encoding */ + /* now, support either the standard, isolatin1, expert, */ + /* or custom encoding */ charmap->face = (FT_Face)face; charmap->platform_id = 7; /* a new platform id for Adobe fonts? */ @@ -489,10 +490,20 @@ charmap->encoding_id = 1; break; - default: + case t1_encoding_array: charmap->encoding = ft_encoding_adobe_custom; charmap->encoding_id = 2; break; + + case t1_encoding_isolatin1: + charmap->encoding = ft_encoding_latin_1; + charmap->encoding_id = 3; + break; + + default: + FT_ERROR(( "T1_Face_Init: invalid encoding\n" )); + error = T1_Err_Invalid_File_Format; + goto Exit; } root->charmaps = face->charmaps;