From 968025ff49235c38b7496a89a8115926a0c4cf80 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 29 Nov 2008 09:10:59 +0000 Subject: [PATCH] Renamed new option -relax_compliance to -compliance, added _off rules --- libisoburn/trunk/xorriso/xorriso.1 | 13 ++- libisoburn/trunk/xorriso/xorriso.c | 16 +-- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- libisoburn/trunk/xorriso/xorrisoburn.c | 102 ++++++++++++++----- 4 files changed, 94 insertions(+), 39 deletions(-) diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index 8e142675..cb4a3f41 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" 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. .\" .\" Some roff macros, for reference: @@ -1334,7 +1334,7 @@ Rock Ridge info will be generated by the program unconditionally. \fB\-joliet\fR "on"|"off" If enabled by "on", generate Joliet info additional to Rock Ridge info. .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 cases it is worth to deviate a bit in order to circumvent bugs of the intended 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 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 -to its start setting by "default". The term "ISO file" means the plain ISO 9660 -names which get visible if the reader ignores Rock Ridge. +to its start setting by "default". All of the following relaxation rules +can be revoked individually by appending "_off". Like "deep_paths_off". .br Rule keywords are: .br @@ -1370,6 +1370,11 @@ system does not recognize Rock Ridge 1.12 signature). .br "rec_mtime" record with ISO files the disk file's mtime and not the 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 \fB\-volid\fR text Specify the volume ID. xorriso accepts any text up to 32 characters, diff --git a/libisoburn/trunk/xorriso/xorriso.c b/libisoburn/trunk/xorriso/xorriso.c index 23e2de74..0fa49432 100644 --- a/libisoburn/trunk/xorriso/xorriso.c +++ b/libisoburn/trunk/xorriso/xorriso.c @@ -5690,7 +5690,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) Xorriso_status_result(xorriso,filter,fp,flag&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)) 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)", " -joliet \"on\"|\"off\"", " Generate Joliet info additional to Rock Ridge info.", -" -relax_compliance rule[:rule...]", +" -compliance rule[:rule...]", " Allow more or less harmless deviations from strict standards", " compliance.", " -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 */ -int Xorriso_option_relax_compliance(struct XorrisO *xorriso, char *mode, +/* Option -compliance */ +int Xorriso_option_compliance(struct XorrisO *xorriso, char *mode, int flag) { 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]= { "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", "format","fs","gid","grow_blindly", "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", "pacifier","padding","path_list","pathspecs","pkt_output","print","prompt", "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", "stream_recording","temp_mem_limit","uid","volid","use_readline", "" @@ -15447,9 +15447,9 @@ next_command:; (*idx)++; ret= Xorriso_option_reassure(xorriso, arg1, 0); - } else if(strcmp(cmd,"relax_compliance")==0) { + } else if(strcmp(cmd,"compliance")==0) { (*idx)++; - Xorriso_option_relax_compliance(xorriso, arg1, 0); + Xorriso_option_compliance(xorriso, arg1, 0); } else if(strcmp(cmd,"report_about")==0) { (*idx)++; diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 8ac0b0b0..8b302cc4 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.11.26.180935" +#define Xorriso_timestamP "2008.11.29.091030" diff --git a/libisoburn/trunk/xorriso/xorrisoburn.c b/libisoburn/trunk/xorriso/xorrisoburn.c index 4f2bd7ff..0ae20e6e 100644 --- a/libisoburn/trunk/xorriso/xorrisoburn.c +++ b/libisoburn/trunk/xorriso/xorrisoburn.c @@ -8206,39 +8206,89 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode, xorriso->relax_compliance= 0; } else if(l == 7 && strncmp(cpt, "default", l) == 0) { 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 { if(linfo_text, "-relax_compliance: unknown mode '%s'", + sprintf(xorriso->info_text, "-relax_compliance: unknown rule '%s'", cpt); else 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->relax_compliance= was; return(0);