Hi everyone,
Are there any news on this report? It''s still present in 2.3.95, and
I''d be
very glad if someone could try to look at it before the 2.4.0 release.
Gnome-terminal still starts up with an extremely ugly font where Hungarian
non-Latin1 letters look very differently than letters that fit in Latin1.
I do not completely understand how language matching should work in
fontconfig, but I created a one-line cheat patch (attached) which lies
FcLangEqual instead of FcLangDifferentCountry if comparing "hu" with
"hu-HU"
(or something like that) and with this patch gnome-terminal chooses a
reasonably usable font (9x15B.pcf I guess), just as if I copy hu.orth to
hu_HU.orth before compiling fontconfig.
Oh, and I tried to create a copy for all such "long" locale names (the
list
taken from "locale -a | grep _ | cut -d. -f1 | cut -d@ -f1 | sort
-u"), but
the resulted library always caused the applications to segfault at startup.
Thanks,
Egmont
On Thu, Mar 02, 2006 at 08:18:44PM +0100, Egmont Koblinger
wrote:> Hi,
> 
> Up to fontconfig 2.2.97 my gnome-terminal (configured to use "Fixed
Bold
> 12") as well as the pure vte application (patched to use this font
too)
> behaved like this:
> 
> If I started it with LANG=en_US or en_US.UTF-8 or something similar, then
it
> used a character set where special Hungarian letters (such as
"?": o with
> double acute, U+0151) had a completely different look than o, ?, and ?
> (which are part of Latin-1 as opposed to the double acute version).
> 
> But if I launched it with LANG=hu_HU (which is a Latin-2 locale) or
> LANG=hu_HU.UTF-8 then it chose a completely different font where the
special
> Hungarian letters had the same design as other characters.
> 
> After all, I was perfectly happy with this.
> 
> Beginning with 2.2.98, even up to the current 2.3.94, the situation is
> different. If I start these applications with LANG=hu (which is not a valid
> locale according to glibc) then I get the same charset as I did before for
> Hungarian, it looks okay. However, if I have LANG=hu_HU or LANG=hu_HU.UTF-8
> (or LANG=hu.UTF-8, which isn''t valid either), then it uses the
same font as
> in the en_US case, which is terribly ugly for Hungarian characters.
> 
> So I have a feeling that somehow newer fontconfigs fail to match the
"hu_HU"
> or "hu_HU.UTF-8" locale against the "hu" orthograpy
rules. Is it possible,
> or do I miss something else?
> 
> I haven''t yet been able to track down its reason, but I found that
if I copy
> hu.orth to hu_HU.orth and recompile fontconfig then it behaves in the Good
> Old way, brings up the font where Hungarian text looks okay. So it finds
and
> applies the "hu-HU" orthograply rules, but doesn''t find
the "hu" rules,
> although I guess it should.
> 
> 
> (PS. in 2.2.9[789] the default config is somehow different, I always get a
> third charset no matter what my locale is. Hence I always used the config
> files from <=2.2.96 or >=2.3.0 (this didn''t make a
difference at all) to get
> the described behavior, which looks buggy if fontconfig library is
>=2.2.97.)
> 
> 
> 
> 
> -- 
> Egmont
-------------- next part --------------
diff -Naur fontconfig-2.3.94.orig/src/fclang.c fontconfig-2.3.94/src/fclang.c
--- fontconfig-2.3.94.orig/src/fclang.c	2006-02-05 20:32:53.000000000 +0100
+++ fontconfig-2.3.94/src/fclang.c	2006-04-13 17:07:01.000000000 +0200
@@ -145,7 +145,7 @@
 	if (c1 != c2)
 	{
 	    if (FcLangEnd (c1) && FcLangEnd (c2))
-		result = FcLangDifferentCountry;
+		result = FcLangEqual; /* cheat :-) */
 	    return result;
 	}
 	else if (!c1)