No. 139/622 Index Prev Next
Path: titcca!nttlab!kuis!hewey!tsuiki
From: tsuiki@kaba.JUNET (Tsuiki Hideki)
Newsgroups: fj.kanji
Subject: Re: question about Wnn
Message-ID: < 248@kaba.JUNET> 
Date: 17 Aug 87 15:05:15 GMT
References: < 3112@etlcom.etl.JUNET>   < 3161@etlcom.etl.JUNET> 
Distribution: fj
Organization: Kyoto Artificial Brain Associates, Kyoto, Japan
Lines: 100

> > > > 	Wnnはやたらこういうシーケンスを発生させます。
> > > > 	なんとかならないのでしょうか。

>  例えばwnnのもとで次のようなことをします。

>  %cat > temp
>  漢字漢字
>  ^D
>  %

>  ただし、二つの"漢字"の間で一度仮名漢変換をしないモードに抜けて、再び仮
>  名漢変換モードに入ります。すると、

>  %od -c temp
>  0000000  033   $   B   4   A   ;   z 033   (   J 033   $   B   4   A   ;
>  0000020    z 033   (   J  \n	     ^^^^^^^^^^^ ^^^^^^^^^^^
>  0000025				     goto-ascii  goto-kanji

>  というように、例のシーケンスが現れます。

仮名漢字変換モードから抜けないでも、
Wnnはアプリケーションの方に文字列を送る単位毎にコード変換を行い、
その度に、最後に goto-ascii を付け加えています。
これには、訳が有ります。
というのは、Wnnとアプリケーションは、端末を共有しているために、
お互いに、一固まりの出力が終わった後で端末のモードを ascii にするなどの
約束をしておかないと、出力が混ざった時にめちゃくちゃになります。
(アプリケーションの出力は、Wnnを通るので、Wnnがちゃんとモードを
見ていれば、問題ないのですが。)

しかし、アプリケーションや pty は、こんな事を考えてくれては
いません。アプリケーションに対する入力文字列が、
常に ascii-mode で終わっていれば、
アプリケーション側の出力も、ascii で終わる事が多いだろうと
思われるからこうしているのです。
こうしておかないと、例えば、pty の echo と Wnn の出力が混ざってしまって、
どうしようも無くなると思うのですが。


>>In < 3112@etlcom.etl.JUNET> , handa@etlcom.etl.JUNET (Kenichi Handa) writes:
> > > > Wnnは、現在大変便利に使わせて貰っているのですが、インストールが何か
> > > > 間違っているのか、ときどきWnnを起動した直後に、
> > > > 
> > > >    頻度ファイルが、指定された辞書の頻度ファイルではありません。
> > > >  :/usr/local/lib/dic/kihon_1
> > > > 
> > > > というメッセージが出て、以降漢字の変換がめちゃくちゃになります。
> > > > 何かアドバイスはありませんか。
> > > 
> > >   しかし、「時々」怒られるというのは、わけがわかりません。どのような状況
> > > で起こっているのか、もう少し詳しく分からないでしょうか?
> 
>  残念ながら、ときどきとしか言いようがないのです。強いて言えば、おなじマ
>  シンで、二人目がwnnを使おうとし始めたときかなー。ただしこれも、決し
>  て「常に」ではありません。
Wnnでは、ユーザー毎に頻度ファイルを持っています。ですから、これは、
ユーザーによってはこのメッセージが出るという事ではないですか?
このメッセージが出た時に、そのユーザーの ($home)/Nihongo の
下の、怒られた辞書に対応する頻度ファイルを消してみて下さい。


> > > > wnnを起動するとxon/xoffのフロー制御が働かなくなります。
> > > > どうしたらよいのでしょう?
> > > 
> > >   一応フロー制御は効いてはいます(と思います)。しかしpty側でやっているの
> > > で、tty側への反映がどうしても遅く、フロー制御が鈍いように感じられたり、も
> > > しくは全く効かないように見えたりすると思います。
> 
>  もう少し何とかならないでしょうか。

金崎克己さん :
>  多分 pty のパケット・モードを使えば、普通は(tty 側で)フロー制御し、
>  (速い端末で)emacs を使う場合などはフロー制御をやめるようにできるので
>  しょうが、私はそこまでやっていません。

ここら当たりは、 omron の SX9100 という機械に対しては、
ちゃんと作って有ります。
この機械の上では pty をパケット・モードで使用していて、
ioctrlによって pty でフロー制御をするようにすると、
それを tty 側に反映して、 tty 側でフロー制御をするようにします。
その他にも、ioctrlによって
Wnnをそれこそ完全に切り離したり、くっつけたりも出来ます。

SUN では、どのようなパケット・モードがあるのか良く知らないので、
何とも言えませんが、もし簡単に出来るのなら考えて見ます。
(しかし、Wnnの開発に参加した人間はみんな今忙しそうなので、
もし可能だとしても、しばらくは無理でしょうが)


それから、端末のスクロール・リージョン設定を行うシークエンスを
Wnn が取ってしまうために、emacs などが非常に遅くなって悲しいという
意見がありましたが、色々実験して見た所、別に pty の termcap から、
このエントリー(cs)を消してしまう必要はどうも無いようです。
どうしても cs が無いと困るという人は、Wnnを起動する度に
環境変数の TERMCAP の中身をいじるか、
ソースに手を加えて(ji/termcap.c )このエントリーを消している所を
取り除いてみて下さい。
次のリリースでどうするかは、もう少し実験してから決めたいと思います。

				立木秀樹 (ついき ひでき)
Next
Continue