●履歴 ●●●1996/12/17頃 ver0.01●●● ・NIFTYのFWINNT LIB#11に初アップロード ●●●1996/12/21頃 ver0.02●●● ・大文字ファイル名が小文字になっていたのを直した。 ・API説明に間違ってLHAの説明を入れていたのを直した。 ・TARのコマンド引数に「"」が含まれていたらうまく処理できないのを直した。 ・他にもあったかも。。 ●●●1996/12/23頃 ver0.03●●● ・TarOpenArchive,TarFindFirstがうまく働かないのを直した。 ●●●1996/12/27頃 ver0.04●●● ・TarFindFirst等を連続して使用できないバグを訂正。 ・FindFirst/FindNextで返す日付の年の部分がおかしいのを直した。 ・pオプションを追加。直接バッファに展開できるようにした。 ・プログラム内のバージョン番号が0.01のままだったのを直した。 ・その他。。 ●●●1997/02/11頃 ver0.10●●● ・今までtar.exe(16bit版tar)を元にしてDLLを作成していたのを tar32.exe(32bit版tar)を元にして書き換えた。これに伴い結構変わったので, versionを0.10とした。 ・Gオプションで展開時,展開先ファイル名が指定されていなくても, 拡張子がgz/z/taz/tgzの場合は展開できるようにした。 ・FDへの物理アクセスが一応できるようになった。(かもしれない) ・tar.gzファイルなどの作成時など,一時ファイルを作らなくなった。 これで結構高速化できたと思う。(確認してないけど。) ・NTFSに対応した。 ・展開時,展開もとファイルがロックされたままなのをなおした。 ・ドキュメント類の書き換え ・その他もろもろ。 ●●●1997/02/12頃 ver0.11●●● ・tar.gz(tgz)で圧縮するとき2回目の圧縮ができないバグ修正 ・TarConfigDialogでバージョン番号を表示する簡単なメッセージボックスを開く。 ●●●1997/02/17頃 ver0.12●●● ・tar.gz(tgz)で圧縮するとき2回目の圧縮ができないバグ修正(今度こそ直ったはず) ・引数に漢字(SJIS)が入ったときを考慮。 ・間接引数(レスポンスファイル)をUNLHA32.DLLと同じように単にコマンドライン引数 に展開するようにした。 ・ワイルドカード(*,?)ルールをUNLHA32.DLLとほぼ互換の方法にした。 *.*ですべてのファイルにマッチするようにした。 ●●●1997/03/08頃 ver0.13●●● ・tar32sdk.txtの中でバッファへの出力方法を「-pxvf foo.tgz」としていたが、vオプションをつけると、余分な情報が書かれるので、「-pxf foo.tgz」に説明を変えた。 ・tar32sdk.txtに参考資料を追加。 ・pオプション(バッファへの出力)が2回目以降うまくいかないのを訂正。 ・nkf32.dllによるファイル名の漢字コード自動変換のサポート。EUCファイル名をSJISに変換するようになる。これでUNIXなどで圧縮した日本語ファイル名が正しく読めるはず。なお、nkfのオプションは「"-s"」とした。このため半角かなが正しく変換されない場合 があります。nkfを制御するためのオプションとして --nkf-get-filename-conversion=[OPTION],--nkf-set-filename-conversion=[OPTION]を作ったので細かい制御はこちらで 行ってください。 ・そこそこエラーコードを返すようにした。 ・その他修正など。 ●●●1997/03/12頃 ver0.14●●● ・100文字以上の長い長いファイル名がFindFirst/Next等でうまく扱えないのを直した。 ・512文字以上の長い長い長いファイル名は512文字で切り捨てて、エラーが起こらないようにした(はず). ・--use-directoryオプションの追加。ディレクトリを展開/圧縮しないでファイルのみ展開/圧縮できるようにした。--use-directory=0 -xvf でunlha32.dllのeコマンドに対応する。また、--use-directory=0 -cvfでunlha32.dllのaコマンドに対応する(はず)。 ・基準ディレクトリをほぼunlha32.dllと同じように指定できるようにした。 (tar -zxvf foo.tgz pathname\ のように) ・展開時ディレクトリが既に存在すると1を返していたが、0を返すように直した。 ●●●1997/04/07頃 ver0.15●●● ・rコマンド(ファイル追加)で1つもファイルがないときは「c」コマンドの動作(新規作成)をするようにした。 ・マルチボリューム(分割ファイル)の場合暴走していたのを、ちゃんと入れ替えのダイアログを出すようにした。 ・「-zxvf uxtl305.tgz appeal\00readme.doc」のようにファイル名リストのディレクトリ区切りに「/」でなく「\」を使っていた場合うまく動作しなかったのを訂正。 ・Gオプション(GZ単独圧縮/展開)時に複数のファイルを指定されたときはエラーを返すようにした。 ・--check-all-pathオプションの追加。--check-all-path=1とすると、ファイル名検索時、厳密にパス名にマッチするかチェックする。これを指定すると、*.*は全てのファイルではなく、一番上のディレクトリのファイルのみにマッチする。 ・TarOpenArchive APIでM_CHECK_ALL_PATH及び、M_CHECK_FILENAME_ONLYのモードが動作するようになった。 ・文章をちょっとだけ変更 ●●●1997/08/25頃 ver0.20●●● ・圧縮時(「c」「r」コマンド)に基準ディレクトリを指定して圧縮できるようにした。・QueryFunctionListで戻り値がすべてFALSEになっていた(^^;;; のを直した。 ・TarGetFileCountがうまく働かないのを直した。 ・kmtar for NTが0.96から0.97になったのでその差分相当を当てた。 ・これに伴い、Aオプションを追加(属性の設定) ・使ってないソースファイル(mfmt.c,tapeio.c)を削除 ●●●1997/08/30頃 ver0.21●●● ・@@による変換方法の指定をやめた(@は使えます)。(メモリがもれていっていたため) ・「x(解凍),t(一覧表示),c(圧縮)」コマンド実行時にWindowを一応表示するようにした。 ・これに伴い--display-windowオプションの追加。--display-window=0で表示しないようにできる。 ●●●1997/08/30頃 ver0.22●●● ・圧縮時に基準ディレクトリがちゃんと働いていないバグ訂正。 ・圧縮時「*.*」がディレクトリにもマッチするようにした。 ・Ver0.21は日の目を見てないかも。。 ●●●1997/09/01頃 ver0.23●●● ・--display-windowオプションを--display-dialogオプションへ変更。すみません(_._) ・TarConfigDialogで設定ダイアログを一応表示するようになった。 ・間接引数の中で空白の入ったファイルを扱うときにうまくいかないバグ訂正。 ●●●1998/01/09 ver0.30●●● ・--display-dialogオプションが効かないバグ訂正。 ・OwnerWindow系のAPIをサポートしたつもり(TarSetOwnerWindow/TarClearOwnerWindow/TarSetOwnerWindowEx/TarKillOwnerWindowEx) ・書庫の種類を得るAPIを独自に追加したつもり(TarGetArhiveType(LPSTR)) ・いいかげんな英語文書を作成。(sdk\cmd_tare.txt) ・コンパイラをVC++4.0JからVC+5.0Jに変更 ●●●1998/01/16 ver0.31●●● ・Ver0.30の公開が1998/1/19になっていたのを訂正。 ・TarGetArchiveType()でファイルがないときは-1を返していたバグを仕様にした。 ・--self-extractingオプションの追加。kmtarsef.exeがあれば自己解凍書庫を作成。実際のところファイルの先頭にkmtarsef.exeをくっつけてるだけですが。 ・「checksum error」の時にファイルを閉じていなかったのを訂正。 ●●●1998/04/13 ver0.40●●● ・BZ2LIB.DLLを用いたbzip2形式(.bz2/.tar.bz2)の圧縮・解凍のサポート。 bzip2はgzipより1-2割ほど高い圧縮をする場合が多いです。 圧縮時は「B」オプションを指定してください。(B9がお勧め) 解凍時は自動判別です。 ・TarCheckArchive()がTAR/TGZ/TAZ/TAR.BZ2/GZ/Z/BZ2ファイルかどうかを 判定するようになった。 ・Tar()関数の直後にSetActiveWindow()などを呼ぶ一部のアプリで落ちていたバグを修正した(はず)。 ・その代わり、展開状況表示窓が一番後ろに表示されるようになる。 (窓表示部分はよくわからない・・・) ・英語文書を追加(いいかげん) ・GZIP解凍時に「e」オプションを効くようにした。 ・compressを解凍する度にメモリを200KBずつ消費するバグ訂正 ・書庫内のファイルがルート「/」から始まっているとき、書庫内の一部のファイルのみを展開できなかったバグ訂正 ・その他 ●●●1998/04/14 ver0.41●●● ・デバッグモードでコンパイルしていたのを訂正 ●●●1998/06/02 ver0.42●●● ・-U(属性設定),-U2(属性設定、NTFS圧縮)オプション及び-R(読み取り専用属性ファイルに上書き)オプションの追加。(NORIMYさんのコードより。感謝!) ・テスト的にSPI(Susie PlugIn)に対応。拡張子を.SPIにすると一応SPIになります(^^;今後は不明。 ・展開中ダイアログを最前面の真ん中に表示 ●●●1998/08/10 ver0.43●●● ・小さなファイルを解凍したときに「このプログラムは不正な処理を行っ たので強制終了されます。」というメッセージが表示されるバグ修正. ・beginthreadの返り値チェックの間違い修正 ・gzip展開時の引数処理の修正 ・以上 Special Thanks to 光藤 大輔 さん ・リソースにバージョン情報を追加 ●●●1998/10/19 ver0.44●●● ・TarGetFileCount()が連続して動かない場合があるらしいのを直した(と思う) ・言語を「日本語」から「ニュートラル」に変えてみた ●●●1998/11/30 ver0.45●●● ・ようやくTARのないGZ/Z/BZ2だけで圧縮しているファイルの自動判定(解凍時) を行うようになった。 ・TarFindFirst()/TarFindNext()/TarGetFileCount()などがGZ/Z/BZ2ファイル に対しても(それなりに)動作するようになった。 ・Tar()で-xコマンドで解凍するとき、GZ/Z/BZ2ファイルに対してGオプションを つけなくても解凍できるようになった。 ・これにより多くのTAR.GZ書庫を扱えるアプリで変更なし、もしくはわずかな変更で GZ/Z/BZ2ファイルが扱えるようになったと思います。 ●●●1998/12/02 ver0.46●●● ・TarGetFileCount()がtar.Z/tar.BZ2に対して常に1を返していたバグ修正 ●●●1999/04/12 ver0.47●●● ・UNC表記に対応したつもり。ネットワークコンピュータがない環境なので、直ったか不明。 ・その他。あまりに長い間ほったらかしていたので、他のバグ報告で忘れてしまったところがあるかもしれません。そのときはもう一度催促してください(^^;; ●●●1999/05/06 ver0.50●●● ・gzip(.gz/.tar.gz)の圧縮・伸長にzlib(1.1.3)を用いるように変更した(スタティックリンク)。圧縮・伸長共に多少早くなったように思える。 ・bzip2(.bz2/.tar.bz2)の圧縮・伸長にlibbzip2(bzip2-0.9.0c)を用いるように変更した(スタティックリンク)。圧縮・伸長共に多少早くなったように思える。フロッピーデバイスは未サポート。これにより、BZ2LIB.DLLは不要になりました。 ・--use-zlib=[0|1]で従来のルーチンとzlibルーチンを切り替えれるようにした。デフォルトはzlibルーチン。 ・--use-bz2lib=[0|1]で従来のルーチン(BZ2LIB.DLL)とlibbzip2ルーチンを切り替えれるようにした。デフォルトはlibbzip2ルーチン。 ●●●1999/05/10 ver0.51●●● ・bzip2の展開に失敗していたのを修正 ・圧縮レベルが無効になっていたのを修正 ・設定ダイアログでbzip2のデフォルト圧縮レベルも設定できるようにした ●●●1999/05/17 ver0.52●●● ・TarFindFirstで、gzip/bzip2のみで圧縮したファイルの内容一覧を取得したときに、ファイル名がパス名付きで帰ってくるバグ修正 ●●●1999/05/24 ver0.53●●● ・tar.Z/Z形式のファイルのTarCheckArchive()などで落ちることがあるバグを修正(したつもり)