出口です。
ありがとうございました。
IO::Ptyと格闘してみます。
> そこでviの替わりにPerl側と通信するようなものを動かすようにして
> おいて、Perl側で改めてviをsystem()等で動かすのはどうでしょう。
> CVSの入出力はPerl側でフックしている(できる)ので、こちらの方が
> 簡単かもしれません。
まず、最初のやり方で試してみて、駄目ならこっちも試してみます。
On Wed, 03 Apr 2002 17:41:43 +0900 (JST)
Zazel <zazel@...> wrote:
> === Kazuhiko Deguchi <deguchi@...> さんが書かれた
> === <20020403135943.5D11.DEGUCHI@...> にて
>
> > CVSの"commit"コマンドをPerlのWrapperスクリプト経由で動かしています。
> > コマンドを実行するときに、パイプを作ってコマンドを実行します。
> > CVSが標準出力に表示するメッセージをパイプ経由で読み込み、
> > このWrapperスクリプトのメッセージとして出力しようとしています。
>
> $|=1していないのがちょっと気になりますが、それよりCVSを起動する
> 時の標準出力がttyではないので、viがttyのコントロールをしようと
> してうまくできすに失敗している可能性が高いと思います。
>
> だとすれば、ptyで連結して実行しなければいけないでしょう。Perl5
> ならばIO::Ptyです。でもきっとrawモードあたりを触るため、それを
> Perl側で継承してあげなければならないので、面倒です。
>
> そこでviの替わりにPerl側と通信するようなものを動かすようにして
> おいて、Perl側で改めてviをsystem()等で動かすのはどうでしょう。
> CVSの入出力はPerl側でフックしている(できる)ので、こちらの方が
> 簡単かもしれません。
>
> 以上の内容は予想でしかないので、外していたらごめんなさいです。
>
> (* SEKI Masatoshi / zazel@..."jp" *)
> (* Would you hold my hand? Softly, let's linger. *)
>