[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:4411] default font



At Wed, 28 May 2003 11:16:41 +0900,
小関 吉則 (KOSEKI Yoshinori) wrote:

> 1.99a6/lisp/term/w32-win.el 中で
> : (if (featurep 'meadow)
> :     (progn
> :       (w32-add-font "default" '((width . 8) (height . 16) (base . 15)
> : 				(overhang . 0) (encoding-type . 0)))
> :       ;;(w32-automatic-fontset-regist "default-fontset" "default")
> :       (w32-mouse-operation-init))
> 
> となっていますが、この時使われるフォントは何なんでしょうか?
> 文字化けするフォントが選択される条件というのは何なんでしょう
> か?

この場合、specが何もないので、default font loaderが用いられます。

default font loaderは、face attributeをもとに、以下のdefault logfont
static LOGFONT default_logfont =
{
  0, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
  OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
  FF_DONTCARE | FIXED_PITCH, "FixedSys"
};
をベースに加工を行っていきます。

具体的には、
lfWidth, lfHeight, lfCharSet, lfWeight, lfItalic, lfFaceName, 
を、それぞれ対応するface attributeから取得し、適切に設定を行います。

結論としては、件の症状はcharset number 0(ANSI_CHARSET)に対して
Windowsが返却する物理フォントが不正なものが帰ってきているということになりますので、
Meadowのfont loaderにバグがない限り、文字化けするフォントを返すような環境が悪いと
いうことになります。

from himi