New -compliance option iso_9660_level=number
This commit is contained in:
@ -719,7 +719,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
&value_length, &value, 2 | 8);
|
||||
}
|
||||
|
||||
isoburn_igopt_set_level(sopts, 3);
|
||||
isoburn_igopt_set_level(sopts, xorriso->iso_level);
|
||||
ext= isoburn_igopt_rockridge |
|
||||
((!!xorriso->do_joliet) * isoburn_igopt_joliet) |
|
||||
((!!xorriso->do_iso1999) * isoburn_igopt_iso1999) |
|
||||
@ -1806,6 +1806,8 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
|
||||
char *npt, *cpt;
|
||||
int l, was, value, ret;
|
||||
struct isoburn_imgen_opts *opts= NULL;
|
||||
char msg[160];
|
||||
off_t limit;
|
||||
|
||||
was= xorriso->relax_compliance;
|
||||
npt= cpt= mode;
|
||||
@ -1947,6 +1949,27 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
|
||||
} else if(l == 17 && strncmp(cpt, "iso_9660_1999_off", l) == 0) {
|
||||
xorriso->do_iso1999= 0;
|
||||
|
||||
} else if((l >= 15 && strncmp(cpt, "iso_9660_level=", 15) == 0)) {
|
||||
value= 0;
|
||||
sscanf(cpt + 15, "%d", &value);
|
||||
limit= ((off_t) 4) * ((off_t) 1024*1024*1024) - ((off_t) 1);
|
||||
if(value == 1 || value == 2) {
|
||||
xorriso->iso_level= value;
|
||||
if(xorriso->file_size_limit > limit)
|
||||
xorriso->file_size_limit= limit;
|
||||
} else if(value == 3) {
|
||||
xorriso->iso_level= value;
|
||||
if(xorriso->file_size_limit == limit)
|
||||
xorriso->file_size_limit= Xorriso_default_file_size_limiT;
|
||||
} else {
|
||||
sprintf(msg,
|
||||
"-compliance iso_9660_level=%d : Only 1, 2, or 3 are permissible",
|
||||
value);
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "FAILURE", 0);
|
||||
xorriso->relax_compliance= was;
|
||||
return(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 */;
|
||||
@ -1986,6 +2009,8 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
|
||||
return(1);
|
||||
}
|
||||
strcpy(mode, "clear");
|
||||
if(xorriso->iso_level != 3)
|
||||
sprintf(mode + strlen(mode), ":iso_9660_level=%d", xorriso->iso_level);
|
||||
if(r & isoburn_igopt_omit_version_numbers)
|
||||
strcat(mode, ":omit_version");
|
||||
if(r & isoburn_igopt_only_iso_versions)
|
||||
@ -2028,7 +2053,8 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
|
||||
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->do_iso1999));
|
||||
&& xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999 &&
|
||||
xorriso->iso_level == 3));
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user