In trying to fix a realease-critical bug for fvwm95, I ran into
something I don't understand about how X deals with XFontSet
structures.

As I understand it, XCreateFontSet(dpy,fontname,&ml,&mc,&ds) is
supposed to allow one to have a generic font name (say "fixed") which
then is used to find the correct font with that generic name for the
given locale.

However, it's not working that way.

I have the following in /usr/X11R6/lib/X11/fonts/ETL/fonts.alias:
(this is not there by default)
fixed -etl-fixed-medium-r-normal--14-140-72-72-c-70-iso8859-2

However, in /usr/X11R6/lib/X11/fonts/misc/fonts.alias, I have an
iso8859-1 font as "fixed".  Watch what happens:  (The source code for
the test program is attached; most of it is ripped from xlsfonts)

$ ./xfontset fixed
Fontset 'fixed' in locale 'C' contains
  -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO8859-1
as its first font.
$ LANG=cs_CZ ./xfontset fixed
Couldn't get fontset 'fixed'
$ xset +fp /usr/X11R6/lib/X11/fonts/ETL/
$ ./xfontset fixed
Couldn't get fontset 'fixed'
$ LANG=cs_CZ ./xfontset fixed
Fontset 'fixed' in locale 'cs_CZ' contains
  -ETL-Fixed-Medium-R-Normal--14-140-72-72-C-70-ISO8859-2
as its first font.

That is, apparently the first definition of "fixed" overrides all
others, and the font doesn't get selected based on locale at all.

Is there something I'm missing?  Is this a bug in X?

Attachment: xfontset.tar.gz
Description: xfontset.tar.gz

Reply via email to