Commit 0498f818 authored by Thomas Schmitt's avatar Thomas Schmitt

New command -rr_reloc_dir

parent 5d00144a
......@@ -240,6 +240,7 @@ Xorriso_option_return_with;
Xorriso_option_rmi;
Xorriso_option_rollback;
Xorriso_option_rom_toc_scan;
Xorriso_option_rr_reloc_dir;
Xorriso_option_scdbackup_tag;
Xorriso_option_scsi_log;
Xorriso_option_session_log;
......
......@@ -144,6 +144,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->scdbackup_tag_written[0]= 0;
m->scdbackup_tag_listname[0]= 0;
m->relax_compliance= 0;
m->rr_reloc_dir[0]= 0;
m->rr_reloc_flags= 1;
m->untranslated_name_len= 0;
m->do_follow_pattern= 1;
m->do_follow_param= 0;
......
This diff is collapsed.
......@@ -636,6 +636,26 @@ unknown_mode:;
}
/* Command -rr_reloc_dir */
int Xorriso_option_rr_reloc_dir(struct XorrisO *xorriso, char *name, int flag)
{
if(strlen(name) > 255) {
sprintf(xorriso->info_text,
"Name too long with -rr_reloc_dir. Max. 255 bytes allowed.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(strchr(name, '/') != NULL) {
sprintf(xorriso->info_text,
"Name given with -rr_reloc_dir contains '/' character");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
strcpy(xorriso->rr_reloc_dir, name);
return(1);
}
/* Option -scdbackup_tag list_path record_name */
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *listname,
char *recname, int flag)
......
......@@ -473,7 +473,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","print_info","print_mark","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rom_toc_scan","scsi_log",
"reassure","report_about","rom_toc_scan","rr_reloc_dir","scsi_log",
"session_log","signal_handling","sleep",
"speed","split_size","status","status_history_max",
"stdio_sync","stream_recording","system_id","temp_mem_limit",
......@@ -658,7 +658,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"mount",
"* Settings for result writing:",
"joliet", "compliance", "volid", "volset_id", "publisher",
"joliet", "compliance", "rr_reloc_dir", "volid", "volset_id", "publisher",
"application_id", "system_id", "volume_date", "copyright_file",
"abstract_file", "biblio_file", "preparer_id", "out_charset",
"read_mkisofsrc",
......@@ -1559,6 +1559,10 @@ next_command:;
(*idx)++;
Xorriso_option_rom_toc_scan(xorriso, arg1, 0);
} else if(strcmp(cmd,"rr_reloc_dir")==0) {
(*idx)++;
Xorriso_option_rr_reloc_dir(xorriso, arg1, 0);
} else if(strcmp(cmd,"scdbackup_tag")==0) {
(*idx)+= 2;
ret= Xorriso_option_scdbackup_tag(xorriso, arg1, arg2, 0);
......
......@@ -1881,6 +1881,13 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->rr_reloc_dir[0] == 0);
sprintf(line, "-rr_reloc_dir ");
Text_shellsafe(xorriso->rr_reloc_dir, line, 1);
strcat(line, "\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->assert_volid[0] == 0);
sprintf(line, "-assert_volid ");
Text_shellsafe(xorriso->assert_volid, line, 1);
......
......@@ -825,6 +825,10 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
ext|= isoburn_igopt_no_emul_toc;
isoburn_igopt_set_extensions(sopts, ext);
isoburn_igopt_set_relaxed(sopts, relax);
ret = isoburn_igopt_set_rr_reloc(sopts, xorriso->rr_reloc_dir,
xorriso->rr_reloc_flags);
if(ret <= 0)
{ret= 0; goto ex;}
ret= isoburn_igopt_set_untranslated_name_len(sopts,
xorriso->untranslated_name_len);
if(ret <= 0)
......
......@@ -9,7 +9,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 "Version 1.2.1, Feb 05, 2012"
.TH XORRISO 1 "Version 1.2.1, Mar 10, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
......@@ -2280,6 +2280,24 @@ Default setting is
Note: The term "ISO file" means the plain ISO 9660 names and attributes
which get visible if the reader ignores Rock Ridge.
.TP
\fB\-rr_reloc_dir\fR name
Specify the name of the relocation directory in which deep directory subtrees
shall be placed if \-compliance is set to "deep_paths_off". A deep directory
is one that has a chain of 8 parent directories (including root) above itself.
.br
The overall directory tree will appear originally deep when interpreted
as Rock Ridge tree. It will appear as re\-arranged if only ECMA\-119
information is considered.
.br
The default relocation directory is the root directory. By giving a non\-empty
name with \-rr_reloc_dir, a directory in the root directory may get this role.
If that directory does not already exist at \-commit time, then it will get
created and marked for Rock Ridge as relocation artefact. At least on
GNU/Linux it will not be displayed in mounted Rock Ridge images.
.br
The name must not contain a '/' character and must not be longer than
255 bytes.
.TP
\fB\-volid\fR text
Specify the volume ID. \fBxorriso\fR accepts any text up to 32 characters,
but according to rarely obeyed specs stricter rules apply:
......
......@@ -1167,8 +1167,11 @@ int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
/* Command -rom_toc_scan */
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode,
int flag);
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag);
/* Command -rr_reloc_dir */
/* @since 1.2.2 */
int Xorriso_option_rr_reloc_dir(struct XorrisO *xorriso, char *name, int flag);
/* Command -scdbackup_tag */
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *list_path,
......
This diff is collapsed.
......@@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.2.1, Feb 05, 2012"
@c man .TH XORRISO 1 "Version 1.2.1, Mar 10, 2012"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
......@@ -2719,6 +2719,26 @@ Default setting is
Note: The term "ISO file" means the plain ISO 9660 names and attributes
which get visible if the reader ignores Rock Ridge.
@c man .TP
@item -rr_reloc_dir name
@kindex -rr_reloc_dir sets name of relocation directory
@cindex Relocation directory, set name, -rr_reloc_dir
Specify the name of the relocation directory in which deep directory subtrees
shall be placed if -compliance is set to "deep_paths_off". A deep directory
is one that has a chain of 8 parent directories (including root) above itself.
@*
The overall directory tree will appear originally deep when interpreted
as Rock Ridge tree. It will appear as re-arranged if only ECMA-119
information is considered.
@*
The default relocation directory is the root directory. By giving a non-empty
name with -rr_reloc_dir, a directory in the root directory may get this role.
If that directory does not already exist at -commit time, then it will get
created and marked for Rock Ridge as relocation artefact. At least on
GNU/Linux it will not be displayed in mounted Rock Ridge images.
@*
The name must not contain a '/' character and must not be longer than
255 bytes.
@c man .TP
@item -volid text
@kindex -volid sets volume id
@cindex Image, set volume id, -volid
......
......@@ -170,6 +170,8 @@ struct XorrisO { /* the global context of xorriso */
char scdbackup_tag_listname[SfileadrL];
int relax_compliance; /* opaque bitfield to be set by xorrisoburn */
char rr_reloc_dir[256];
int rr_reloc_flags;
int untranslated_name_len;
int do_follow_pattern;
int do_follow_param;
......
#define Xorriso_timestamP "2012.03.10.145124"
#define Xorriso_timestamP "2012.03.10.150003"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment