volume_desc::rrip

volume_descriptorをvolume_info(各ボリューム記述子の共通項目)とvolume_desc(それ以外)に分離して、volume_descにはRock Ridgeのバージョンを追加しました。
iso/headers.hppの差分
ついでにJolietの場合はボリューム記述子内の文字列をナロー文字に変換するようにしました。


そして、basic_iso_file_source_implのコンストラクタでは、read_volume_descriptor()でボリューム記述子を読み出した後、rock_ridge_check()で各ボリューム記述子に対してルートディレクトリのRRIPバージョンをチェックするように変更しました。
iso_file_source_impl.hppの差分
select_volume_desc()に追加したuse_rrip引数で、Rock Ridgeを使うかどうかの設定ができます。
これをfalseにすれば、Rock Ridgeを無視してISO 9660として読むこともできるわけです。


今日のバージョンでも、(あまりないパターンだと思いますが)Joliet兼Rock Ridgeなボリューム記述子の場合に、ファイル名を正しく読めない可能性があります。
明日はその辺を改良したいと思います。