このページは何か? (by ひげぽん) †
MonaFormsのターミナルは
- 入力をShellサーバーへ渡す
- 出力をプロセスサーバーから奪って自分で行う
という形でターミナル機能を提供しています。
「出力をプロセスサーバーから奪って自分で行う」というのは、以前標準出力機構がないときにTinoさんがその場しのぎで作ってくださったものです。
これを今回実装した標準出力に入れ換えました。
元々のコードが後の事をきちんと考えられたコードだった(さすが)ので、少し書き直すだけでうまく動きました。
あとはターミナルを日本語化するのも簡単だよということで、超適当なフィルタを書いてみました。
現時点で Shell から出力されている端末制御文字は全部無視しているのですが、これらに対応すればより完璧に近付くでしょう。
だれかやりませんか(ぉ。
Mona Formsのターミナルの良いところは Shell に内部コマンドやパイプ機能が追加されてもコードの変更をしなくても良いことです。
楽しい

Shellの標準出力すげかえについて †
Shellは起動時に以下のような標準入出力を持っています。
- キーボード入力 -> inStream
- outStream -> Screenサーバー
CUIのコンソール時には上記状態を保持しているのですが、外部プロセスからメッセージを介してoutStreamを変更することができます。
これを利用して、MonaFormsのターミナル(mshell)は、Shellとその後Shellから起動されるプロセスの標準出力を自分に向けることができます。
という仕組みを作ったので備忘録をかねて書いておきます。
2006/11/12 19:30 ひげぽん
コメント †