/*
			LHBkUp.X	Version 1.39

    LHa(or tar+compress or gzip)を使ってHDDのバックアップを取るツール

	Copyright (C) 1992,93,94,95   田辺 英昭 (Hideaki `ArctanX' TANABE)

		「LHBkUp.Xのバージョンアップ履歴」
*/


こんにちは、ArctanX です。

  LHBkUp.X を 今回初めて入手した人以外の人は、必ず読んで下さい。旧バージョン
と指定の仕方等、異なる点があります。また、今回初めて入手された人もできれば、
読んでおいた方が、より、このツールをよく知ることができると思います。
(LHBkUp.DOC はあまり分かりやすく書いてないし、こちらにしか書いていないこと
もあるので)

  特に、冷やかし半分でダウンしたのではなく、本気でこのツールを使うつもりのあ
る人は、必ず読んで下さい。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.38 -> Ver 1.39)		1995/03/26

・リストア先に存在しないディレクトリ名を指定した場合には、自動的にそのディレ
  クトリを作成してからリストアを行うようにした。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.37 -> Ver 1.38)		1995/02/19

・バッチ処理等で使えるように、[Y / Others] で全てに 'Y' を指定したものと見な
  す -y オプションを強化しました。-y0 が従来の -y と同じで、バックアップ開始
  時だけは確認を求めます。-y1 で完全無人動作が可能になります。ただし途中でエ
  ラーなどが起こってもリカバーできませんので利用する場合には十分注意して下さ
  い。この -y1 による無人自動作業を夜中にタイマー起動で行なうと
  (autoexec.bat などで起動する)、定期的にバックアップを取ることができます
  (バックアップ先が HDD or MO でないと難しいですが)。(ドキュメント参照)
  (Thanks to GOTOさん@niftyserve)

・メディアのチェックを大幅に強化しました。9SCDRV(6no8rou 氏作)に概ね対応し
  ました(多分)。これで「その他の媒体」が表示されることは相当少なくなるでしょ
  う。ただし空き容量のチェックは 1221KB / 1427KB の 2 種類しかないので、それ
  以外のフォーマットのフロッピーを使用する場合には、-m オプションでそのメディ
  アの最大空き容量を指定する必要があります。
  (Thanks to 三木 享さん@niftyserve)

・-l オプションで各バックアップアーカイブのファイル内容リストを消去せずに残
  せるようになりました。LHBkUp.X 起動時のカレントディレクトリに生成されます。
  (ドキュメント参照)(Thanks to 福間 田佳士さん@niftyserve)

・バックアップ元がディレクトリの時に、パス名の最後に \ や / を付けなくても大
  丈夫になりました(2年半ぶりの改善(^^;))。

・-V オプションでバージョン表示するようになりました。(そうでないときにも出
  てくる場面は多いので必要ないかも知れませんが(笑))

・エラーメッセージが若干日本語化されました。

・リストアの時も作業終了時に作業にかかった時間を表示するようになりました。

・リストア時に XX.X の代りに lx.r も使えることを確認しました。-X オプション
  で lx を指定して下さい。

・lhbkup -h で -- more -- が表示されている時に「Q」キーを押すとその場でヘル
  プ表示を終了させることができるようにしました。

・細かいバグ取りをしました。

・LHBkUp.HIS がバージョンの新しい順に書かれるようになりました。


★最近非常に忙しいので、本バージョンはテスト実行の回数がかなり少ないです。本
  来は十分テスト実行を行い、バグを取ってからリリースするべきものですが、テス
  ト実行を行なう時間が取れないためにリリースが遅くなるのも問題だろうと考え、
  とりあえずリリースすることにしました。バックアップという作業は個人の環境に
  かなり左右されるので、私の環境では発生しないバグが他の方の環境下では発生す
  ることが十分に考えられます。そのようなバグは私の環境下ではなかなかチェック
  できないので、とりあえずリリースして、利用者各々の環境でテストしていただい
  て、バグをたたき出して戴く以外にないのではないかと考えています。「利用の際
  には十分に注意すること」を徹底させて下さい。また、バグレポートはどんどん、
  お寄せ下さい。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.36 -> Ver 1.37)		1994/07/31

・LHa のバージョンアップに伴い、ルートディレクトリを保存せずにアーカイブを作
  成できるようになったので、それに対応しました。(Thanks to ともちゃん氏)

・上記により、 XX.X でのリストアが(不十分ではありますが)可能になったので、
  対応しました。リンクファイルや実行属性を持ったファイルがなければ、XX.X で
  リストアできます。ただし、ディレクトリのタイムスタンプは再現されませんので
  ご注意下さい。(-x / -X オプション)

・condrv.sys  のバックログの制御をするようにしました。これにより、バックアッ
  プ中の画面の様子がバックログに保存されなくなりました。(デバッグモードの場
  合を除く)

・プログラムの見直しにより、機能追加をしたのにも関わらず、実行ファイルが 3KB
  程小さくなりました。

・他にも若干の手直し(リストアルーチンを中心に)を行なったのですが、どこを直
  したのか、忘れてしまいました。(^^;)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.35 -> Ver 1.36)		1994/03/12

・画面の色を環境変数でセットできるようになりました。ver 1.35 でも可能だった
  のですが、インプリメントが不十分だったので直しておきました。(ver 1.35 で
  サポートするつもりだったのに、途中まで作っていながら忘れてしまい、そのまま
  リリースしてしまいました(^^;;)。)

・画面の色が自由に変えられることに伴い、起動時・終了時の画面の初期化関係を直
  しました。これでグラフィック画面に絵を表示したまま起動することもできます。
  (一応チェックはしましたが、私が持っている絵のデータは少ないのでうまくいか
  ない場合もあるかも知れません。その場合にはご連絡下さい。)
  背景の色を透明(黒)にすればグラフィック画面が見えるようになるはずです。

・ファイルリストにディレクトリ名も書き込めるようにしました(-p オプション)。
  LHa モードの場合にこれを使うと、-lhd-(ディレクトリ書庫)形式でアーカイブ
  が作られますので、リストア時にディレクトリのタイムスタンプも元に戻ります。
  (Thanks to こぺる氏)

・環境変数に関するドキュメントを新しく書きました。(LHBU_ENV.DOC)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.34 -> Ver 1.35)		1994/01/04

・LHa x によるリストアの時に、-a をつけてしまうと、ファイル属性が復元されな
  いことがわかったので、リストアの際には -a をつけないようにしました。これで、
  LHa でもファイル属性を含めて、完全にリストアできるようになりました。(LHa
  の x は -a を含んでいました。もっとしっかり LHa のドキュメントを読めば良かっ
  た(どうもすみません)。)

・-m オプションをつけていると、バックアップ開始のメッセージ出力中にバスエラー
  がでるので直しました(なんでこんなバグが・・・すみません)。

・バックアップ先を2つ指定した場合には、1FDD or 2FDD モードになりますが、こ
  の時、バックアップ先に指定されたドライブがメディア交換できない媒体(RAMDISK
  / HDD / CD-ROM?)だと、バックアップ中にメディアの交換ができなくなってしまう
  ので、バックアップ前にチェックして、警告を出すようにしました。

・実行ファイル名を LHRstr.X にリネームしたり、リンクを張ったりすると、-r 
  (リストアオプション)がセットされていることになるようにしました。

・LHa 使用時に、LHa がテンポラリを作るパスとバックアップ先が同じパスの場合
  (通常はあり得ませんが、HDD にアーカイブを作る場合には可能性がある)、作成
  したアーカイブファイルをコピーできずに(同一パスだから)、コピーが終ったも
  のと勘違いして、アーカイブファイルを削除してしまう不都合点を直しました。

・バージョンアップとは関係ないですが、バックアップ先にMOを指定しておくと、
  MOが一杯になった時に、MOもイジェクトできることがわかりました(MOドラ
  イブの機種によってはできないかも知れませんが)。MOは小さなファイルをたく
  さん書き込もうとすると、非常に遅くなるので、本プログラム等でひとつの大きな
  ファイルに固めてから書き込むようにすると、バックアップにかかる時間が短縮さ
  れるかも知れません。

・他にも細かい点を直したような気がしますが、時間が経ってしまったので忘れてし
  まいました(^^;)。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.33 -> Ver 1.34)		1993/10/15

・-m オプションがついている時には、2HD/2HDE などのメッセージ表示を行わないよ
  うにしました。

・リストアの時に、リストア先にディレクトリ名を含めることで、本来ルートディレ
  クトリに作成されたサブディレクトリのバックアップ内容を別のディレクトリにリ
  ストアできるようになりました。(リストアではなく、リストラなのかも(笑))

・リストアの時に、使用するバックアップアーカイブファイルのファイル名が「リス
  トア元」のところに表示されるようになりました。

・gzip でのリストアの時に、gzip 1.2.4(X6_01) 以降では、一部のオプションが変
  更になったため、うまく動作しないバグを fix しました。使用する gzip は最新
  でなくても、最新のひとつ前くらいなら、問題なく動作するように・・したはずだっ
  たのですが、gzip 側にもバグがあったため、結局 gzip 1.2.4 (X680x0_02 / 
  X68030_02) 以降でないと、動作しなくなってしまいました。gzip はこのバージョ
  ン以降をお使い下さい。

・LHa 用テンポラリ領域をフロッピー1枚分確保することのできない環境に対処する
  ため、 -f  でテンポラリ領域の空き容量をセットすること
  ができるようにしました。自分でテンポラリ領域の空き容量を調べてから、それ以
  下の大きさでセットして下さい。ただし、LHBkUp.X がテンポラリファイルを作成
  するパスと同じ場合には、LHBkUp.X のテンポラリファイルにも容量を取られます
  ので、空き容量をフルに -f でセットしてしまうと、結局足りなくなりますから、
  ご注意下さい。

・フロッピーに LHa でバックアップをする場合に、フロッピー1枚には入り切らな
  いアーカイブファイルがテンポラリ上でできてしまうと、LHa が作業ファイルを残
  したまま異常終了してしまうので、その後、その作業ファイルがジャマで作業を続
  行できなくなるという不都合があったので、アーカイブファイルは、まず LHa 用
  テンポラリ領域に作ってから、そのサイズがフロッピー1枚には入り切ることを確
  認したのちに、目的のパスにコピーするようにしました。入り切らない場合には、
  そのアーカイブファイルは削除され、バックアップしそこなったファイルをエラー
  ファイルに書き出して、作業は先に進みます。

・tar + compress を内蔵していると、異常終了したあとの処理に無理があることが
  判明したので、残念ながら tar + compress を tar.x としてチャイルドプロセス
  で呼び出すようにして、 LHBkUp.X 本体から切り放しました。このため、 tar + 
  compress モードは、私が別にリリースしている LHBkUp.X 対応型の tar.x がない
  と、使用できなくなりました(申し訳ありません)。また、フロッピー1枚から溢
  れてしまうような異常終了の場合(tar+compress)、作りかけのアーカイブがそのま
  ま残ってしまうようなので、削除するようにしました。

・tar(圧縮無し)で強制圧縮モードになった時に、拡張子が .tar のままになって
  いるのはまずいので、 .taZ に切り替るようにしました。

・tar(圧縮無し)でバックアップしている最中に強制圧縮モードになると、そのファ
  イルだけは、*.taZ になりますが、リストアの時にそれを把握できずに -Z 無しで
  展開しようとしてエラーになってしまうバグを fix しました。ちゃんと拡張子を
  見て、判断します。

・「バックアップされるファイルの順序がファイルエントリの順になっていない」と
  いうバグ(仕様といえば仕様だったのですが)を fix し(Thanks to こぺる氏)、
  さらにバックアップ対象ファイル指定に MkFileLst.X のような csh ライクなワイ
  ルドカードが使えるようになりました。これにより、全ファイルを指定する場合に
  は、「*.*」ではなく、「*」と指定しなければならなくなったことに注意して下さ
  い。

・他にもいろいろ細々といじったのですが、忘れてしまいました。(^^;)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.32 -> Ver 1.33)		1993/09/06

・リストア機能にいくつか不都合な点があったので、直しました。しかし、まだ、
  HDD から HDD へリストアした場合には、終了させる方法がありません(どうしま
  しょう?)。

・テンポラリファイル(3種類)のファイル名を、環境変数ではなく、オプションで
  指定するようにしました(-E, -F, -L)。また、テンポラリファイルを作るパス名
  も、環境変数ではなく、オプションで指定するようにしました(-W)。(Thanks to
  こぺる氏)

・1回に処理するファイル数の上限の指定を、環境変数 "lhbu_max" で指定するので
  はなく、 -M オプションで指定するようにしました。

・Ver 1.27 -> 1.28 のところに書いた「水増し率」を環境変数 "lhbu_margin" で指
  定するのではなく、 -C オプションで指定するようにしました。

・環境変数 "lhbu_opt" にいつも使うオプションを指定しておくと、コマンドライン
  の最後に追加されるようにしました。(Thanks to こぺる氏)

・-m オプションでメディアの容量を(2HD / 2HDE 以外に)変えることができるよう
  にしました。 -m713 で 2DD(9 セクタ)、とかできます。また、-m0 と指定するこ
  とで、容量を無制限にできます(本当は無制限ではなくて、1TB なのですが(笑))。
  HDD の空きパーティションに、超巨大バックアップアーカイブファイルを作る場合
  等に使えます。(Thanks to こぺる氏)

・バックアップアーカイブファイル名は "No1_1.Lzh" など、最初が "No" で固定さ
  れていましたが、 -N オプションで、好きな名前に変えることができるようになり
  ました。(Thanks to こぺる氏)

・実行属性ビットやシンボリックリンク属性のビットが立っているファイルが、ファ
  イル検索に引っ掛からないバグを直しました。(Thanks to JACK氏)

・tar + compress モードで、ファイルの実行属性やリンク属性、読み出し専用属性、
  隠しファイル属性、システムファイル属性がうまく保存、復元されていないバグに
  対処しました。

・ファイル名やパス名等を、内部で強制的に大文字に直していましたが、これをやめ
  ました。

・コマンドライン解析ルーチンを自作のものから、X680x0 libc の getopt に変更し
  ました。

・オプションの増加に伴い、オプションの大文字小文字を区別するようになりました。
  注意が必要です。

#注意#

  前回リリース(ver 1.29) から、大幅なプログラムの変更を伴っているので、エン
バグの可能性も高いかと思われます。使用の際には、十分ご注意下さい。このプログ
ラムは無保証です。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.31 -> Ver 1.32)(非公開)	1993/09/02

・リストア機能をつけました(-r オプション)。2FDD で自動的にフロッピーがイジェ
  クトされてどんどん作業を進められること以外は、自分で LHa 等を使ってリスト
  アするのと大した差はありません。(優秀なファイラーを使った方が楽かもしれな
  い。)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.30 -> Ver 1.31)(非公開)	1993/08/30

・tar + compress でバックアップした場合、No1_2.taZ 以降のファイルが壊れてい
  て、リストアできないという痛恨なバグが見つかったので、それに対処しました。
  損害を受けた方、大変申し訳ありませんでした。m(__)m

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.29 -> Ver 1.30)(一般非公開) 1993/08/24

・何らかの理由で、LHa / tar+compress / gzip が異常終了した時には、そのバック
  アップできなかったファイル群を「$$$$ERR.LST」に記録して、作業をそのまま続
  行するようにしました。 LHBkUp.X 作業終了時に、$$$$ERR.LST が残っていたら、
  その中に書いてあるファイルは、バックアップされていませんから、何らかの手段
  で別途、バックアップして下さい。

  異常終了の原因は、テンポラリが溢れた、とかメモリが足りなくなった、等が考え
  られます。

・テンポラリファイル「$$$$FILE.LST」「$$$$LHA.LST」「$$$$ERR.LST」の各ファイ
  ル名が環境変数によって、自分の好きなファイル名に変えることができるようにな
  りました。それぞれ、環境変数「lhbu_file」、「lhbu_lha」、「lhbu_err」にセッ
  トするようになっています。

・テンポラリファイル「$$$$FILE.LST」「$$$$LHA.LST」「$$$$ERR.LST」を作成する
  パス名は、前バージョンまでは、環境変数「lhbkup」にセットしておくことが義務
  付けられていましたが、この環境変数名が「lhbu_work」に変更され、また、この
  環境変数がセットされていない場合には、環境変数「temp」を参照するようになり
  ました。(「lhbu_work」も「temp」もセットされていない場合には、エラーにな
  ります。)

・1回の処理で、あまりにも多くのファイル数をインダイレクトファイル(
  $$$$LHA.LST)として gzip に渡すと、gzip がメモリ不足で異常終了してしまうこ
  とがわかったので、環境変数「lhbu_max」に1回に処理するファイル数の上限を指
  定できるようにしました。デフォルトでは、1221個(2HD)、1427 個(2HDE) ですが、
  これを 500 位にすれば、メモリ不足にはならないと思います(使っているマシン
  のメモリ構成にもよりますが)。

・フロッピー1枚分を越えるファイル(辞書等に多い)に対しては、たとえ、 -n
  (非圧縮)オプションがついていても、強制的に圧縮して、なんとかフロッピー1
  枚に納まるアーカイブファイルを作成しようと試みるようにしました。圧縮しても、
  やっぱりフロッピー1枚に収まらなかった場合には、そのファイルはバックアップ
  失敗として、ファイル名を $$$$ERR.LST に書き出します。その後、作業を先に進
  めます。

    -i オプションをつけておくと、-n オプションがついていて、フロッピー1枚を
  越えるファイルを見つけた場合には、その場でバックアップを諦めて、ファイル名
  を $$$$ERR.LST に書き出し、作業を先に進めます。

・オプションに関するドキュメントを新しく書きました。(LHBU_OPT.DOC)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.28 -> Ver 1.29)		1993/07/05

・LHBkUp(tar + compress mode) が判断する「圧縮ファイルの拡張子」は、 
  .LZH,.LZS,.ZIP,.PAK,.PAC,.ARC,.ZOO,.Z,.GZ,.TGZ,.TAZ,.ISH ですが、環境変数
  lhbu_suf にこれ以外に圧縮ファイルとして認識して欲しい拡張子をセットできる
  ようにしました。ピリオドも含めた上で、

	C:\>set lhbu_suf=.x .pic .pcm .fmt .pdx .gif

    のようにセットして下さい。各拡張子の間は、スペース or セミコロン or コン
  マで区切って下さい。ただし、上記はあくまで例ですから、pic ファイル等が本当
  に compress を使うと元ファイルより大きくなってしまうのかどうかは、私は確認
  していませんので、各自で調べた上で、元ファイルより大きくなってしまうような
  ファイルの拡張子を、セットして下さい。

・tar+compress によるリストアの際に、ワイルドカードが使えるようになりました。
  しかし、特に便利になったわけではありません(LHBkUp.DOC 参照)。とりあえず、
  ワイルドカードをうっかり指定するとバスエラーになるのを回避しただけでも意味
  があるでしょう。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.27 -> Ver 1.28)		1993/06/29

・tar + compress モードで LZH ファイル等の圧縮ファイルをバックアップすると、
  元サイズよりアーカイブファイルの方が大きくなってしまい、フロッピーから溢れ
  てしまい、ハングアップしてしまうことが判明しました。そこで、tar + compress
  モードで圧縮ファイルの拡張子を持っているファイルに対しては、調べたファイル
  サイズを水増ししてからバックアップ作業に入るようにしました。(THANKS to 
  ASA さん)

    「水増し」というのは、「圧縮によって元ファイルよりこの位は大きくなるかも
  しれないので、下駄を履かせておこう」というもので、デフォルトで、 1.55 倍に
  してあります。(いくつかの LZH ファイルについて実験してみたところ、平均
  1.4 倍位に大きくなるので、ちょっと安全マージンを取って 1.55 倍にしました)

    しかし、もし、これだけの水増し率をもってしても、溢れてしまった場合のため
  に、水増し率(デフォルトで 1.55 倍)を環境変数"lhbu_margin"にセットできる
  ようにしてあります。 100 倍した値を整数でセットして下さい。(例:C:\>set 
  lhbu_margin=155)

    「ギリギリまで詰め込みたい」という場合には、1.40 倍(140)位をセットして
  みるといいかもしれませんが、モノによっては溢れるかもしれません。

    LHBkUp(tar + compress mode) が判断する「圧縮ファイルの拡張子」は、
  .LZH,.LZS,.ZIP,.PAK,.PAC,.ARC,.ZOO,.Z,.GZ,.TGZ,.TAZ,.ISH です。環境変数
  lhbu_suf にこれ以外に圧縮ファイルとして認識して欲しい拡張子をセットできる
  ようにしようと考えていますが、まだ、未サポートです。

★いずれにしても、LZH などの圧縮ファイルを tar + compress でバックアップする
  のは非常に効率が悪いので、LZH などだけは別に保存してから、それ以外のファイ
  ルだけをバックアップするようにした方が、よいと思います。

・gzip.x 側でオプションに変更があったため、それに対応しました。それに伴い、
  使用できる gzip.x は、ArctanX 版の 1.2.2(X6_02) 以降だけになりました。ご注
  意下さい。

・「保存されるファイル名が必ず大文字に直されてしまう」というバグ(というか、
  本当は仕様だったのですが)を直しました。HDDに保存されている時のままのファ
  イル名になっているはずです。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.26 -> Ver 1.27)		1993/06/13

・圧縮方法として、gzip(GNU zip)をサポートしました。本当は、gzip を LHBkUp.X
  内部に tar + compress と同様に、組み込もうかと思ったのですが、gzip の著作
  権の都合上、作者の許可がないと組み込めないようなので、LHa 同様に、チャイル
  ドプロセスで呼び出すようになっています。したがって、gzip.x にはパスが通っ
  ている必要があります。 gzip.x は ArctanX 版の 1.0.7(X6_09) 以降である必要
  があります。

    しかし、1.0.7(X6_09) から 1.1.1(X6_01) までは gzip.x のプログラムの都合
  上、フロッピーにアーカイブを作成すると、非常に遅くなります。(実は LHa よ
  り遅くなってしまう。もちろん、圧縮が遅いのではなく、フロッピーへのファイル
  アクセスが多すぎるので遅くなるのである。)そこで gzip.x の方に改良を加えた
  ので、1.1.1(X6_02) 以降だと、もっと高速にバックアップできます。

・画面の表示内容を改良しました。オプションはすべてわかるように表示し、バック
  アップするファイルの残り数や指定したタイムスタンプ等も、画面に表示するよう
  にしました。また、アーカイブの拡張子から、どの圧縮ツールを使っているかもわ
  かります。(.Lzh なら LHa、.tar なら tar(圧縮なし)、.taZ なら tar + 
  compress、 .gz なら gzip です。)

    「バックアップするファイルの残り数」は「候補の数」です。実際には、タイム
  スタンプ比較でバックアップの対象にならないファイル等も含まれています。その
  ため、「実際にフロッピーにバックアップされたファイル数」ではないので、「あ
  とどのくらいでバックアップが終るか」の目安でしかありません。ご注意下さい。

・その他、表示メッセージの強化、使い勝手の悪い場所を手直ししました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.25 -> Ver 1.26)		1993/02/23

・圧縮方法が、LHa 以外に、tar + compress も選べるようになりました。具体的に
  は、-s オプションを指定すると、tar + compress モードになります。LHa より必
  要なフロッピーの枚数は増えますが、速度はかなり速くなります。

・-s (Silent) オプションが、-q (Quiet) オプションに変わり、その代りに -s オ
  プションが、 tar + compress 相当のルーチンで圧縮するモードの指定になりまし
  た。(一応、high "S"peed のつもりです)

    tar + compress モードでのバックアップに関しては、LHBkUp.DOC に色々な注意
  点を書いてありますので、よく読んでから使って下さい。

 ちなみに tar + compress 相当のルーチンとして、

	Tape ARchiver for Human68K, ver 1.99.09
	Written by kmori, AssistantIO, atnaS, and Mad Player

 のソースの一部(ほとんど全部という話もある)を使用させていただきました。

・-l オプション(LHarc 互換モード)を廃止しました。


#注意#

  今回初めて搭載された tar + compress ルーチンはまだ、チェックの回数が少なく、
安定した動作をするかどうかや、正しくリストアできるかどうかのチェックが甘いの
で、使用する場合には(LHaの場合以上に)注意して、使用して下さい。本プログ
ラムは無保証です。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.24 -> Ver 1.25)		1993/01/09

・作業時間表示の秒の桁が必ず02秒になっているバグ(^_^;;)を fix しました。

・−Yオプションで、作業中に出てくる(ことがある)「 [Y / Other] の質問」に、
  すべて「Y」で答えたことにすることができるようにしました。危険なオプション
  ですから、使う時には十分注意して下さい。

・−Dオプションで、既存の圧縮ファイルリスト($$$$FILE.LST)を直接読みにいく
  ようにしました。

    具体的には、例えば、DI などのファイラーでバックアップしたいファイルをマー
  クして、そのファイル名(フルパス)を環境変数 lhbkup が指しているパスに、
  $$$$FILE.LST というファイル名で書き込んでおいてから、 LHBkUp.X を−Dオプ
  ション付きで呼び出せば、バックアップできる(であろう)という訳です。

    この場合は、「バックアップ元」に何を指定しても意味がないので(既存の
  $$$$FILE.LST を読みにいくから)、適当に指定して下さい。(ドライブ名として
  正しい指定をしてあれば、何を指定しても構いません。)

  $$$$FILE.LST のファイルフォーマットは、以下のようになっています。
 (ファイルフォーマット等という大げさなものではないが)

(この $$$$FILE.LST は、あくまでサンプルです)
-------->8-------->8--- 切り取りせん --->8-------->8-------->8-----
I:\C_FILE\GAMES\ROBOT68K.LZH
I:\C_FILE\KADAI\ENSHUU1.LZH
I:\C_FILE\TOOLS\LHBU125\MAKEFILE
I:\C_FILE\TOOLS\LHBU125\MAIN.C
I:\C_FILE\TOOLS\INFO.C
I:\C_FILE\TOOLS\ARCTAN.X
I:\C_FILE\GTOOLS\TO2.X
I:\C_FILE\MTOOLS\PDX2PCM.X
I:\C_FILE\NAGDRV\UP\NAGLIB.A
I:\C_FILE\NAGDRV\UP\NAGLIB.H
I:\C_FILE\NAGDRV\UP\NAGLIB.MAN
I:\C_FILE\ETC.LZH
I:\TEST.DOC
-------->8-------->8--- 切り取りせん --->8-------->8-------->8-----

    要するに、ファイル名がフルパスで1行1行書いてあるだけです。残念ながら、
  私はDI.ENVの書き方がよくわからないので、サンプルを紹介することができ
  ません。(誰かやってみてくれぇ)(マークしたファイル群を上のようにファイル
  に書くスクリプトをENVファイルに入れるだけなんだけどね。)

    これがうまくいくと、ワイルドカードだけでは指定できないファイル群や複数の
  ドライブにまたがったファイル群のバックアップもできる(はず)です。うまくいっ
  たら、ぜひレポート下さい。

    また、ls -1 の出力を、$$$$FILE.LST にリダイレクトして利用するといった使
  い方も考えられます。(考えただけで試していないので、何とも言えないけれど
  (^^;;))

    取り敢えず、コマンドラインの引数にファイル名(複数)を指定すると、それを
  環境変数 lhbkup の指しているパスに、「$$$$FILE.LST」というファイルで書き出
  す補助ツール「MkFileLst.X」を作ってみましたので、お試し下さい。これを使う
  ならば、DI.ENVの「マークファイルをLHaで圧縮する」のところをちょっ
  といじれば、できると思います。うまくできたら、そのENVファイルをアーティ
  クルの中ででも紹介してください。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.23 -> Ver 1.24)		1992/12/12

・作業時間計測をつけてみました。あまり意味はないです。(ぉぃぉぃ)

・指定したタイムスタンプ以後のファイルだけをねらってバックアップできるように
  なりました。指定の仕方がちょっと妙ですが、勘弁して下さい。「日付も時刻も6
  桁で合せて12桁」が基本です。(−Tオプション)

・LHarc互換モード(−lh1−)でバックアップすることができるようになり
  ました(−Lオプション)。この方が速度が速くなると思ってつけてみたのですが、
  小規模なバックアップでは違いがわかりません。このオプションが有効に働くこと
  があったら、報告して下さい。意味がなさそうなら、そのうち外します。

・config.sys の LASTDRIVE が Z: 以外になっているとうまく動かないバグを直しま
  した(多分)。

・仮想ドライブをカレントドライブにして、LHBkUp.X を実行するとうまく動かない
  バグを直しました、と言いたいところなのですが、実際には、仮想ドライブをカレ
  ントにした場合は、実行できないようにしました、というのが正しいです。という
  のも、ver 1.22 以降、プログラム中でいったん仮想ドライブ等を解除してからセッ
  トし直しているので、カレントドライブが仮想ドライブになっていると、仮想ドラ
  イブを解除する時にエラーになってしまうからです。あまり、良い対処の方法では
  ないですが、勘弁して下さい。

・subst 周りのエラーメッセージが実は読めない(画面のパレット等の都合で)こと
  がわかったので、直しておきました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.22 -> Ver 1.23)		1992/11/26

・オプションの指定に、`/'が使えなくなりました。 `-'を使って下さい。

・その代わり、パス名の指定に`\'のかわりに`/'も使えるようにしました。その筋
  (?)なシェルを使っている人には、都合がいいかもしれないです。

・LHa.X を直接呼ぶようになりました(前バージョンまでは、command.x を通してい
  た。)。シェルが command.x でない人でも、使えるようになったと思われます
  (前バージョンまでは、 command.x 以外のシェルを使っていても動いたのでしょ
  うか?)。

・フロッピーの交換(イジェクト)時などに、ビープ音が出せるようになりました。
  (−Bオプション)これで、バックアップ中にマシンの前にいなくても、フロッピー
  の交換に気づかないということが(少しは)なくなるかもしれません。

・全ファイルを非圧縮でバックアップできるようになりました。(−Nオプション)
  速度は当然、飛躍的に速くなります。また、1KB以下のファイルがたくさんある
  場合等は、全ファイル非圧縮でも、copyall.x よりたくさんフロッピー1枚にバッ
  クアップすることができます。(クラスタギャップが大きくなるから)

・無条件転載を(一応)解禁した。バグ出し協力者への配布以外の目的でも転載が可
  能になりました。(もちろん、商行為等はしてはいけませんよ)

・今回のバージョンアップは1ヶ月以上ソースを見ていなかったので、結構忘れてい
  るところがあったりして、意外と危ないかもしれません。(ぉぃぉぃ)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.21(非公開)-> Ver 1.22)	1992/10/03

・仮想ドライブには対応していたのですが、仮想ディレクトリには対応していないこ
  とが判明しました。

    で、あまりやりたくなかったのですが、プログラム内部で一時的に仮想ドライブ、
  仮想ディレクトリを解除して、本来のメディアを調べ、その後、元どおりに仮想ド
  ライブと仮想ディレクトリを設定することにしました。もっと、エレガントな方法
  をご存じの方は、私に教えて下さい。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.20 -> Ver 1.21(非公開))	1992/09/27

・仮想ドライブを指定すると、そのメディアがいかなるものであっても、「その他の
  媒体」と出てしまうことが判明したので、SUBST 対策を施してみました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.15 -> Ver 1.20)		1992/09/24

・カッコイイ(?)画面を作りました。私は絵心の全くない人間なので、レイアウト
  や色使いなど、変なところもあるかと思いますが、大目に見て下さい(PC600
  1みたいな色だな(笑))。

・Ver 1.15 の「変なところで容量チェックをしてしまい、勝手にフロッピーをイジェ
  クトしてしまう」バグを取りました。

・メディアのチェックを付けました。指定したドライブが、FDD なのか、HDD なのか、
  RAMDISK なのか、などをチェックします。しかし、SCSI の HDD と MO のチェック
  は、私が持っていないので、動作確認できていません。もし、これらの外部記憶装
  置を持っている方は調べてみて下さい。また、CD-ROM はメディアチェックしてい
  ません(使う人はいないはずですが)。おそらく、「その他の媒体」になるでしょ
  う。

・HDD にアーカイブファイルを貯め込むモードでバックアップしている時に、HDD の
  残り容量がフロッピー1枚分を切ると、警告が出ます。「あとちょっとで終るから、
  なんとか大丈夫」と思ったら、続行してみて下さい。続行しなければ、そこでバッ
  クアップは(途中なのに)終ってしまいます(ひどい話だけれど、しかたがない)。
  続行したのに、容量が足りなくなった場合には、LHa がエラーを起こすので、その
  場で LHBkUp.X も終ってしまいます。(これも仕方がない)

    したがって、HDD にアーカイブを貯め込む時には、空き容量が十分にあることを
  確認してから、始めるようにして下さい。

・他にも(忘れてしまったけれど)、あちこちのチェックルーチンを強化してありま
  す。ムチャな指定の仕方をしたりしても、多少は耐えられるようになったはずです
  (前と比べての話ですが)。

・「/S」オプションのデフォルトが「LHa の実行の様子を表示する」になりました。
  (前バージョンまでは「表示しない」がデフォルトでした)

・異常終了した時に、テンポラリファイルが残っていたり、FDD のアクセスランプが
  点滅したままになってしまったりするバグを取りました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.14 -> Ver 1.15)		1992/09/20

・LHa.X を実行する直前に、Lzh ファイルを作成するドライブに、メディア(フロッ
  ピー)が入っているかどうかをチェックするようにしました。

・さらに、そのフロッピーの中身が空であるかどうかを、チェックするようにしまし
  た。具体的には、2HD モードでは 1221KB 、 2HDE モードでは 1427KB の空き容量
  があるかどうかをチェックして、空き容量が足りない場合は、メッセージとともに、
  そのフロッピーをイジェクトするようにしました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.13 -> Ver 1.14)		1992/09/14

・「/Z」オプションをサポートした時に、デフォルトを「No1_1.Lzh」(すなわち
  1から)にしたことによって、 C:\>lhbkup e:\*.* a: b:   などとしたときに、
  いきなり、「No1_1.Lzh」が「b:」に作られてしまうというバグがあることがわか
  りました。で、それに対処しました。もう大丈夫です。(たぶん)

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.12 -> Ver 1.13)		1992/09/13

・「漢字入りのファイル名が化けてしまう」の理由がわかったので、対処しておきま
  した。

・2HDE フォーマットのフロッピーの空き容量は、1440 KB ではなくて、 1427 KB だっ
  たことが判明したので、プログラム中のリミッタを 1427 KB に変更しました。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.11 -> Ver 1.12)		1992/09/11

・機能の増加により、オプション(スイッチ)が増えました。

・1440 KB フォーマットのフロッピーに対応した。HDDにアーカイブを貯め込む時
  にも、対応します。(/Eオプション)ただし、挿入されているフロッピーが、本
  当に1440 KB フォーマットなのかどうかはチェックしていませんから、注意して下
  さい。

・LHaの実行中の様子を表示できるようになりました。作業中に何も表示されない
  のが不安な人は、お試し下さい。(/Sオプション)

・作成されるLzhファイルの名前を、No0_0.Lzh からにでも、 No1_1.Lzh からに
  でも、できるようになりました。(/Zオプション)

・バックアップ元のファイルの指定の仕方について、改良しました。 C:\lhbkup
  e:\*.* a: b: と C:\lhbkup e:\ a: b: は同じ意味になりました。すなわち、最後
  が「¥」で終っていれば、暗黙のうちに「*.*」を指定したことになるわけです。
  したがって、あるディレクトリだけをバックアップする場合にも、 C:\lhbkup
  e:\tools\*.* a: b: と書いていたものが、 C:\lhbkup e:\tools\    a: b: と書
  けます。もちろん、今まで通り、*.* まで書いてもらってもかまいません。

    ただし、事故を防ぐ意味でも、¥なしで、 C:\lhbkup e: a: b: という指定はチェッ
  クでハネるようにしてあるので、注意しましょう。(バックアップ先は、FDD モー
  ドである限り(つまり、バックアップ先が2つ指定されているなら)、¥がなくて
  も大丈夫です。(内部で強制的に¥をつけている))バックアップ先がひとつの場
  合(HDD貯め込みモード)には、¥を付けないと、そのドライブのカレントディ
  レクトリに、アーカイブファイル(Lzh)が作成されます。

・コマンドライン解析ルーチンを新しく汎用なものに作り直したので、オプション
  (スイッチ)を指定できる場所が任意になりました。また、複数のオプションを任
  意に組み合わせて使用することも、できるようになりました。これにより、/Cオ
  プション(/Aと/Bを同時に指定したことになる)が、旧/Bオプションと同じ
  (アーカイブ属性を外す)になり、代りに/Bオプションがなくなりました。

・オプションの意味や使い方は、lhbkup /h とすると見られます。かなり詳しく表示
  されるので、心配ないでしょう。今までの usage は、lhbkup[CR] で見られます。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.10 -> Ver 1.11)		1992/09/11

・テンポラリファイルを作るディレクトリとバックアップするディレクトリが同じだ
  と、テンポラリファイルまでバックアップしてしまうバグを fix 。

・ワイルドカードのサポートをしました。したがって、バックアップするファイルの
  指定の仕方が変りました。

	旧:lhbkup e:\tools     a: b:
	新:lhbkup e:\tools\*.* a: b:

    ディレクトリを指定するのではなくて、ファイルを(フルパスで)指定します
  (ドライブ名も必ずつけて)。もちろん、*.* のところを *.doc などにすれば、
  拡張子が *.doc のファイルだけをバックアップできます。

・lhbkup e:\tools\*.doc a: b: と指定した時、e:\tools の下に、サブディレクト
  リがある場合は、そのサブディレクトリの中の *.doc も対象になります。すなわ
  ち、対象となるのは

	e:\tools\*.doc
	e:\tools\test\*.doc
	e:\tools\junk\*.doc
	e:\tools\doc\*.doc

	(サブディレクトリ test, junk, doc が e:\tools の下に
	あるものとします)

 ということです。

・フロッピーの容量限界を 1220KB から、1221KB にした。(もし、溢れてしまうよ
  うな事態が発生したら、ご連絡下さい。)

・パラメータ(パス名やドライブ名)のエラーチェックがちょっとだけ強化された。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.01(非公開) -> Ver 1.10)	1992/09/10

・スイッチをつけました。詳しいことは、lhbkup[CR] として、見て下さい。

・'/b'オプションの意味ですが、アーカイブ属性のないファイルを、1回でもエディッ
  トしたり、何か内容に変更を加えると、勝手にアーカイブ属性がついてしまうので、
  前回バックアップしてから内容に変更があるかどうかを、この属性をチェックする
  ことで、調べることができます。(と私は聞いた。もし違ったら指摘して下さい。)

    で、本プログラムでは、'/a'オプションを付けない場合は、アーカイブ属性のつ
  いていないファイルはバックアップの対象にならないので、前回('/b'オプション
  をつけて)バックアップしてから、1度も内容が変っていないファイルはバックアッ
  プしません。すなわち、前回バックアップしてから新規、あるいは内容に変更のあっ
  たファイルだけを、バックアップできるようになっているわけです。

    そのために、'/b'オプションをつけてバックアップするわけです。このオプショ
  ンをつけると、バックアップの対象となったファイルのアーカイブ属性を自動的に
  消します。したがって、その後、ファイル内容に変更がなければ、次回のバックアッ
  プの際には、そのファイルはバックアップの対象から外されるというわけです。

    なんだか、まわりくどい、うっとうしい説明ですが、ご理解いただけたでしょう
  か?

    そうそう、'/a'オプションをつけた時は、そのファイルにアーカイブ属性がつい
  ていなくても、処理の対象になります。デフォルトでは処理の対象にならない、隠
  し属性やシステム属性のファイルも処理の対象になります。

    このような機能がついたことにより、バックアップしないで欲しいディレクトリ
  は、そのディレクトリに隠し属性か、システム属性をつけておけばいいわけです。

    同じように、バックアップしないで欲しいファイルがあるなら、そのファイルだ
  け、隠し属性かシステム属性をつけておけば、よいわけです。(attrib.x や 
  chmod.x を使ってください。)この場合、'/a'オプションをつけてしまうと全く意
  味がなくなってしまうので、注意して下さい。

#注意#

    以上の文章中で出てきた'/b'オプションは、Ver 1.12 以降は、 '/c'に、さらに、
  Ver 1.23 以降では、'-c'になっています。ご注意下さい。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 1.00 -> Ver 1.01(非公開))	1992/09/09

・環境変数 lhbkup が指しているディレクトリをカレントにして実行しないと正常に
  動作しないバグを fix 。(すんげえ大バグ)

・set lhbkup=c:\temp などとしてあると、最後に \ がついていないので、正常に動
  作しなかった。(set lhbkup=c:\temp\ としていなければダメだった。)これを 
  fix 。

------------------------------------------------------------------------------

LHBkUp.X バージョンアップ情報(Ver 0.00 -> Ver 1.00)

	1992/06/21	試作第1号(Ver 0.00)
	1992/06/29	試作第2号
	1992/09/05	初公開バージョン(Ver 1.00)

  テスト段階で、ほとんど何も機能がついていない。もっと詳しいドキュメントを残
しておけば良かった。(まさかここまで続くとは)

------------------------------------------------------------------------------

    もし、バグを見つけたら、一人で笑っていないで(ォィォィ)私のところまでぜひ、報
  告して下さい。もし、バグらしい症状が発生した場合は、'-v' オプション(本来
  はデバッグ用隠しスイッチ)をつけてもう一度実行して、画面表示メッセージをチェッ
  クしてみて下さい。そのメッセージとともにバグレポートして戴けると、こちらと
  してもデバッグしやすいので、助かります。(-v オプションで表示されるメッセー
  ジはリダイレクトできますが、通常のメッセージはリダイレクトできないので、で
  きれば、condrv.sys 等のバックログを使って、全表示メッセージを送って戴ける
  と助かります。)


  #何でもない時に、'-v'オプションをつけるのはやめましょう。画面が非常にうっ
  #とうしくなります。(^^;)


・転載については、LHBkUp.DOC をごらん下さい。

  バグレポート、その他、ご意見、ご感想、ご不満(?)などありましたら、メール
その他の方法で、お知らせいただけると幸いです。


        ALTA Net           ALTA1565
        Bug-House BBS      BUG0064                   \    \/
        Cecile BBS         CEL0322    Arctan /  \UTMC
        Inside BBS         INSD0053                 ̄ ̄   ̄ ̄
        Palmtown Network   PALM0466   田辺 英昭 (Hideaki TANABE)
        Mapletown Network  MAP2492
        Network-SCoT       SCOT0032
        Nifty Serve        KFA05024@niftyserve.or.jp

(e.o.f)

★LHBkUpのページに戻る


arctanx@hauN.org