[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: kinput2
とりあえず私の環境(NetBSD/i386 1.4K)では解決しました。
> > しました。あー、なんか/tmp/jd_sockVがないとか言ってるなあ。
> > むりやり/tmp/jd_sockV -> jd_sockV4とすると
> > Warning: file "/usr/local/lib/wnn/wnnenvrc"が open できません。
> > とか言いながら、仮名が出るようにはなりました。
>
> wnnenvrcの件は直したと思っていたけど気のせいだったか(^^;
あ、作り直したらちゃんとなってました。
> /tmp/jd_sockVの件は今まで遭遇したことがないです。
これが原因だったんですけど、他の方はほんとにおかしくなりません?
> > 今、どうしてjd_sockVとかいうファイルを見にいくのか
> > 追いかけてますが、さっぱりわけがわかりません。
>
> /usr/pkg/share/wnn/serverdefs で、
> ja_JP jserver /tmp/jd_sockV4 wnn4 22273
> japanese jserver /tmp/jd_sockV4 wnn4 22273
> を使うと思うのですが、違うserverdefsを見てたりしてませんか?
他にwnnを入れたことがあるマシンではないし、serverdefsは
これをちゃんと見てました。
原因は、freewnn-libのjs.cの中で、UNIXドメインのソケットの
connectの引数に間違った長さを渡していたためでした。
sizeof(sockaddr_un.sun_len)==sizeof(uchar)分だけ足りないので、
ソケットの最後の一文字が欠けてconnectに失敗していたようです。
以下のパッチで直りました。
--
iかわもと よしひさ! kawamoto@es.osaka-u.ac.jp
*** ./Wnn/jlib/js.c- Mon May 17 12:04:45 1999
--- ./Wnn/jlib/js.c Tue Sep 21 14:07:23 1999
***************
*** 220,230 ****
#endif
return -1;
}
- #if !(defined(BSD) && (BSD >= 199306)) /* !4.4BSD-Lite */
- if (connect(sd,(struct sockaddr *)&saddr,strlen(saddr.sun_path)+sizeof(saddr.sun_family)) == ERROR) {
- #else /* 4.4BSD-Lite */
if (connect(sd,(struct sockaddr *)&saddr,SUN_LEN(&saddr)) == ERROR) {
- #endif /* 4.4BSD-Lite */
#if DEBUG
xerror("jslib:Can't connect socket.\n");
--- 220,226 ----