- ver 4.21 (Mar.26th,1997)
大変申し訳ありません!!
``big5-hku''は大嘘でした.
(やっぱりETenっぽいようです.)
もう混乱を招きたくないため,
今後はbig5の表記を安直に『big5』で統一いたします.
(これで安心して眠れます. :-)
この版で私の学生生活中に行なうリリースを終了します.
lvは私一人が作ったものではありません.
大勢の方々の御協力に感謝いたします.
皆様,長い間,お疲れ様でした.
どなたかlvのロゴを作りませんか?
(CDのジャケット風でも良いです.)
ダウンロード用のクリックボタンも欲しいです.
- ver 4.20 (Mar.22th,1997)
ドキュメントとソースに含まれていた,
いくつかのtypoを直しました.
スクリーンへの表示関係を少々触りました.
istrのアロケーションを少々触りました.
ただし,それほど大きな違いはありません.
3月14日に fj にアナウンスしましたが,
特にバグレポートが無いようですから,
ここで長期に渡ったβテストに区切りをつけたいと思います.
今後,
このまましばらく様子を見て,
lvの開発を中断します.
皆様,何度も何度もダウンロードさせてしまって申し訳ありませんでした.
βテストに参加して頂いた大勢の方々,
どうもお疲れ様でした.
次は FAQ でも作りたいですね.
- ver 4.2beta5 (Mar.14th,1997)
オプションの指定方法を少し変更した.
スイッチだけのオプション,
例えば -c や -d を -cd と書いても良いようにした.
これまでbig5をETenとして扱っていたが,
Unicode との絡みで,
それは big5-hku でなければならないことに気づいた.
そのためbig5-etenの表記をbig5-hkuに修正し,
CNS との変換テーブルから ETen 部分を削除した.
(各種 big5 に共通な部分だけが有効になります).
Unicode から ISO 8859-* への変換で, 取りこぼしが一文字あった.
Unicode から iso-2022-cn で使用される文字集合への変換で,
これまでは, まず CNS 11643-1992 への変換を試みた後で,
次に GB 2312-80 への変換を行なっていたが,
これを逆にした.
つまり, Unicode を iso-2022-cn で出力する場合,
GB 2312-80 が優先される.
GB に無い文字は CNS で出力される.
(この辺のポリシーは何も定義されていないようですね?)
そして現状では, CNS を優先した iso-2022-cn は考えないことにする.
(実際に現場ではどのように使用されているのでしょう?!)
ただし,
CNS だけを含む iso-2022-cn は,
Unicode から euc-taiwan や big5 を経由して
iso-2022-cn を出力することで作ることができる.
その場合, Unicode から CNS へ変換できない文字は
``?'' (Question mark) となる.
Unicode について.
現在 lv が使用しているテーブルは Unicode 1.1 に基づいています.
(これは先程気づきました. :-)
そして現在の Unicode 標準は 2.0 のようですから,
一部,
誤ったコード位置への変換が行なわれているみたいです.
『直』の誤変換は目立ちますね. (^_^;;
と思ったら,
Unicode 2.0 でも直ってないようです(?)
これって,正しいマッピングなんでしょうか...
(よく似ている文字にマッピングが無いのに,
こんなに違う文字にマッピングがあったりして,
よく分からない Unicode.)
Unicode 2.0 と CJK unified ideographs 間のマッピングのテーブルですが,
ftp://unicode.org/ から入手することができます.
いくつかメモ.
Unicode から CNS 11643-1992 への変換について,
現在は(内容のそろった)変換テーブルが入手できないため,
lv では Big5-HKU を経由して変換を行なっている.
Unicode → Big5-HKU →(各種big5共通部分)→ CNS,
あるいは CNS →(各種big5共通部分)→ Big5-HKU → Unicode.
なお,
Big5 - CNS 間で変換できない文字は全て ``?'' (Question mark) になる.
なお, lv は ISO-IR-165 (実体は GB2312-80 + その他, だそうです)
をコード変換の対象としては扱っていない.
いろいろ書きましたが,
前バージョンからの変更点は冒頭で挙げた点だけです.
最近バグレポートが来ないので,とても淋しいです(^_^;;
- ver 4.2beta4 (Mar.12th,1997)
- (マイナス) や + で始まるファイルを見ることができなかったため,
オプション ``-'' (それ以降の引数をファイル名と見なす) を作った.
Makefileを整理した.
(コンパイラフラグを ``CONFIG'' というファイルに分離しました.
こちらを修正してください.)
書庫を整理した.
MSDOS版の書庫にソースを入れるのをやめた.
UNIX版の書庫で,
これまで別のファイルになっていたソースファイルの書庫を,
サブディレクトリに展開するようにして一つの書庫にまとめた.
各ファイル名の先頭に書庫の名前のディレクトリを含めた.
(つまり,展開するとサブディレクトリができます.
そのディレクトリで make して下さい.
ソースはそのまたサブディレクトリに展開されます.)
- ver 4.2beta3
ありません.
このバージョンは FreeBSD 用の ports を作るために一時使用しました.
- ver 4.2beta2 (Mar.4th,1997)
UTF-7のエンコーディングに一部,バグがありました.
(base64の列の途中で画面制御用のエスケープシーケンスが出てしまっていました.
help.jaをUTF-7端末で表示するとすぐ分かりますね.)
ms-kanjiの表記をshift-jisに改めた.
それに伴ってオプションも m から s に変更した.
(ただし, これまでの lv でも s と m の両方が使えます.)
オプション名を大幅に変更した.
(大文字のものを小文字に変更しました.)
オプション-Uでbig5-etenをCNSに変換することをやめた.
オプション-uは旧JISを新JISへ,
またJISローマ字をASCIIへ変換するために使ってください.
ページをめくる際にスクロールを使って古い内容を掃き出すオプション-sを新設した.
(皆様の好みにまかせます.)
注意: 『cat | lv』を実行してはいけません!
^C が効かないため,困ったことになります.
(実行してしまった場合は cat の方を殺してください.)
これを, きちんと ^C で止められるように修正しました.
どなたかlvのロゴを作りませんか?
- ver 4.2beta1 (Mar.2nd,1997)
試験的に Unicode をサポートしてみました.
まだ, あまり Unicode のことを理解していないのですが,
とりあえず Unicode 端末で作業ができる程度まで作ってあります.
バージョンを一つ進めます.
Unicodeの変換テーブルは
ftp://unicode.org/pub/UNIX/MAPPINGS/
から入手することができます.
フリーということですので lv のソースに含めました.
ただし,
そのままの形式でファイルを再配布するのはマズいようです.
MSDOS版には Unicode を扱う機能はありません.
バグレポート,その他,
よろしくお願い致します.
- ver 4.1beta7 (Feb.25th,1997)
オプション-Eを廃止した.
big5は,やはりbig5のまま読み込むことにした.
ただし,
この場合,
big5をiso-2022-cnなどで出力すると,
文字列のサーチが正常に機能しない(逆も同様.これは仕様になります.).
ただし,
オプション-Uを指定すれば
big5を常にCNSに変換して読み込むことができるため,
そのような問題を回避できる.
変換できないbig5は8ビット目を落して出力することにした.
big5からCNSへの変換ルーチンにバグがあった.
論理行に対する物理行の制限を16行から64行に増やした.
(1024文字が全て4ケタ表示の制御文字だったとして, 4096ケタ.
これを80ケタで表示すると52行ですので,
だいたいそれくらいで良いと思います.)
- ver 4.1beta6 (無し)
あれ, なぜか無いですね (^_^;;
ちょっと混乱しています.
- ver 4.1beta5 (Feb.23th, 1997)
JIS C 6226がeuc-japanで出力されないという,
非常に情けないバグが発見されました.
これを直しました.
一方,
JIS X 0201ローマ字をASCIIに,
JIS C 6226 を JIS X 0208 に変換するオプション-Uを新設しました.
(このオプションとは関係なく, C6226 は euc-japanで出力されます.)
またオプション -U は,
ISO 2022のデコードに関して,
lvが知らない文字集合のうち94文字集合のものを ASCII として読み込みます.
これによりlvの認識する文字集合をいくつか削除しました.
- ver 4.1beta4 (Feb.18th, 1997)
ANSIエスケープシーケンスをカスタマイズできるようにした.
英語版のドキュメントを作った.
- ver 4.1beta3 (Feb.14th, 1997)
村井さん(murai@geophys.hokudai.ac.jp)の指摘により,
コード系の自動選択が状況によって作動しないバグを修正した.
コード系を整理し,
ISO 2022系統をiso-2022-cn, iso-2022-jp, iso-2022-krに限定した.
(これまで余計に設定していたものを削除した.)
自動選択中に仮定するコード系をiso-2022-krに変更した
(これまではG1に半角カナが乗っていた. それをハングルに変更した.).
iso-2022-cnとeuc-taiwanを新設した.
それに伴いCNS 11643-1992をitableに含めた.
またbig5とCNSの相互変換を行なえるようにした.
big5の表記をbig5-etenに改めた.
コード系の名称変更と新設/廃止に伴い,
該当するオプションも修正した.
このドキュメントを一新した.
- ver 4.1beta2 (Feb.12th, 1997)
松原さん(moody@osk.threewebnet.or.jp)の指摘により,
SystemV系の^Zの扱いを改善し,
きちんとプロセスグループへSIGSTOPを飛ばすようにした.
(これまで気づかなくて済みません.)
バイナリファイルをRawモード以外で読み込むとセグメンテーションフォルトを
起すことがありました. (まれにIstrFree()でSIGSEGVが飛ぶ)
これを直した.
manの出力を見る時などに複数の文字属性を指定しても最後の一つしか有効に
ならなかった点を改善した.
また,manの結果を見る際の^Hの扱いに不備があったので直した.
オプション-Mを-Pに変更した.
- ver 4.1beta1 (Feb.8th,1997)
ようやく修論が終りました.
さて,
lvのバージョンを一つ上げます.
よって ver 4.0 の正式版は存在しません.
4.1では以前から懸案だった,
標準入力とzcatからの入力をパイプで読むことにしました(UNIX版).
ただしlvの構造的問題から,標準入力を表示する場合,
1画面分(+ページの切れ目まで)を読み込まないと表示できません.
どうしても標準入力を読み込んだ『その時』に表示したいという場合は,
-Mオプションを指定してください.
それから,
Linuxのサポートを加えました.
(termcap版のみ. Linuxのterminfo版は,まだ確認していません.)
その際, UNIXの端末制御関係のファイルをかなり触りました.
以前のバージョンでは,
-Cオプションを指定すると,
リダイレクトやパイプで出力した時に
エスケープシーケンスの情報が抜け落ちるというバグがありましたが,
直しました. 常時オンにしていてもOKです.
コード系の判断の方法も変更しました.
これまで先読みを行なって判断していましたが,
判断する必要が迫られるまで判断しないことにし,
『漢字らしき文字を含む最初の一行』で
コード系を決定することにしました.
- ver 4.0beta9 (Jan.6th,1997)
ウィンドウ端末をリサイズした際に,
場合によっては誤動作することがあった.
リロード中に,リロードしていると表示するようにした.
- ver 4.0beta8 (Dec.28,1996)
サーチを高速化した.
(これくらいが限界のようです.
lessの最新バージョンと比較してみてください.
もう負けないぞ :)
ASCII文字の大文字/小文字を区別しないサーチを作った.
(オプション-Dで指定してください.)
最大行数を32768行に変更した.
コード系の判断のためにファイルを読み込むバイト数の上限を
16Kバイトに変更した.
- ver 4.0beta7 (Dec.15,1996)
野中さん (nona@in.it.okayama-u.ac.jp) の指摘により,
次の3点を改善した:
beta6 の zcat 展開で, コード系の選択が正しく行なわれなかった.
日本語に対するBSの扱いを, 日本語の man が正しく通る程度に改善した
(つもり).
ttyからの標準入力の読み込みはしないことにした.
- ver 4.0beta6 (Dec.12,1996)
石塚さん (ishizuka@db.is.kyushu-u.ac.jp) の指摘により,
サフィックスがgz, z, Zのファイルはzcatで展開してから読むようにした.
- ver 4.0beta5 (Dec.10,1996)
リロードした時に二重にファイルをクローズしてしまい,
bus errorやsegmentation faultを起していた.
リロードした時に,サーチ中のフラグが落ちてしまい,
最初のサーチが同じ場所にヒットしてしまっていた.
- ver 4.0beta4 (Dec.9,1996)
ヘルプファイルを分離した.
リロードした際にサーチパターンをクリアしていたが,
クリアしないことにした.
DOS版で, file_t も i_str_t と同様に far ポインタ化した.
DOS版のメモリ管理についてメモ:
mallocで配置されるヒープサイズに制限を設けました.
現在は10Kバイト取ってあります.
もしDOSのメモリが余っているのにnot enough memoryというエラーが
出て異常終了するようなことがあれば,
lv.c の中の HEAP_SIZE の設定を,
より大きな値に変更してmakeし直してください.
UNIX版ではそのような設定はありません.
(当然, far というキーワードも無効にしてあります.)
- ver 4.0beta3 (Dec.8,1996)
DOS版のメモリ配置関係のコードを重点的に修正した.
ファイルをリロードする機能を加えた.
- ver 4.0beta2 (Dec.5,1996)
大きくなり過ぎた正規表現関係のファイルを分割した.
MSDOS版で文字列の配置にfarメモリを使用するようにした.
これによって並のバイナリファイルでは
セグメント内でのメモリ不足の問題は起こらなくなった.
(メモリを食う&遅くなると思いますが,
ファイルが『見れない』よりかは良いのではないかとも思います.)
- ver 4.0beta1 (Dec.4,1996)
やはり,バージョンを進めることにした.
(よってver 3.9の正式版は存在しないことになります).
iso-8859-*を8単位系のISO 2022としてエンコードするように変更した.
(これまでEUCとして扱っていた.)
ISO 2022を8単位系も含む形に修正した.
ms-kanjiのG1集合の初期値が間違っていたので直した.
エンコード関係のコードを部分的にまとめた.
- ver 3.9beta19 (Dec.3,1996)
文字のコード長を2バイトまでに制限した.
(全ての文字を2バイトで表現することにした).
それに伴って,デコード/エンコードの大部分に修正を加えた.
正規表現によるサーチを加えた.
オプションをファイルから指定できるようにした.
指定済みのオプションを無効にするオプションを加えた.
入力文字列のヒストリを戻せるようにした.
このバージョンはbeta18以前と比較して非常に多くの修正を加えているため,
極めてバギーと思われます.
特に正規表現の実装は,まだ安直なもので,
Muleのドキュメントにあるような『真の正規表現』には,
ほど遠い状態にあります.
もし正規表現まわりの動作でおかしな所があれば,
ぜひぜひ,私にお知らせください.
- ver 3.9beta18 (Dec.3,1996)
無し.
- ver 3.9beta17 (Nov.25,1996)
文字集合を1個加えた.
SPの扱いに不備があったので直した.
UNIX版のSuspendに不備があったので直した.
(これまで自分に送っていたSIGSTOPを,
自分のプロセスグループに送るようにした.)
- ver 3.9beta16 (Nov.24,1996)
画面出力にムダが多かったので,なるべくムダな出力をしないようにした.
- ver 3.9beta15 (Nov.17,1996)
いくつかの文字集合を削除した.
iso-2022-krを加えた. (といっても実体はiso2022-7bit-ls).
encode/decode関連の関数を整理した.
文字列サーチの結果表示が少しバグっていた.
- ver 3.9beta14 (Nov.16,1996)
ANSIエスケープシーケンスのうち,
文字の色や属性値を指定するシーケンスを通すことが出来るようにした.
(オプション-Cで指定する).
ヘルプメッセージをプログラム本体に含め直した.
rawモードと同様に他のコード系でも,
そのコード系で出力できない文字を無理矢理出力する場合に,
文字集合のバイト数が表示幅より多い時,
表示ずれを起すバグがあったので直した.
- ver 3.9beta13 (Nov.15,1996)
プログラム本体からヘルプファイルを分離した.
- ver 3.9beta12 (Nov.15,1996)
いくつかのオプションを変更した.
出力のコード系は-Oで指定することになった.
すべて(入力,キーボード,出力)のコード系を-Aで指定できるようにした.
文字集合とコード系にbig5を加えた.
これまで標準入力がttyデバイスでない場合はヘルプを表示していたが,
標準入力を受けつけるようにした.
コマンド周りを修正した.
キーバインドをテーブルにして,変更を容易にした.
いくつかのコマンドを加えた.
今回加えたbig5の各文字は,内部的にもbig5そのままで格納されます.
これをiso-2022-jpやiso2022の7ビットで出力しようとすると
8ビット目が立っているコードが出てしまいますので
注意してください (Big5はiso2022には適合していないので,
そもそもそんな出力はできない).
なお,
big5を無理矢理iso2022で出力する際の終端文字には3/0を使用しています.
- ver 3.9beta11 (Nov.14,1996)
base64, quoted-printable のコードを削除した.
最大行数を越えたファイルに対しては,ファイル末尾で通常の(END)ではなく,
(TRUNCATED)と表示するようにした.
- ver 3.9beta10 (Nov.12,1996)
EUCの解釈に重大な誤りがあったことを自覚しました.
てっきりEUCはISO 2022に適合していると思い込んでいたのですが,
そうじゃないんですね!
申し訳ありませんでした. (ふぅ,あぶなかった...)
という訳で,
SS2, SS3の後の文字はGRに呼び出されるように(というより,むしろ,
8ビット目を立てて出力するように)変更しました.
その他:
ページサイズとオンメモリページ数についてメモ.
ひと画面に表示されている複数のページに関して,
例えば画面の上端と下端などで,
同一ブロックにアクセスする状況を作ってはいけない.
(例えば,
DOS版でページサイズ16行,オンメモリ2ページ,という設定はできない.)
この制限を守れば,
ページサイズ,オンメモリページ数,共に2のべき乗の数で変更して良い.
ただし, lv で扱える最大行数はPAGE_SIZE * SLOT_SIZE で決まるため,
ページサイズを縮めると,その分,扱える行数が減るので注意.
- ver 3.9beta9 (Nov.9,1996)
文字集合をいくつか追加した.
コード系の定数名を変更した.
ISO 2022の7単位系のエンコードに関してシングルシフトを用いるものと,
ロッキングシフトを用いるものと,両方を用意して選択できるようにした.
ISO 2022のエンコーディングにバグがあった.
(擬似文字集合の切り換えの際に不要な指示を行なっていた.)
rawモードにおいて,文字集合のバイト数が表示幅より多い場合,
表示ずれを起すバグがあった.
- ver 3.9beta8 (Nov.8,1996)
ASCII端末用にraw encoding/decodingを加えた.
これまでMSDOS版で用意していたFMR-CARD版, PC9801版を廃止した.
screen.cから表示関係の関数を分離してdisplay.cを作った.
- ver 3.9beta7 (Nov.7,1996)
FreeBSD用のコードを加えた.
ファイルの最後を示すフラグを誤ってファイルの途中で立てていた.
beta5の(ちょっと)高速化がやっぱりバグっていた.直したつもり.
オプションを環境変数からも指定できるようにした.
画面サイズをオプションから設定できるようにした.
端末制御に行の削除/挿入の機能がないことを示すオプションを-Zに変更した.
このバージョンは1度配布可能状態に置いてから,
再び修正を加えて同じバージョンとして新しいものを置いております.
(こちらのログによると,暫定beta7をgetなされた方はいらっしゃらない
ことになっていますので,問題ないかと思います.)
- ver 3.9beta6 (Nov.7,1996)
UNIX版をコンソールで動かすことを忘れていた.これを直した.
SunOS (X, Console),
NEWS5000 (SunのXからremote loginした状態),
古いRISC News (X, Console),
古いCISC News (X, Console),
Solaris (X, Console),
HP-UX (X, Console),
IRIX (X),で各々,動作確認した.
次のコマンドを追加した.
gで行頭へジャンプ,数字+gで行番号へジャンプ,
Qで終了するようにした.
- ver 3.9beta5 (Nov.6,1996)
あまりにlvが遅いため,ちょっと高速化した.
(こういう-おぷちまいず-をやると,たいていバグが混入します).
- ver 3.9beta4 (Nov.5,1996)
いくつかのソースのファイル名を変更した.
(正確には,分かれていたコンソール関係のソースを1つにまとめた).
コンソール関係の関数名をプリフィックスConsoleに変更した.
(以前はDisplayだった).
MSDOS版でもキーボードインターラプト処理をするようにした.
読み込んだ行数の数え方がバグっていたので修正した.
- ver 3.9beta3 (Nov.4,1996)
論理行の最大バイト数を1023byteにした.
また,そこから次のLFまでの,
これまで無視されていた残りの文字を『次の行』として読めるようになった.
ファイルの読み込み中などに,
キーボードインタラプトを受けつけるように変更した.
- ver 3.9beta2 (Nov.4,1996)
3.9beta1はEUCのデコードがバグっていた. (気づかなくて御免なさい.)
サスペンドする際に画面をフラッシュしていなかった.
C-g を『lvの終了』から『ファイル情報(行数など)の表示』に変更した.
iso-2022-7bitで96文字集合を出力する場合,
これまではG1集合とロッキングシフトを組合せて用いていたが,
G2集合とシングルシフトを使うように変更した.
コード系の自動選択で,
判断のために読み込むファイルのサイズに上限を設けた.
現在はファイル先頭の32768バイト(てきとーっす).
行番号指定の不都合を直した.
- ver 3.9beta1 (Nov.2,1996)
画面サイズの変更に対応した.
base64, quoted-printable のコードを加えた.
フィックスしたバグは次の通り.
テンポラリファイルが消されなかった.
不正なESCシーケンスをスタンドアウトしていなかった.
エンコード中に運が悪いとsegmentation faultを起す可能性があった.
全ての文字を制御文字と同様に表示できるようにした.
ver 3.8 は飛ばす.
- ver 3.8beta1 (Oct.25,1996)
UNIX 用のコードを加えてベータ公開.
- ver 3.7
lv を機能アップして単独で公開. ここからリリースノートを付する.
- ver 3.7 以前
nrt のオマケとして配布.