作者: Kazuhiko Deguchi
日時: 2002/4/05(08:46)
出口です。

ありがとうございました。
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. *)
>