# Lychee

## History

2010/03/15
  Ver.0.01β7
  TPI
    - 書庫を作成する際のコマンドコードとしてTPI_COMMAND_CREATEを追加。
    - ヘッダ圧縮の設定を追加。
    - 数値の型をwxULongLongからwxULongLong_tに変更。
    - 幾つかの変数名/引数名を変更。
    - Windows上でwxWidgets2.9に移行。
  Lychee
    - 追加時に作成時と同様のダイアログを表示し、詳細な設定を行える機能を追加。
    - 暗号化されたファイルを緑色で示す機能を追加。
    - コマンドラインに書庫を検査するtコマンドと書庫に追加するaコマンドを追加。
    - 処理中に書庫全体での進捗状況を表示する機能を追加。
    - フォルダを格納する際に、TPIに送る名前を"xxx\"から"xxx"に変更。
    - DnDされたものが書庫であるか判定する際に、それがファイルであるかを先に確認するよう変更。
    - DnDで書庫を開く際、TPIを読み込む回数を減らして高速化。
    - コマンドライン経由で書庫を展開した後にLycheeのウインドウが表示されないように改良。
    - ヘッダ暗号化書庫を開く際に、対応確認の段階でパスワードを要求するものへの対応を改良。
    - 書庫処理ダイアログで初期状態でOKボタンにフォーカスしておくよう変更。
    - Linux上でも、格納ファイル名にバックスラッシュを含む場合は、それ以前をディレクトリとして扱うように変更。
    - 暗号化設定を独立したタブに移動。
    - TPIを適切に解放していなかったために、書庫を開けなくなることがあったバグを修正。
    - 履歴を最新のものとして記録できない場合があったバグを修正。
    - 作成できる書庫形式が一つもない場合に、書庫を作成しようとすると不正終了していたバグを修正。
    - TPIがCheckArchiveでエラーを返していても、llFileCountを0以外に変更していた場合にはチェックをすり抜けてエラーとなることがあるバグを修正。
    - ウインドウの座標が-1であった場合、次回起動時にウインドウがずれていたバグを修正。
    - 書庫のファイルパスに$を含む場合、コマンドラインから開けない、あるいはDTV警告が表示されるバグを修正。
    - 追加/展開時に書庫名でディレクトリを作成する場合に、実際の展開先と異なるパスが表示されていたバグを修正。
  7zArc
    - 新規追加。
  calLibrary
    - tar32.dllのtar.lzmaへの対応コードを追加。
    - 7zArcの追加に伴い7-zip32.dll,UnIso32.dllのコードを削除。
  cuiWrapper
    - Linuxでtar書庫への追加機能を実装。
    - tarコマンドのtar.lzmaへの対応コードを追加。
    - 7zArcの追加に伴い7z,gzipコマンドのコードを削除。
    - Windowsで読み込める書庫サイズの上限を撤廃。
    - Linuxでコマンドが存在しない場合にエラーとなっていなかったバグを修正。
    - 出力の最終行までファイルデータが続く場合にエラーとなっていたバグを修正。
  rarArc
    - 暗号化属性の取得に対応。
    - 不要な処理を削除し高速化。
    - 書庫を読み込む際に不正終了する場合があったバグを修正。
  eggArc
    - 暗号化属性とコメントの取得に対応。
    - 不要な処理を削除し高速化。
  xpiLibrary
    - 複数ハンドルの使用に対応。
2009/12/27
  Ver.0.01β6
  TPI
    - CheckArchiveの引数の_nFileCountをwxULongLongに変更。
  Lychee
    - 外部の言語ファイルを読み込みできる機能を追加。
    - 履歴機能を強化。
    - 多数の設定項目名を変更。
    - エラーや警告のダイアログをwxLogに移行。
  calLibrary
    - 7-zip32.dllとUnZip32.dllの優先順位を変更。
  eggArc
    - UnEGG.dllからUnEGG32.dllへの名称変更に対応。
  cuiWrapper
    - パイプのバッファサイズを最大にし、Windowsで読み込める書庫サイズの上限を緩和。
2009/11/22
  Ver.0.01β5
  TPI
    - TPI_FILEINFO::szCommentを追加。
    - 書庫化可能な形式かどうかを表すTPI_FORMATINFO::fArchiveを追加。
  Lychee
    - 展開ダイアログで書庫のコメントを閲覧できる機能を追加。
    - アプリケーションの名前をTPI FrontendからLycheeに変更。
    - ツールバーのアイコンを小さくし、ラベルを横に表示するよう変更。
    - 書庫化不可能な形式では追加/削除/複数ファイル格納を無効にするよう変更。
    - SetCallbackProcに失敗してもエラーダイアログを表示しないよう変更。
    - 名前にスペースを含むファイルが開けなかったバグを修正。
  calLibrary
    - UnGCA32.dllで部分展開に失敗する場合があったバグを修正。
  cuiWrapper
    - gcacへの対応コードを追加。
    - rarArcのLinux対応に伴いunrarへの対応コードを削除。
    - 巨大な書庫でファイルが二重に表示されていたバグを修正。
  rarArc
    - 格納メソッドを取得できるよう変更。
    - 書庫名の文字数制限を撤廃。
  xpiLibrary
    - 新規追加。
2009/11/11
  Ver.0.01β4
  TPI
    - 処理中にコールバック関数に対してパラメータを要求するTPI_MESSAGE_ASKと、それに関連してパラメータコードを追加。
    - コールバック関数からTPIへ現在の処理を行わずに次の処理を行うよう指示するTPI_CALLBACK_SKIPを追加。
    - GetFileInformation/GetFormatInformationでデータが終了したことを明示するTPI_ERROR_S_ENDOFDATAを追加。
    - いくつかの定数の値を変更。
  Frontend
    - 書庫閲覧時の表示モードに一覧表示モードを追加。
    - ツールバー/ステータスバーの非表示設定を追加。
    - 書庫閲覧時のフィルタ機能を追加。
    - 書庫閲覧時にツリービューからのDnDに対応。
    - Delete,Insertキーをそれぞれ削除と追加の動作に割り当て。
    - 格納ファイルを開く際にファイルの種類を取得できない場合に、特定の拡張子とみなすDefaultExtを設定に追加(初期値はtxt)。
    - 作成ダイアログで"Default"ボタンで設定するパスを指定するDefaultPathを設定に追加。
    - 処理中にパスワードや分割書庫の次のボリュームを求められた際、ダイアログを表示して入力できるよう変更。
    - ステータスバーの表示形式を変更。
    - ツリービューで常に選択状態で表示されるアイテムがあったバグを修正。
  cuiWrapper
    - 書庫への諸操作ができない場合があったバグを修正。
  calLibrary
    - rarArcの追加に伴いunrar32.dllへの対応コードを削除。
    - SetCallbackProcを複数回呼び出したときエラーとなっていたバグを修正。
  eggArc
    - 新規追加。
  rarArc
    - 新規追加。
2009/10/12
  Ver.0.01β3
  TPI
    - セキュリティ関連の危険性を示すuDangerをTPI_FILEINFOに、TPI_ERROR_ARC_DANGERをエラーコードに追加。
    - 対応形式に関する情報を取得するGetFormatInformationを追加。
    - GetFormatInformationの追加に伴い、GetPluginInformationの関連コードを移動。
    - 多くのエラーコードの番号がずれていたのを修正。
  Frontend
    - 書庫以外のファイルもしくはディレクトリをDnDしたときに新規書庫を作成する機能を実装。
    - リストビューで降順の整列に対応。
    - 書庫の作成/閲覧時に、その形式で対応していない操作をUI上で使用できないようにした。
    - リストビューの列の幅を記録するよう変更。
    - 展開時に書庫名でフォルダを作成する際に、フォルダ名に書庫の拡張子を含まないように変更。
    - セキュリティ面で問題のある格納ファイルに対して警告し、赤字で表示するよう変更。
    - ダイアログの部品の大きさを小さめに変更。
    - 更新履歴をより詳細なものに変更。
    - 処理ダイアログのCancelボタンを削除し、閉じるボタンに一本化。
    - ディレクトリメンバがルートに格納されていた場合に、展開時の解析版フォルダ作成機能が誤動作していたバグを修正。
    - 処理中のキャンセルができなかったバグを修正。
    - 作成/展開ダイアログのサイズを変更した際にいくつかのコントロールが追従していなかった点を修正。
    - 作成/展開テキストボックスでアンダーバーが表示されなかったのを修正。
    - 書庫とSFXの相互変換ができていなかったバグを修正。
    - 書庫の作成時にコールバック関数を設定していなかったバグを修正。
  calLibrary
    - UnAceV2J.dll,Zip32J.dllでの暗号化書庫の展開、7-zip32.dll,cab32.dllでの圧縮レベルの指定、tar32.dllでのxz作成、7-zip32.dllでのzip作成に対応。
    - ERROR_HDR_NO_NAMEまでのエラーコードに対応。
    - GetFileInformationで統合APIのアドレス取得回数を減らして高速化。
    - TPI_ERROR_ARC_DANGERの追加に伴い、一部のエラーコードとの対応関係を修正。
    - 代替ライブラリにもコールバック関数を設定できるよう変更。
  cuiWrapper
    - 7zコマンドでの圧縮レベルの指定とzip作成に対応。
    - GetFileInformationでXMLからの読み込み回数を減らして高速化。
    - CheckArchiveの際にデータをキャッシュしておき、その後のOpenArchiveで同じ書庫を開くよう要求された場合にはキャッシュデータを流用するように変更し高速化。
    - Linux版でデバッグ用スイッチを削除し軽量化。
  spiLibrary
    - 外部のコールバック関数が指定されていないとき、処理が中断してしまうバグを修正。
2009/09/30
  Ver.0.01β2
  Frontend
    - frontend.desktopを追加。
    - 書庫を直接展開するxスイッチを実装。
    - 常に進捗ダイアログを表示するよう変更。
    - DTV検査に時間がかかるようであればスキップできるように変更。
    - 動作を高速化。
    - ツリービューで開いているフォルダのアイコンを変更。
    - Linux上でも関連付けに応じてファイルを開けるよう変更。
    - readme.txtをhtml化し分割。
    - ディレクトリ構成を変更。
    - Subversionに移行。
  各TPI共通
    - quote-resp="0"を指定することによりレスポンスファイル内でファイル名を引用符で囲わないよう変更。
    - Linux環境下では改行文字としてLFのみを使用するよう変更。
  calLibrary
    - Unicodeに対応。
    - unacev2j.dllでの部分展開に対応。
    - 動作を高速化。
    - レスポンスファイルを削除するタイミングを変更。
    - tar32.dllに対してinverse-procresultスイッチを使用するよう変更。
    - 代替ライブラリを解放し忘れていたのを修正。
    - レスポンスファイルの削除に失敗していたバグを修正。
  cuiWrapper
    - Unicodeに対応。
    - gzipに対応。
    - tarでパス情報を無視した展開に対応。
    - dgc書庫の作成に対応。
    - .tar.XXXのような二重拡張子の読み込みに対応。
    - tarにレスポンスファイルを利用するよう変更。
    - 動作を高速化。
    - 外部コマンドの実行時間の上限を撤廃。
    - 対応書庫の判定を厳しく変更。
    - 書庫の作成に失敗する場合があったバグを修正。
    - 実行ファイルの存在条件が機能していない場合があったバグを修正。
2009/08/29
  Ver.0.01β
  TPI
    - 暗号化、分割書庫、リカバリーレコードなど格納時の設定に対応。
  Frontend
    - ディレクトリメンバの末尾に"/"が含まれない場合も判別できるよう変更。
    - cuiWrapperのように最初に格納ファイル数を取得できないTPIで、正しい格納ファイル数を表示するように変更。
    - 格納時にも"Files"タブに情報を表示するよう変更。
    - Linux環境では見えない部分があるので、ダイアログのサイズを可変に変更。
    - Linux環境下ではSFXの拡張子がexeでないことに対する変更。
    - 書庫を閉じる際に処理が不完全になっていたのを修正。
    - 適切なエンジンに格納コマンドを送信できていなかったバグを修正。
    - ツリービューの階層作成に失敗していたバグを修正。
    - 説明書にファイルがLinux版のものかWindows版のものかを明記。
  各TPI共通
    - %%のパース方法を改善。
    - 日本語ファイル名が表示できなくなっていたバグを修正。
  cuiWrapper
    - Linux上の動作を可能にした。
    - unrar, innounp, tarへの対応。
    - アプリケーションが1ファイルあたり複数行の情報を出力する場合に対応。
    - LoadPluginでロードする実行ファイルの存在を確認するように変更。
    - アプリケーションが存在しない場合は対応形式の一覧に含めないよう変更。
    - 拡張子による対応判定で大文字/小文字を問わないよう変更。
    - list-line-sが空文字列の場合は1行目から読み込むよう変更。
    - 巨大書庫を読み込めるよう修正。
2009/08/22
  Ver.0.00.20090822
  Frontend
    - 説明書を作成。
    - 仮想リストビューを採用し高速化。
    - 仮想リストビュー導入で不要になったため、DetailShowFileNumLimitを削除。
    - 展開先を絶対パスで表示するよう変更。
    - DTVが疑われる場合にパスを無効にするよう警告するように変更。
    - Filesタブでリストビューにアイテムを追加するタイミングを変更。
    - 正しく部分展開できていない場合があったバグを修正。
    - 書庫を開いたとき、書庫のファイル一覧が表示されない場合があったバグを修正。
  cuiWrapper
    - コンソール版アプリケーションからのデータ取得に対応。
    - 7za.exe,dgcac.exe(暫定)に対応。
  spiLibrary
    - 正しく部分展開できていない場合があったバグを修正。
2009/08/13
  Ver.0.00.20090813
  TPI
    - Unicode化。
    - TPI_FILEINFO::szStoredNameを追加。
    - ファイル名に関係する処理の一部をwxFileNameに移行。
  Frontend
    - 書庫へのファイル追加機能を実装。
    - frontend.confの設定項目のうち、DetailShowFileNumLimitを書庫内閲覧で警告しない上限ファイル数を指定する機能のみに限定し、進捗ダイアログを表示する上限ファイル数を指定するProgressShowFileNumLimitを追加。
    - 格納/展開ダイアログを統合。
    - 展開時に対象ファイルのリストと出力先の一覧を閲覧できるよう変更。
    - ファイルアイコン取得のための条件をより厳しく変更。
    - ディレクトリ作成の設定で"必要ならディレクトリを作成"を初期値に変更。
    - 現在開いている書庫を閉じなくても別の書庫を開いたり作成したりできるよう変更。
    - 最後に開いたパスを記憶しておくよう変更。
    - 書庫の格納ファイル数が一定数(初期値は1000)以上であったとき、処理速度を優先して処理状況の進捗ダイアログを表示しないよう変更。
    - 同じく格納ファイルが多い時、書庫閲覧時に全ファイル表示を行うか確認するよう変更。
    - 終了時に最小化/最大化されていた場合には、ウインドウの位置とサイズを記録しないよう変更。
    - 書庫内のファイルを開く際に、展開に失敗していても開こうとしていたバグを修正。
    - 書庫を開いた際に最初に表示されるのが全ファイル表示にならない場合があったバグを修正。
    - 書庫名の指定方法によっては、書庫が正常に処理されないことがあったバグを修正。
    - 中間ディレクトリが削除できない場合があったバグを修正。
  calLibrary
    - 代替ライブラリを登録できる機能を追加し、zip32j.dllを代替ライブラリとして登録。
    - tar32.dll, UnAceV2J.dllへの対応。
    - UnIso32.dllのtestコマンドを追加。
    - 統合ライブラリに対するコールバック関数の返し値を逆転するための拡張フラグを追加。
    - レスポンスファイルの最後に改行を入れないよう動作を改善。
    - ファイル名から"-wx"を除去。
    - suffixで前に.を付加しないよう仕様変更。
    - Unrar32.dllでサブディレクトリ以下を展開できなかったバグを修正。
    - FreeLibraryされていなかったのを修正。
  spiLibrary
    - ファイル名から"-wx"を除去。
2009/04/29
  Ver.0.00.20090429
  - wxWidgetsを使用するよう変更。
2006/11/20
  Ver.0.00.20061120
  - wxWidgets使用前の最終版。