• R/O
  • HTTP
  • SSH
  • HTTPS

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

File Info

Rev. 8c3b020ba8b243dba31c85b6ae961f65b8457268
Size 8,729 bytes
Time 2019-12-06 18:36:45
Author IWAMOTO Kouichi
Log Message

termlog v0.2

Content

# termlog - rearrange and serialize VT100/ANSI terminal screen log

original: https://groups.google.com/forum/#!msg/fj.sources/dp4bQoN4Rss/EyWr866q4zcJ

## License

These codes are licensed under CC0.

[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png "CC0")](http://creativecommons.org/publicdomain/zero/1.0/deed.ja)

## Original document

from termlog.doc:

    ============================================================================
    VT100/ANSI端末画面ログ整列/連続化ユーティリティー termlog 操作マニュアル
    ============================================================================

    名称
	    termlog - VT100またはANSI端末の画面ログを連続文字データにする

    バージョン
	    0.1 - 1997/02/18

    形式
	    termlog [-gCOLSxLINES] [-k[ejs]] [-m] [-v] file ...

    オプション
	    -g	画面サイズを指定する(既定値: -g80x24)
	    -k	入力の日本語コード(「半角カナ」がなければ指定不要)
	    -m	表示属性(反転、下線)制御シーケンスを保存する
	    -v	小規模の画面更新でも内容を出力する
	    file	画面制御シーケンスを含む端末画面ログファイル

    使用例
	    VT100端末の画面ログ(シフトJIS)を連続文字データにする。
	      % termlog -ks vt100.log

	    80x36のktermの画面ログを詳細な更新単位で連続文字データにする。
	      % termlog -g80x36 -v kterm.log

	    上と同じだが、画面表示属性を透過出力し、lessで表示する。
	      % termlog -g80x36 -v -m kterm.log | less -r -c

	    termlogの使用法を表示する。
	      % termlog

    説明
	    termlogは端末エミュレーターやUNIXのscriptコマンドなどが生成したログ
	    ファイルから画面制御シーケンスを取り除き、通常文字と改行からなるプレ
	    ーンテキストを生成する。解釈される画面制御シーケンスはVT100端末およ
	    びANSI端末のサブセットである。詳細については後述する。

	    -vオプションを指定しないときの画面出力タイミングは、画面クリアの直前
	    および入力が尽きた時点である。その他に、画面全体のスクロールによって
	    画面上方に消えていく行は、そのタイミングで出力される。したがって、画
	    面制御シーケンスを含まずに画面行数を超える入力ファイルは、見掛け上そ
	    のまま出力されることになる。

	    -vオプションを指定すると、原則として画面内容に更新があるたびに現在の
	    画面が出力される。例外として、画面上の空白に対する上書きは更新として
	    扱われず、また画面制御シーケンスを含まない通常文字の連続表示について
	    は、その途中経過を表示しない。-vオプションを指定したときは出力が膨大
	    になる可能性があるので注意すること。

	    入力ファイルが表示された画面が80桁24行以外のサイズを持つ場合は、-gオ
	    プションを指定して正しい画面サイズを指定すること。表示画面サイズと指
	    定サイズが食い違っていると正しい出力が得られない。

	    termlogは入力ファイルの日本語コードを変更しない。入力ファイルの日本
	    語コードが影響するのはいわゆる「半角カナ」のときだけであり、これが含
	    まれていなければ-kオプションを指定しなくても通常は問題ない。指定する
	    ときは-ks(シフトJIS)、-ke(EUC)、-kj(JIS)のようにする。

	    -mオプションを指定すると、入力ファイルにあった表示属性(のうち反転と
	    下線)を設定するシーケンスが出力にも保存される。画面制御シーケンスを
	    含む入力を扱えるテキストブラウザー(lessなど)で出力を眺める場合には便
	    利かもしれない。

    画面制御シーケンス
	    termlogが解釈する特殊文字、画面制御シーケンスは次のものである。

	      ^H (後退)		1カラム左に移動する
	      ^I (タブ)		次のタブストップ(8カラムタブ)に移動する
	      ^J (改行)		次行の同じカラム位置に移動する
	      ^L (紙送り)		画面内容を出力し、画面をクリアする
	      ^M (復帰)		行頭に移動する

	      ESC 7			カーソル位置と表示属性を保存する(VT100)
	      ESC 8			カーソル位置と表示属性を復元する(VT100)
	      ESC D			1行下に移動し、画面端なら順スクロールする
	      ESC E			次行の行頭に移動する
	      ESC M			1行上に移動し、画面端なら逆スクロールする
	      ESC [ Pn A		Pn行上の同じカラム位置に移動する
	      ESC [ Pn B		Pn行下の同じカラム位置に移動する
	      ESC [ Pn C		Pnカラム右に移動する
	      ESC [ Pn D		Pnカラム左に移動する
	      ESC [ Pm ; Pn H	Pm行Pnカラムに移動する
	      ESC [ J		カーソル位置から画面末尾までクリアする
	      ESC [ 1 J		画面先頭からカーソル直前までクリアする
	      ESC [ 2 J		画面全体をクリアする
	      ESC [ K		カーソル位置から行末までクリアする
	      ESC [ 1 K		行頭からカーソル直前までクリアする
	      ESC [ 2 K		カーソル行全体をクリアする
	      ESC [ Pn L		カーソル位置にPn行の空行を挿入する(ANSI)
	      ESC [ Pn M		カーソル位置以降のPn行を削除する(ANSI)
	      ESC [ Pn P		カーソル位置以降のPnカラムを削除する
	      ESC [ Pm ; Pn f	ESC [ Pm ; Pn H と同じ
	      ESC [ 7 m		反転表示属性を設定する
	      ESC [ 4 m		下線表示属性を設定する
	      ESC [ m		表示属性を解除する
	      ESC [ Pm ; Pn r	スクロール領域をPm行〜Pn行に変更する(VT100)
	      ESC [ s		カーソル位置と表示属性を保存する(ANSI)
	      ESC [ u		カーソル位置と表示属性を復元する(ANSI)

	      ^N			JISカタカナ開始
	      ^O			JISローマ文字/ASCII開始
	      ESC $ @		JIS漢字開始
	      ESC $ B		JIS漢字開始
	      ESC ( B		ASCII開始
	      ESC ( J		JISローマ文字開始
	      ESC ( H		JISローマ文字開始
	      ESC ( I		JISカタカナ開始
	      ESC ( 0		DEC特殊文字(VT100罫線素片)開始

	    上記以外の特殊文字、画面制御シーケンスは黙って無視される。

    動作環境
	    termlog.cはSunOS4.13上のccおよびgcc、SunOS5.上3のcc、MS-DOS上のTurbo
	    C++ 1.0およびLSI C-86 v3.30c試食版で動作を確認した。それ以外の処理系
	    でもおそらく変更の必要なしにコンパイルできると思われる。

    バグ
	    このプログラムは即席で作られ、しかもあまりテストされていない。バグや
	    仕様上の不備も数多く存在すると思われる。しかし原作者はあまりまじめに
	    このプログラムを保守しようとは考えていないので、トラブルがあった場合
	    はできるだけ自力で解決すること。

	    それはそれとして、利用者による修正・機能改善・移植などのレポートにつ
	    いては歓迎する。

    利用条件
	    このプログラムの利用・改変・再配布にはいかなる制限もない。原作者はこ
	    のプログラムに関するすべての著作権を放棄すること、またいかなる場合で
	    も著作者人格権を主張しないことを表明する。言い換えれば、原作者はこの
	    プログラムがパブリックドメインに置かれたものとして扱われることを期待
	    する。商業的利用あるいは各種メディアへの転載・収録などについても、原
	    作者への連絡は一切不要である。

	    ただし、原作者はこのプログラムに関していかなる保証も行わない。原作者
	    はこのプログラムが期待された動作をすること、特定の目的に対して有用で
	    あることを保証せず、またこのプログラムを利用したことによって生起した
	    いかなる損害に対する責任も負わないものとする。

    原作者
	    太田純 (Junn Ohta)
	    Internet: o...@src.ricoh.co.jp
	    NIFTY-Serve: JCF00656

    履歴
	    1997/02/18 - テスト版(v0.1)をリリース

    ============================================================================