Jolietの出力

Jolietの出力を実装しました。
joliet_directory_writer.hpp
iso_file_sink_impl.hppの差分


Jolietに対応したISOイメージファイルを作成する場合は、Joliet用の副ボリューム記述子を追加しておく必要があります。

#include <hamigaki/archivers/iso_file.hpp>

namespace ar = hamigaki::archivers;

int main()
{
    ar::iso_file_sink iso("hoge.iso");

    // 主ボリューム記述子を追加
    iso.add_volume_desc(ar::iso::volume_desc());

    // 副ボリューム記述子を追加
    ar::iso::volume_desc jol_desc;
    jol_desc.set_joliet(); // Joliet用に設定
    iso.add_volume_desc(jol_desc);

    // ...
}

なお、利便性のため、主ボリューム記述子は追加しなくても最初のエントリを作成した際に自動的に追加されます。


予想通り、Jolietに対応するには比較的楽だったので、いくつか仕様変更/バグ修正もしました。

  • ファイルのバージョン番号をpathから除外して、versionメンバ変数に設定するようにした
  • ボリューム記述子内の文字列を最初の空白以降を切り捨てていたのを、末尾の空白のみ切り捨てるようにした


さて、残るはRock Ridgeの出力です。深いディレクトリの再配置が鬼門ですね。