David Funk wrote:
I am using Xemacs 21.0.67 under NT, and had a problem using my favourite fonts
(e.g. the 6x13 font that comes with Reflection X).
I traced this to 2 problems in objects-msw.c:
[snip]
The intention of line 985 seems to be to select the default
charset (the
first in charset_map) for the font. I think line 985 should be:
985 strcat (fontname, charset_map[0].name);
i.e. it should add the default charset to the end of the font name, as per
line 981.
Yep. Thanks. I'll incorporate your fix into a patch that I'm putting
together.
2. The default charset - i.e. the first in charset_map - is
"Western", which
maps to a logfont.lfCharSet of ANSI_CHARSET.
Thus, if I use a font like 6x13 that doesn't have a matching lfCharSet in
charset_map, it gets a default charset of "Western". Later, when
mswindows_initialize_font_instance() looks up the "Western" in
charset_map,
it sets lfCharSet of ANSI_CHARSET. The result is that NT looks for the
6x13 font in the ANSI charset, and can't find it.
If, however, you use lfCharSet = DEFAULT_CHARSET, NT looks in all charsets,
and finds it.
[snip]
The intention of the code is to unambiguously identify the available
fonts, so I'm not very keen on your solution. I've not come across a
font before that didn't have one of the charsets out of charset_map.
Would you mail me the font so that I can try to come up with an
alternative solution? Does this font ship as a Windows font with
Reflection X or did you convert it to a Windows font?
Jonathan.
--
Jonathan Harris | jhar(a)tardis.ed.ac.uk
London, England | Jonathan.Harris(a)symbian.com