[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00722] Re: uum patch for 1.1.1-a018
小野寛生です
青野 = aono@cc.osaka-kyoiku.ac.jp (Tomoki AONO) wrote:
>> あと、jhlp.c の
>>
>> 184 if (strlen (p) >= 4)
>> 185 {
>> 186 strncpy (lang_dir, p, LANGDIRLEN-1);
>> 187 lang_dir[LANGDIRLEN-1] = '\0';
>> 188 }
>> 189 else
>> 190 {
>> 191 strcpy (lang_dir, p);
>> 192 }
>> 193 }
>>
>> って何故分岐しているのでしょう?
もともとが、
if(*lang_dir == '\0') {
if ((p = getenv("LANG")) != NULL) {
if (strlen(p) >= 4) {
strncpy(lang_dir, p, 5);
lang_dir[5] = '\0';
} else {
strcpy(lang_dir, p);
}
}
}
となっているので、
青野> もう少しソースを見ると、直後に比較する function_db[] (in
青野> Wnn/uum/header.c) でのWnnの言語名が最大五文字(ex. ja_JP)に
青野> なっているので、それ以上環境変数LANGから取り出すと比較に支
青野> 障が出ると考えたのでしょうか…。
ということのようですね。つまり、
ja_JP だったら、ja_JP.eucJP、ja_JP.EUC、ja_JP.SJIS、ja_JP.UJIS とか、
のどれでも、lang_dir に "ja_JP" がはいるという意図のようです。
でもって、LIBDIR/lang_dir eq @prefix/lib/wnn/ja_JP 下のファイルを読み
にゆく、と。
なので、現在の修正はうまく行かない可能性があります。
% つまり、lang_dir[32] である理由はない…のかな?
最近の Linux だと、LANG 環境変数に指定するのは ja_JP.なんたら ではなく、
EUC-JP とかになっているという話を聞いたことがあるのですが、それが本当
なら (はい、確認していません) もとのアプローチもまずいんですが。
ちょっと、どうするか考えさせて下さい。
(1) もとに戻す。
(2) 「最近の Linux」云々が本当だった場合は他の方法考えたほうがいいのかな。
(2.1) LANG の値に応じて適当な値を function_db[] からコピーとか。
p.s.
本当は人にお見せ出来る状態ではないのですが、混乱してきてなにをどうした
のかわからなくなりつつあるので、
<URL:http://homepage2.nifty.com/onlife/FreeWnn/>
なんてのを作り始めています。
% 少しはみられるものになってから…と思っていると、また消えてしまいそう
% なので、出しておこう。