Hi, Pete Batard wrote: > feel free to jump in.
Only with some remarks for now. :)) It seems that the handling of relocated directories is currently inconsistent. Entry RE leads to silent refusal or warning, but entry CL is ignored. RE indicates that the directory entry describes a relocation target like /RR_MOVED/8. So files in a relocated directory can neither be reached via the deep path nor by the path under the relocation directory /RR_MOVED. It seems to be a good habit of ISO 9660 producers to have a dedicated parent for the relocated directories (here /RR_MOVED), and to mark this parent too by an RE entry. (RRIP 1.12 does not prescribe this.) This might be the reason for the error message of extract: "Could not access /rr_moved" rather than a message about "/rr_moved/8". So enabling the interpretation of CL in #ifdef FINISHED case SIG('C','L'): would probably not worsen the situation much. Alternatively one could put the handling of RE under the same macro reservation #ifdef FINISHED, so that libcdio is simply ignorant of relocation as long as relocation is not completely implemented. Actually i fail to see occasions of relocation handling in libisofs which would not be roughly covered by the code in libcdio. (But i am not the one who initially implemented relocation in libisofs.) Problems might still be in the details or in libcdio architecture aspects of which i am not aware. Have a nice day :) Thomas