2006年8月4日の日記の1番目の記事へのコメント

vs xdvi

64bit環境でxdvi(xdvik-22.40y1-j1.21)ビルドしたんですが,日本語がまったく出ず「・」になっちまいます.デバッグ出力とかさせると,きちんと設定ファイル読みにいってるのに何でだー.ググって出てくるケースはどれも無関係.ちゃんとvfontmapあるしフォントも置いてあるし.開けてるかどうかだってstraceで確認くらいしてるし・・・.何となくFreetype2が怪しそうだったので,バージョンを色々落としてやってみたんですが,状況はちっとも変わらず.うーん,超ハマリの予感.

あれこれ試している内に,実は32bit環境で新たにビルドし直した場合も,日本語が「・」になってしまうという衝撃の事実が発覚.過去にビルドしたときとまったく同じ手順でやっているのにこの差は何?同じFreetype2のライブラリにリンクしてるのに,出る場合と出ない場合があるってことは,Freetype2は関係ないのか.

ソースを見ながらデバッガを動かして追いかけてみた所,2byte文字をunsigned charな変数に突っこんで処理しようとして,上位byteが消えてコード変換に失敗している模様.何じゃこりゃ・・・(下記のNeedWidePrototypesは0).

#if     NeedWidePrototypes
typedef unsigned int    wide_ubyte;
typedef int             wide_bool;
#define WIDENINT        (int)
#else
typedef ubyte           wide_ubyte;
typedef Boolean         wide_bool;
#define WIDENINT
#endif

NeedWidePrototypesはどこで設定されてるのかと調べてみると,ありました.X11/Xfuncproto.hですか.なるほど.そして,これ関係で改めてググってみたら,ptetex3のChangeLogがでてきましたよ・・・.

3/27 追記: FC5 の <X11/Xfuncproto.> で NARROWPROTO が強制的に
define されるのが問題で、NeedWidePrototypes が 0 になってしまう。
他のディストロでは NeedWidePrototypes は 1 になっている。

うおー orz.ていうか,XOrg7.0なのが悪いのですか?64bit環境も7.0だしなぁ.そもそもNeedWidePrototypesが0だったら「typedef ubyte wide_ubyte;」なんてアリなのか?大体なんでXのヘッダ見て判定してんのかさっぱりわからん.というわけで,CPPFLAGSに「-DNeedWidePrototypes=1」を加えて作り直したら日本語出るようになりました.あーもう・・・.

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2006年8月4日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2006年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ