Jonathan,
On Fri, 2 Apr 1999, Jonathan Harris wrote:
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.
Thank you.
> 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 can understand that; I'm no expert in this area.
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?
I've attached the two fonts in question - "6x13_0" and "6x13b_0".
They both
report a charset of 44, which doesn't appear in wingdi.h.
Does this
font ship as a Windows font with Reflection X or did you convert it to a
Windows font?
It ships as a Windows font with Reflection X; I didn't convert it.
BTW: Voelker's NT Emacs works with this font, if that's any help to you.
Thanks for looking into this,
David