Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved.
enhance command [argument]...
enhance プログラムは、ソースコードを利用できない他社のアプリケーションのユーザーに、拡張されたコマンド行編集機能を提供します。これは、アプリケーションと実端末間に仮想端末を配置することにより実現されます。これは、tecla コマンド行編集ライブラリを使って実端末からの入力を読み取り、その入力行をすぐに仮想端末経由でアプリケーションに転送します。アプリケーションからの出力はすべて、変更されずに実端末に戻されます。
アプリケーションが出力の生成を 10 分の 1 秒より長く停止する場合、拡張プログラムは常に最新の未完了の出力行をプロンプトとして処理し、その後にユーザーが入力した未完了の入力行をすべて再表示します。ユーザーに気づかれない程度のわずかな遅延も、プログラムが正しく動作する上で必要ありません。これは単に、入力行がしばしば再表示されるために出力速度が低下することを避けるための最適化です。
Tecla ライブラリにより提供されるユーザーレベルのコマンド行編集機能の説明は、tecla(7) のマニュアルページに記載されています。
未解決の大きな問題の 1 つは、制御端末による入力のエコーを実行するかしないかを変更するアプリケーションの処理方法です。たとえば、ftp や telnet などのパスワードの入力を求めるプログラムは、制御端末に対して一時的にユーザーの入力をエコーしないように指示します。この要求は仮想端末のアプリケーション側に送られるため、拡張プログラムはこれが起きたことを識別できず、ユーザーがパスワードを入力している最中も、入力を制御端末にエコーし続けます。
さらに、ホストアプリケーションの実行前に、拡張プログラムはまず仮想端末を noecho モードに設定するため、プログラムに送信されるものが重複してエコーされることはありません。noecho モードに切り替わったプログラムがその後、以前に有効だった端末モードを復元せずに、エコーを明示的に復元した場合は、新しい行を入力するたびに次の行に重複するコピーが表示されます。
tecla ライブラリ
~/.teclarc
tecla 個人用カスタマイズファイル。
属性についての詳細は、attributes(7) を参照してください。
属性タイプ | 属性値 |
使用条件 | library/libtecla |
インタフェースの安定性 | 確実 |
libtecla(3LIB), attributes(7), tecla(7)