Around 7 o'clock on Oct 18, Jungshik Shin wrote:

> For some unknown reason, 'New Gulim' is picked up by 'fontconfig' or 'Xft'
> for a certain characters when CODE2000 is explicitly requested by
> applications like Mozilla and gedit (via Pango) More specifically, those
> certain characters are U+115F(Hangul leading consonant filler) and
> U+1160(Hangul trailing consonant filler).

Fontconfig has a kludge to weed out fonts with broken encoding tables; 
such fonts often have encoding table entries pointing at blank glyphs 
which aren't supposed to be blank.  It checks each glyph in the encoding 
and ignores those which are inappropriately blank.

The configuration file has a table listing all of the Unicode characters
which are expected to be blank, that list was derived from a similar table
in Mozilla.  Blank glyphs not in the table are assumed to represent broken
encoding entries and are removed from the internal encoding table used by
fontconfig. Unfortunately, the Hangul choseong and jungseong filler codes
weren't included in the table.   This means that no font will ever be 
listed as supporting these glyphs, so Mozilla will pick the first font in 
the match list to draw them with, expecting that this will produce a 
missing glyph indication.

You can easily add these to your configuration by editing fonts.conf.
Here's what the current set of blank glyphs looks like:

<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->
                <blank>
                        <int>0x0020</int>       <!-- SPACE -->
                        <int>0x00a0</int>       <!-- NO-BREAK SPACE -->
                        <int>0x00ad</int>       <!-- SOFT HYPHEN -->
                        <int>0x115f</int>       <!-- HANGUL CHOSEONG FILLER -->
                        <int>0x1160</int>       <!-- HANGUL JUNGSEONG FILLER -->
                        <int>0x1680</int>       <!-- OGHAM SPACE MARK -->
                        <int>0x2000</int>       <!-- EN QUAD -->
                        <int>0x2001</int>       <!-- EM QUAD -->
                        <int>0x2002</int>       <!-- EN SPACE -->
                        <int>0x2003</int>       <!-- EM SPACE -->
                        <int>0x2004</int>       <!-- THREE-PER-EM SPACE -->
                        <int>0x2005</int>       <!-- FOUR-PER-EM SPACE -->
                        <int>0x2006</int>       <!-- SIX-PER-EM SPACE -->
                        <int>0x2007</int>       <!-- FIGURE SPACE -->
                        <int>0x2008</int>       <!-- PUNCTUATION SPACE -->
                        <int>0x2009</int>       <!-- THIN SPACE -->
                        <int>0x200a</int>       <!-- HAIR SPACE -->
                        <int>0x200b</int>       <!-- ZERO WIDTH SPACE -->
                        <int>0x200c</int>       <!-- ZERO WIDTH NON-JOINER -->
                        <int>0x200d</int>       <!-- ZERO WIDTH JOINER -->
                        <int>0x200e</int>       <!-- LEFT-TO-RIGHT MARK -->
                        <int>0x200f</int>       <!-- RIGHT-TO-LEFT MARK -->
                        <int>0x2028</int>       <!-- LINE SEPARATOR -->
                        <int>0x2029</int>       <!-- PARAGRAPH SEPARATOR -->
                        <int>0x202a</int>       <!-- LEFT-TO-RIGHT EMBEDDING -->
                        <int>0x202b</int>       <!-- RIGHT-TO-LEFT EMBEDDING -->
                        <int>0x202c</int>       <!-- POP DIRECTIONAL FORMATTING!
                        <int>0x202d</int>       <!-- LEFT-TO-RIGHT OVERRIDE -->
                        <int>0x202e</int>       <!-- RIGHT-TO-LEFT OVERRIDE -->
                        <int>0x202f</int>       <!-- NARROW NO-BREAK SPACE -->
                        <int>0x205f</int>       <!-- MEDIUM MATHEMATICAL SPACE !
                        <int>0x2060</int>       <!-- WORD JOINER -->
                        <int>0x2061</int>       <!-- FUNCTION APPLICATION -->
                        <int>0x2062</int>       <!-- INVISIBLE TIMES -->
                        <int>0x2063</int>       <!-- INVISIBLE SEPARATOR -->
                        <int>0x206A</int>       <!-- INHIBIT SYMMETRIC SWAPPING!
                        <int>0x206B</int>       <!-- ACTIVATE SYMMETRIC SWAPPIN!
                        <int>0x206C</int>       <!-- INHIBIT ARABIC FORM SHAPIN!
                        <int>0x206D</int>       <!-- ACTIVATE ARABIC FORM SHAPI!
                        <int>0x206E</int>       <!-- NATIONAL DIGIT SHAPES -->
                        <int>0x206F</int>       <!-- NOMINAL DIGIT SHAPES -->
                        <int>0x3000</int>       <!-- IDEOGRAPHIC SPACE -->
                        <int>0x3164</int>       <!-- HANGUL FILLER -->
                        <int>0xfeff</int>       <!-- ZERO WIDTH NO-BREAK SPACE !
                        <int>0xffa0</int>       <!-- HALFWIDTH HANGUL FILLER -->
                        <int>0xfff9</int>       <!-- INTERLINEAR ANNOTATION ANC!
                        <int>0xfffa</int>       <!-- INTERLINEAR ANNOTATION SEP!
                        <int>0xfffa</int>       <!-- INTERLINEAR ANNOTATION TER!
                </blank>



_______________________________________________
Fonts mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/fonts

Reply via email to