New -compliance option iso_9660_1999, -as mkisofs option -iso-level 4

This commit is contained in:
2010-12-23 19:01:42 +00:00
parent 86fb1eb0cf
commit 3cbf74b32e
9 changed files with 115 additions and 86 deletions

View File

@ -722,6 +722,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
isoburn_igopt_set_level(sopts, 3);
ext= isoburn_igopt_rockridge |
((!!xorriso->do_joliet) * isoburn_igopt_joliet) |
((!!xorriso->do_iso1999) * isoburn_igopt_iso1999) |
(( !(xorriso->ino_behavior & 2)) * isoburn_igopt_hardlinks) |
(( (!(xorriso->ino_behavior & 2)) ||
(xorriso->do_aaip & (2 | 8 | 16 | 256)) ||
@ -1836,7 +1837,7 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
return(-1);
ret= isoburn_igopt_set_untranslated_name_len(opts, value);
isoburn_igopt_destroy(&opts, 0);
if(ret <= 0) {
if(ret <= 0) { /* Not a tasty value */
xorriso->relax_compliance= was;
return(0);
}
@ -1940,6 +1941,12 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
(l == 8 && strncmp(cpt, "emul_toc", l) == 0)) {
xorriso->no_emul_toc&= ~1;
} else if((l == 13 && strncmp(cpt, "iso_9660_1999", l) == 0) ||
(l == 16 && strncmp(cpt, "iso_9660_1999_on", l) == 0)) {
xorriso->do_iso1999= 1;
} else if(l == 17 && strncmp(cpt, "iso_9660_1999_off", l) == 0) {
xorriso->do_iso1999= 0;
} else if((l == 8 && strncmp(cpt, "iso_9660", l) == 0) ||
(l == 11 && strncmp(cpt, "iso_9660_on", l) == 0)) {
/* may have a meaning in future */;
@ -2017,9 +2024,11 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
if(xorriso->untranslated_name_len != 0)
sprintf(mode + strlen(mode), ":untranslated_name_len=%d",
xorriso->untranslated_name_len);
if(xorriso->do_iso1999)
sprintf(mode + strlen(mode), ":iso_9660_1999");
return(1 +
(r == Xorriso_relax_compliance_defaulT && !(xorriso->no_emul_toc & 1)
&& xorriso->untranslated_name_len == 0));
&& xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999));
}