なんかおかしなことになりそうなので口をはさみます。
Cygwinにはちゃんと動くワイドキャラクタ関係の関数が用意されていないから、
なにもかもX側の関数と定義をを使うようにcygwin.cfを書かないとダメです。
今のcygwin.cfはStandardDefinesに-DX_WCHARが足りません。
これを定義すると、たいてい stddef.hのwchar_tとぶつかるので、
Xlib.hには
#ifndef _WCHAR_T
#define _WCHAR_T
/* replace this with #include or typedef appropriate for your system */
typedef unsigned long wchar_t;
#endif
というworkaroundを入れます。
クライアントをコンパイルする際には必ず-DX_WCHAR -DX_LOCALEを入れる。
#include <locale.h>は問答無用で<X11/Xlocale.h>に置き換える。
クライアントを動かすときは環境変数LANGに ja_JP.SJIS を指定する。
ASTEX-Xなら環境変数XMODIFIERSに @im=_XIMP_ja_JP#ASTEC_IMS.0 を設定する。
こんなもんで、Xlibには手を入れる必要はないはずです。
10年前にはあたりまえのことだったのに、誰も語り継がないと簡単に風化するなぁ。
年内にはこんなことしなくてもいいようにするから、XFree86にパッチを投げるのだけはやめてね。
|