Browse Source

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

tags/ZeroThreeZero
Thomas Schmitt 12 years ago
parent
commit
c09fd5b1dd
4 changed files with 84 additions and 29 deletions
  1. +9
    -4
      xorriso/xorriso.1
  2. +8
    -8
      xorriso/xorriso.c
  3. +1
    -1
      xorriso/xorriso_timestamp.h
  4. +66
    -16
      xorriso/xorrisoburn.c

+ 9
- 4
xorriso/xorriso.1 View File

@@ -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,


+ 8
- 8
xorriso/xorriso.c 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);

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)++;


+ 1
- 1
xorriso/xorriso_timestamp.h View File

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

+ 66
- 16
xorriso/xorrisoburn.c View File

@@ -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) {

} 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 == 10 && strncmp(cpt, "deep_paths", l) == 0) {
} 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 == 10 && strncmp(cpt, "long_paths", l) == 0) {
} 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 == 10 && strncmp(cpt, "long_names", l) == 0) {
} 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 == 13 && strncmp(cpt, "no_force_dots", l) == 0) {
} 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 == 9 && strncmp(cpt, "lowercase", l) == 0) {
} 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 == 10 && strncmp(cpt, "full_ascii", l) == 0) {
} 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 == 17 && strncmp(cpt, "joliet_long_paths", l) == 0) {
} 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 == 10 && strncmp(cpt, "always_gmt", l) == 0) {
} 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 == 6 && strncmp(cpt, "old_rr", l) == 0) {
} 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 == 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 == 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(l<SfileadrL)
sprintf(xorriso->info_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);


Loading…
Cancel
Save