2006年8月4日の日記を表示中
2006年 8月 4日 (金)
■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」を加えて作り直したら日本語出るようになりました.あーもう・・・.
[コメントを書く]
■最近のSPAM
何か,最近それっぽい単語を本文に羅列して,未承諾広告部分は画像としてくっつけて送ってくるようなSPAMが毎日何通も来ます.例えば↓みたいなので,Subjectが「TeX」とかなってたり.
How has various versions SVN forms RPM binaries required software. cant wait
WYSIWYM document Ehhh... please explain. processor approach writing
drivers. crashes eating evening before going press. stable fully
わけわかんないですが,キーワードでSPAM判定するやつをすり抜ける(SPAM度を落とす),みたいなのが狙いなんですかね・・・.
[コメントを書く]
2006年8月4日の日記を表示中
このへんとか?(結局は送信者に聞かないとわかんないですが…)