Renamed new option -relax_compliance to -compliance, added _off rules

This commit is contained in:
Thomas Schmitt 2008-11-29 09:10:59 +00:00
parent 17a2d74512
commit c09fd5b1dd
4 changed files with 94 additions and 39 deletions

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Nov 21, 2008" .TH XORRISO 1 "Nov 28, 2008"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -1334,7 +1334,7 @@ Rock Ridge info will be generated by the program unconditionally.
\fB\-joliet\fR "on"|"off" \fB\-joliet\fR "on"|"off"
If enabled by "on", generate Joliet info additional to Rock Ridge info. If enabled by "on", generate Joliet info additional to Rock Ridge info.
.TP .TP
\fB\-relax_compliance\fR rule[:rule...] \fB\-compliance\fR rule[:rule...]
Adjust the compliance to specifications of ISO 9660 and its extensions. In some Adjust the compliance to specifications of ISO 9660 and its extensions. In some
cases it is worth to deviate a bit in order to circumvent bugs of the intended cases it is worth to deviate a bit in order to circumvent bugs of the intended
reader system or to get inofficial extra features. reader system or to get inofficial extra features.
@ -1342,8 +1342,8 @@ reader system or to get inofficial extra features.
There are several adjustable rules which have a keyword each. If they There are several adjustable rules which have a keyword each. If they
are mentioned with this option then their rule gets added to the relaxation are mentioned with this option then their rule gets added to the relaxation
list. This list can be erased by rules "strict" or "clear". It can be reset list. This list can be erased by rules "strict" or "clear". It can be reset
to its start setting by "default". The term "ISO file" means the plain ISO 9660 to its start setting by "default". All of the following relaxation rules
names which get visible if the reader ignores Rock Ridge. can be revoked individually by appending "_off". Like "deep_paths_off".
.br .br
Rule keywords are: Rule keywords are:
.br .br
@ -1370,6 +1370,11 @@ system does not recognize Rock Ridge 1.12 signature).
.br .br
"rec_mtime" record with ISO files the disk file's mtime and not the "rec_mtime" record with ISO files the disk file's mtime and not the
creation time of the image. creation time of the image.
.br
Default setting is "clear:deep_paths:long_paths:always_gmt".
.br
Note: The term "ISO file" means the plain ISO 9660 names wnd attributes
which get visible if the reader ignores Rock Ridge.
.TP .TP
\fB\-volid\fR text \fB\-volid\fR text
Specify the volume ID. xorriso accepts any text up to 32 characters, Specify the volume ID. xorriso accepts any text up to 32 characters,

View File

@ -5690,7 +5690,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (Xorriso_get_relax_text(xorriso, sfe, 0) == 2); is_default= (Xorriso_get_relax_text(xorriso, sfe, 0) == 2);
sprintf(line,"-relax_compliance %s\n", sfe); sprintf(line,"-compliance %s\n", sfe);
if(!(is_default && no_defaults)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
@ -12479,7 +12479,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Specifies the application id. (128 chars)", " Specifies the application id. (128 chars)",
" -joliet \"on\"|\"off\"", " -joliet \"on\"|\"off\"",
" Generate Joliet info additional to Rock Ridge info.", " Generate Joliet info additional to Rock Ridge info.",
" -relax_compliance rule[:rule...]", " -compliance rule[:rule...]",
" Allow more or less harmless deviations from strict standards", " Allow more or less harmless deviations from strict standards",
" compliance.", " compliance.",
" -boot_image \"any\"|\"isolinux\" \"discard\"|\"keep\"|\"patch\"|\"dir=\"", " -boot_image \"any\"|\"isolinux\" \"discard\"|\"keep\"|\"patch\"|\"dir=\"",
@ -14200,8 +14200,8 @@ int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag)
} }
/* Option -relax_compliance */ /* Option -compliance */
int Xorriso_option_relax_compliance(struct XorrisO *xorriso, char *mode, int Xorriso_option_compliance(struct XorrisO *xorriso, char *mode,
int flag) int flag)
{ {
return(Xorriso_relax_compliance(xorriso, mode, 0)); return(Xorriso_relax_compliance(xorriso, mode, 0));
@ -14872,7 +14872,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
}; };
static char arg1_commands[][40]= { static char arg1_commands[][40]= {
"abort_on","add_plainly","application_id","backslash_codes","blank", "abort_on","add_plainly","application_id","backslash_codes","blank",
"cd","cdi","cdx","charset","close","commit_eject", "cd","cdi","cdx","charset","close","commit_eject","compliance",
"dev", "dummy","dialog","disk_pattern","eject","iso_rr_pattern","follow", "dev", "dummy","dialog","disk_pattern","eject","iso_rr_pattern","follow",
"format","fs","gid","grow_blindly", "format","fs","gid","grow_blindly",
"history","indev","in_charset","joliet","list_delimiter","local_charset", "history","indev","in_charset","joliet","list_delimiter","local_charset",
@ -14880,7 +14880,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"options_from_file","osirrox","outdev","out_charset","overwrite", "options_from_file","osirrox","outdev","out_charset","overwrite",
"pacifier","padding","path_list","pathspecs","pkt_output","print","prompt", "pacifier","padding","path_list","pathspecs","pkt_output","print","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list", "prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","relax_compliance","report_about","rom_toc_scan", "reassure","report_about","rom_toc_scan",
"session_log","speed","split_size","status","status_history_max", "session_log","speed","split_size","status","status_history_max",
"stream_recording","temp_mem_limit","uid","volid","use_readline", "stream_recording","temp_mem_limit","uid","volid","use_readline",
"" ""
@ -15447,9 +15447,9 @@ next_command:;
(*idx)++; (*idx)++;
ret= Xorriso_option_reassure(xorriso, arg1, 0); ret= Xorriso_option_reassure(xorriso, arg1, 0);
} else if(strcmp(cmd,"relax_compliance")==0) { } else if(strcmp(cmd,"compliance")==0) {
(*idx)++; (*idx)++;
Xorriso_option_relax_compliance(xorriso, arg1, 0); Xorriso_option_compliance(xorriso, arg1, 0);
} else if(strcmp(cmd,"report_about")==0) { } else if(strcmp(cmd,"report_about")==0) {
(*idx)++; (*idx)++;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.11.26.180935" #define Xorriso_timestamP "2008.11.29.091030"

View File

@ -8206,39 +8206,89 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
xorriso->relax_compliance= 0; xorriso->relax_compliance= 0;
} else if(l == 7 && strncmp(cpt, "default", l) == 0) { } else if(l == 7 && strncmp(cpt, "default", l) == 0) {
xorriso->relax_compliance= Xorriso_relax_compliance_defaulT; xorriso->relax_compliance= Xorriso_relax_compliance_defaulT;
} else if(l == 12 && strncmp(cpt, "omit_version", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_omit_version_numbers;
} else if(l == 10 && strncmp(cpt, "deep_paths", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_allow_deep_paths;
} else if(l == 10 && strncmp(cpt, "long_paths", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_allow_longer_paths;
} else if(l == 10 && strncmp(cpt, "long_names", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_max_37_char_filenames;
} else if(l == 13 && strncmp(cpt, "no_force_dots", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_no_force_dots;
} else if(l == 9 && strncmp(cpt, "lowercase", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_allow_lowercase;
} else if(l == 10 && strncmp(cpt, "full_ascii", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_allow_full_ascii;
} else if(l == 17 && strncmp(cpt, "joliet_long_paths", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_joliet_longer_paths;
} else if(l == 10 && strncmp(cpt, "always_gmt", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_always_gmt;
} else if(l == 6 && strncmp(cpt, "old_rr", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_rrip_version_1_10;
} else if(l == 9 && strncmp(cpt, "rec_mtime", l) == 0) {
xorriso->relax_compliance|= isoburn_igopt_dir_rec_mtime;
} else if(l == 4 && strncmp(cpt, "help", l) == 0) {
/* >>> */; } else if((l == 12 && strncmp(cpt, "omit_version", l) == 0) ||
(l == 15 && strncmp(cpt, "omit_version_on", l) == 0) ) {
xorriso->relax_compliance|= isoburn_igopt_omit_version_numbers;
} else if((l == 16 && strncmp(cpt, "omit_version_off", l) == 0)) {
xorriso->relax_compliance&= ~isoburn_igopt_omit_version_numbers;
} else if((l == 10 && strncmp(cpt, "deep_paths", l) == 0) ||
(l == 13 && strncmp(cpt, "deep_paths_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_deep_paths;
} else if(l == 14 && strncmp(cpt, "deep_paths_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_deep_paths;
} else if((l == 10 && strncmp(cpt, "long_paths", l) == 0) ||
(l == 13 && strncmp(cpt, "long_paths_on", l) == 0) ) {
xorriso->relax_compliance|= isoburn_igopt_allow_longer_paths;
} else if(l == 14 && strncmp(cpt, "long_paths_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_longer_paths;
} else if((l == 10 && strncmp(cpt, "long_names", l) == 0) ||
(l == 13 && strncmp(cpt, "long_names_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_max_37_char_filenames;
} else if(l == 14 && strncmp(cpt, "long_names_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_max_37_char_filenames;
} else if((l == 13 && strncmp(cpt, "no_force_dots", l) == 0) ||
(l == 16 && strncmp(cpt, "no_force_dots_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_no_force_dots;
} else if(l == 17 && strncmp(cpt, "no_force_dots_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_no_force_dots;
} else if((l == 9 && strncmp(cpt, "lowercase", l) == 0) ||
(l == 12 && strncmp(cpt, "lowercase_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_lowercase;
} else if(l == 13 && strncmp(cpt, "lowercase_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_lowercase;
} else if((l == 10 && strncmp(cpt, "full_ascii", l) == 0) ||
(l == 13 && strncmp(cpt, "full_ascii_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_full_ascii;
} else if(l == 14 && strncmp(cpt, "full_ascii_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_full_ascii;
} else if((l == 17 && strncmp(cpt, "joliet_long_paths", l) == 0) ||
(l == 20 && strncmp(cpt, "joliet_long_paths_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_joliet_longer_paths;
} else if(l == 21 && strncmp(cpt, "joliet_long_paths_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_joliet_longer_paths;
} else if((l == 10 && strncmp(cpt, "always_gmt", l) == 0) ||
(l == 13 && strncmp(cpt, "always_gmt_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_always_gmt;
} else if(l == 14 && strncmp(cpt, "always_gmt_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_always_gmt;
} else if((l == 6 && strncmp(cpt, "old_rr", l) == 0) ||
(l == 9 && strncmp(cpt, "old_rr_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_rrip_version_1_10;
} else if(l == 10 && strncmp(cpt, "old_rr_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_rrip_version_1_10;
} else if((l == 9 && strncmp(cpt, "rec_mtime", l) == 0) ||
(l == 12 && strncmp(cpt, "rec_mtime_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_dir_rec_mtime;
} else if(l == 13 && strncmp(cpt, "rec_mtime_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_dir_rec_mtime;
} 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 */;
} else if(l == 12 && strncmp(cpt, "iso_9660_off", l) == 0) {
/* may have a meaning in future */;
Xorriso_msgs_submit(xorriso, 0,
"-compliance -iso_9660_off : Cannot do anything else but ISO 9660",
0, "FAILURE", 0);
} else { } else {
if(l<SfileadrL) if(l<SfileadrL)
sprintf(xorriso->info_text, "-relax_compliance: unknown mode '%s'", sprintf(xorriso->info_text, "-relax_compliance: unknown rule '%s'",
cpt); cpt);
else else
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
"-relax_compliance: oversized mode parameter (%d)", l); "-relax_compliance: oversized rule parameter (%d)", l);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
xorriso->relax_compliance= was; xorriso->relax_compliance= was;
return(0); return(0);