Browse Source

New command -update_lxi

master
Thomas Schmitt 6 years ago
parent
commit
7b12dd0dda
  1. 9
      xorriso/iso_tree.c
  2. 11
      xorriso/match.c
  3. 23
      xorriso/misc_funct.c
  4. 6
      xorriso/misc_funct.h
  5. 3
      xorriso/opts_d_h.c
  6. 126
      xorriso/opts_i_o.c
  7. 31
      xorriso/parse_exec.c
  8. 13
      xorriso/xorriso.1
  9. 1
      xorriso/xorriso.h
  10. 121
      xorriso/xorriso.info
  11. 15
      xorriso/xorriso.texi
  12. 2
      xorriso/xorriso_timestamp.h

9
xorriso/iso_tree.c

@ -2024,6 +2024,7 @@ ex:;
/* @param flag bit0= a match count !=1 is a FAILURE event
bit1= with bit0 tolerate 0 matches if pattern is a constant
bit2= do not issue debug messages about temporay memory needs
bit3= do not add unresolved pattern to filev
*/
int Xorriso_expand_pattern(struct XorrisO *xorriso,
int num_patterns, char **patterns, int extra_filec,
@ -2092,7 +2093,8 @@ int Xorriso_expand_pattern(struct XorrisO *xorriso,
mem, &dive_count, 1 | abs_adr);
if(ret<=0)
goto ex;
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1) {
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1 &&
!(flag & 8)) {
count++;
Xorriso_eval_nonmatch(xorriso, patterns[i], &nonconst_mismatches, mem, 0);
}
@ -2105,7 +2107,7 @@ int Xorriso_expand_pattern(struct XorrisO *xorriso,
count+= extra_filec;
(*mem)+= extra_filec * sizeof(char *);
if(count<=0)
{ret= 0; goto ex;}
{ret= !!(flag & 8); goto ex;}
ret= Xorriso_alloc_pattern_mem(xorriso, *mem, count, filev, !!(flag & 4));
if(ret<=0)
goto ex;
@ -2122,7 +2124,8 @@ int Xorriso_expand_pattern(struct XorrisO *xorriso,
mem, &dive_count, abs_adr);
if(ret<=0)
goto ex;
if(was_filec == *filec && strcmp(patterns[i],"*")!=0) {
if(was_filec == *filec && strcmp(patterns[i],"*")!=0 && (flag&3) != 1 &&
!(flag & 8)) {
(*filev)[*filec]= strdup(patterns[i]);
if((*filev)[*filec]==NULL) {
(*mem)= strlen(patterns[i])+1;

11
xorriso/match.c

@ -631,6 +631,7 @@ int Xorriso_alloc_pattern_mem(struct XorrisO *xorriso, off_t mem,
/* @param flag bit0= a match count !=1 is a FAILURE event
bit1= with bit0 tolerate 0 matches if pattern is a constant
bit3= do not add unresolved pattern to filev
*/
int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
int num_patterns, char **patterns, int extra_filec,
@ -679,7 +680,8 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
mem, &dive_count, 1 | abs_adr);
if(ret<=0)
goto ex;
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1) {
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1 &&
!(flag & 8)) {
count++;
ret= Xorriso_eval_nonmatch(xorriso, patterns[i],
&nonconst_mismatches, mem, 0);
@ -697,7 +699,7 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
(*mem)+= extra_filec * sizeof(char *);
if(count<=0)
{ret= 0; goto ex;}
{ret= !(flag & 8); goto ex;}
ret= Xorriso_alloc_pattern_mem(xorriso, *mem, count, filev, 0);
if(ret<=0)
@ -709,7 +711,7 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
ret= Xorriso_prepare_expansion_pattern(xorriso, patterns[i], 4);
if(ret<=0)
goto ex;
if(ret == 2)
if(ret==2)
abs_adr= 4;
if(patterns[i][0]=='/' || abs_adr) {
@ -727,7 +729,8 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
if(ret<=0)
goto ex;
if(was_filec == *filec && strcmp(patterns[i],"*")!=0) {
if(was_filec == *filec && strcmp(patterns[i],"*")!=0 && (flag & 3) != 1 &&
!(flag & 8)) {
(*filev)[*filec]= strdup(patterns[i]);
if((*filev)[*filec]==NULL) {
(*mem)= strlen(patterns[i])+1;

23
xorriso/misc_funct.c

@ -1311,3 +1311,26 @@ int Xorriso__to_upper(char *in, char *out, int out_size, int flag)
return(in[i] == 0);
}
/* @param flag bit0= prepend target_prefix even if source_prefix does not get
removed
*/
int Xorriso__exchange_prefix(char *source_prefix, char *target_prefix,
char *eff_source, char *eff_target, int flag)
{
char *source_pt;
strcpy(eff_target, target_prefix);
source_pt= eff_source;
if(source_prefix[0]) {
if(strncmp(source_prefix, eff_source, strlen(source_prefix)) != 0) {
if(!(flag & 1))
return(0);
} else {
source_pt+= strlen(source_prefix);
}
}
strcat(eff_target, source_pt);
return(1);
}

6
xorriso/misc_funct.h

@ -95,5 +95,11 @@ char *Xorriso__hide_mode_text(int hide_mode, int flag);
*/
int Xorriso__to_upper(char *in, char *out, int out_size, int flag);
/* @param flag bit0= prepend target_prefix even if source_prefix does not get
removed
*/
int Xorriso__exchange_prefix(char *source_prefix, char *target_prefix,
char *eff_source, char *eff_target, int flag);
#endif /* ! Xorriso_pvt_misc_includeD */

3
xorriso/opts_d_h.c

@ -1983,6 +1983,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Like -update but affecting all files below directories.",
" -update_l disk_prefix iso_rr_prefix disk_path [***]",
" Performs -update_r with each disk_path.",
" -update_lxi disk_prefix iso_rr_prefix disk_or_iso_rr_path [***]",
" Performs -update_r with each disk_path or corresponding",
" iso_rr_path after exchange of disk_prefix by iso_rr_prefix.",
" -cut_out disk_path byte_offset byte_count iso_rr_path",
" Map a byte interval of a regular disk file into a regular",
" file in the ISO image.",

126
xorriso/opts_i_o.c

@ -553,22 +553,25 @@ ex:;
}
/* Options -map_l , -compare_l , -update_l , -extract_l */
/* Command -map_l , -compare_l , -update_l , -extract_l , -update_lxi */
/* @param flag bit4= do not establish and dispose xorriso->di_array
for update_l
bit8-11= mode 0= -map_l
1= -compare_l
2= -update_l
3= -extract_l
4= -update_lxi
*/
int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag)
{
int ret, end_idx, optc= 0, was_failure= 1, i, fret, mode, problem_count;
int ns_flag= 2|4, nt_flag= 2, opt_args_flag= 2;
int ret, end_idx, optc= 0, was_failure= 1, i, j, fret, mode, problem_count;
int ns_flag= 2|4, nt_flag= 2, opt_args_flag= 2, arg2c= 0, opt2c= 0;
int new_opt2c;
char *source_prefix= NULL, *target_prefix= NULL, *cmd, **optv= NULL;
char *eff_source= NULL, *eff_target= NULL, *source_pt, *s_wd, *t_wd;
char **eff_src_array= NULL, **eff_tgt_array= NULL;
char *eff_source= NULL, *eff_target= NULL, *s_wd, *t_wd;
char **eff_src_array= NULL, **eff_tgt_array= NULL, **opt2v= NULL;
char **arg2v= NULL;
cmd= "-map_l";
s_wd= xorriso->wdx;
@ -587,6 +590,8 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
nt_flag= 2|4;
t_wd= xorriso->wdx;
opt_args_flag= 0;
} else if(mode == 4) {
cmd= "-update_lxi";
}
end_idx= Xorriso_end_idx(xorriso, argc, argv, *idx, 1|2);
@ -614,7 +619,77 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
&optc, &optv, opt_args_flag);
if(ret<=0)
goto ex;
if(mode == 4) {
/* Convert pattern from disk to iso_rr */
arg2c= end_idx - *idx - 2;
Xorriso_alloc_meM(arg2v, char *, arg2c);
for(i = 0; i < arg2c; i++)
arg2v[i]= NULL;
arg2c= 0;
for(i = (*idx) + 2; i < end_idx; i++) {
ret= Xorriso_normalize_img_path(xorriso, s_wd, argv[i],
eff_source, ns_flag);
if(ret<=0)
goto ex;
ret= Xorriso__exchange_prefix(source_prefix, target_prefix,
eff_source, eff_target, 0);
if(ret <= 0)
continue;
Xorriso_alloc_meM(arg2v[arg2c], char, strlen(eff_target) + 1);
strcpy(arg2v[arg2c], eff_target);
arg2c++;
}
/* Expand wildcards in iso_rr, do not include unmatched patterns */
ret= Xorriso_opt_args(xorriso, cmd, arg2c, arg2v, 0, &i,
&opt2c, &opt2v, (1 << 10) | (1 << 7));
if(ret<=0)
goto ex;
/* Convert from iso_rr path to disk path */
new_opt2c= 0;
for(i = 0; i < opt2c; i++) {
ret= Xorriso__exchange_prefix(target_prefix, source_prefix,
opt2v[i], eff_source, 0);
free(opt2v[i]);
opt2v[i]= NULL;
if(ret <= 0)
continue;
Xorriso_alloc_meM(opt2v[new_opt2c], char, strlen(eff_source) + 1);
strcpy(opt2v[new_opt2c], eff_source);
new_opt2c++;
}
opt2c= new_opt2c;
/* Merge both results */
if(opt2c > 0) {
Sfile_destroy_argv(&arg2c, &arg2v, 0);
Xorriso_alloc_meM(arg2v, char *, optc + opt2c);
for(i = 0; i < optc + opt2c; i++)
arg2v[i]= NULL;
arg2c= 0;
for(i= 0; i < optc; i++) {
ret= Xorriso_normalize_img_path(xorriso, s_wd, optv[i],
eff_source, ns_flag);
if(ret<=0)
goto ex;
Xorriso_alloc_meM(arg2v[arg2c], char, strlen(eff_source) + 1);
strcpy(arg2v[arg2c], eff_source);
arg2c++;
}
for(i= 0; i < opt2c; i++) {
for(j= 0; j < optc; j++)
if(strcmp(opt2v[i], arg2v[j]) == 0)
break;
if(j < optc)
continue;
arg2v[arg2c++]= opt2v[i];
opt2v[i]= NULL;
}
Sfile_destroy_argv(&optc, &optv, 0);
optv= arg2v;
arg2v= NULL;
optc= arg2c;
arg2c= 0;
}
}
if(mode == 3 &&
(xorriso->do_restore_sort_lba || !(xorriso->ino_behavior & 4))) {
@ -627,8 +702,9 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
for(i= 0; i < optc; i++)
eff_src_array[i]= eff_tgt_array[i]= NULL;
}
if(mode == 2 && !((xorriso->ino_behavior & 2) || (flag & 16) ||
xorriso->di_array != NULL)) {
if((mode == 2 || mode == 4) &&
!((xorriso->ino_behavior & 2) || (flag & 16) ||
xorriso->di_array != NULL)) {
/* Create all-image node array sorted by isofs.di */
ret= Xorriso_make_di_array(xorriso, 0);
if(ret <= 0)
@ -640,26 +716,23 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
eff_source, ns_flag);
if(ret<=0)
goto ex;
strcpy(eff_target, target_prefix);
source_pt= eff_source;
if(source_prefix[0]) {
if(strncmp(source_prefix, eff_source, strlen(source_prefix))!=0) {
sprintf(xorriso->info_text, "%s: disk_path ", cmd);
Text_shellsafe(eff_source, xorriso->info_text, 1);
strcat(xorriso->info_text, " does not begin with disk_prefix ");
Text_shellsafe(source_prefix, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 1);
ret= 0; goto ex;
}
source_pt+= strlen(source_prefix);
ret= Xorriso__exchange_prefix(source_prefix, target_prefix,
eff_source, eff_target, 0);
if(ret == 0) {
sprintf(xorriso->info_text, "%s: disk_path ", cmd);
Text_shellsafe(eff_source, xorriso->info_text, 1);
strcat(xorriso->info_text, " does not begin with disk_prefix ");
Text_shellsafe(source_prefix, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 1);
}
strcat(eff_target, source_pt);
if(ret <= 0)
goto ex;
if(mode==0)
ret= Xorriso_option_map(xorriso, eff_source, eff_target, 2);
else if(mode==1)
ret= Xorriso_option_compare(xorriso, eff_source, eff_target, 2|8);
else if(mode==2)
else if(mode == 2 || mode == 4)
ret= Xorriso_option_update(xorriso, eff_source, eff_target, 2 | 8 | 16);
else if(mode==3) {
if(eff_src_array != NULL) {
@ -701,7 +774,7 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
if(mode==0)
Xorriso_pacifier_callback(xorriso, "files added", xorriso->pacifier_count,
xorriso->pacifier_total, "", 1);
else if(mode==1 || mode==2)
else if(mode==1 || mode==2 || mode == 4)
Xorriso_pacifier_callback(xorriso, "content bytes read",
xorriso->pacifier_count, 0, "", 1 | 8 | 32);
else if(mode==3)
@ -719,6 +792,13 @@ ex:;
Xorriso_free_meM(eff_target);
(*idx)= end_idx;
Xorriso_opt_args(xorriso, cmd, argc, argv, *idx, &end_idx, &optc, &optv, 256);
Xorriso_opt_args(xorriso, cmd, argc, argv, *idx, &end_idx, &opt2c, &opt2v,
256);
if(arg2c > 0)
Sfile_destroy_argv(&arg2c, &arg2v, 0);
else if(arg2v != NULL)
Xorriso_free_meM(arg2v);
if(ret<=0)
return(ret);
return(!was_failure);

31
xorriso/parse_exec.c

@ -82,6 +82,7 @@ int Xorriso_end_idx(struct XorrisO *xorriso,
bit7= silently tolerate empty argument list
bit8= free the eventually allocated sub_vector
bit9= always expand wildcards
bit10= do not add unresolved pattern to optv
*/
int Xorriso_opt_args(struct XorrisO *xorriso, char *cmd,
int argc, char **argv, int idx,
@ -116,10 +117,19 @@ int Xorriso_opt_args(struct XorrisO *xorriso, char *cmd,
return(*end_idx);
if((flag&16) && (*end_idx)>idx)
(*end_idx)--;
*optc= *end_idx - idx;
*optv= argv+idx;
if(*optc<=0 || !do_expand)
*optv= NULL;
if(*optc<=0 || !do_expand) {
if(*optc > 0) {
Xorriso_alloc_meM(*optv, char *, *optc);
for(i= 0; i < *optc; i++) {
Xorriso_alloc_meM((*optv)[i], char, strlen(argv[idx + i]) + 1);
strcpy((*optv)[i], argv[idx + i]);
}
}
return(1);
}
patterns= calloc(*optc, sizeof(char *));
if(patterns==NULL) {
no_memory:;
@ -147,10 +157,12 @@ no_memory:;
}
if(flag&2)
ret= Xorriso_expand_disk_pattern(xorriso, nump, patterns, was_empty,
&filec, &filev, &mem, (flag>>5)&3);
&filec, &filev, &mem,
((flag >> 5) & 3) | ((!!(flag & 1024)) << 3));
else
ret= Xorriso_expand_pattern(xorriso, nump, patterns, was_empty,
&filec, &filev, &mem, (flag>>5)&3);
&filec, &filev, &mem,
((flag >> 5) & 3) | ((!!(flag & 1024)) << 3));
if(ret<=0)
{ret= 0; goto ex;}
for(i= 0; i<was_empty; i++) {
@ -580,7 +592,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"getfattr","getfattri","getfattr_r","getfattr_ri","hide",
"launch_frontend","ls","lsi","lsl","lsli","lsd","lsdi","lsdl","lsdli",
"lsx","lslx","lsdx","lsdlx","map_l","mv","mvi","mkdir","mkdiri",
"not_paths","rm","rmi","rm_r","rm_ri","rmdir","rmdiri","update_l",
"not_paths","rm","rmi","rm_r","rm_ri","rmdir","rmdiri",
"update_l","update_lx","update_lxi",
"setfacl","setfacli","setfacl_list","setfacl_listi",
"setfacl_r","setfacl_ri","setfattr","setfattri",
"setfattr_list","setfattr_listi","setfattr_r","setfattr_ri",
@ -704,7 +717,8 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"* Inserting files into ISO image:",
"disk_pattern", "add_plainly",
"mkdir", "lns", "add", "path_list", "quoted_path_list",
"map", "map_single", "map_l", "update", "update_r", "update_l",
"map", "map_single", "map_l", "update", "update_r",
"update_l", "update_lx", "update_lxi",
"cut_out", "cpr",
"clone", "cp_clone",
@ -1927,9 +1941,12 @@ if (0) {
(*idx)+= 2;
ret= Xorriso_option_update(xorriso, arg1, arg2, 1);
} else if(strcmp(cmd,"update_l")==0) {
} else if(strcmp(cmd,"update_l") == 0 || strcmp(cmd,"update_lx") == 0) {
ret= Xorriso_option_map_l(xorriso, argc, argv, idx, 2<<8);
} else if(strcmp(cmd,"update_lxi") == 0) {
ret= Xorriso_option_map_l(xorriso, argc, argv, idx, 4 << 8);
} else if(strcmp(cmd,"update_r")==0) {
(*idx)+= 2;
ret= Xorriso_option_update(xorriso, arg1, arg2, 1|8);

13
xorriso/xorriso.1

@ -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.4.7, Nov 19, 2016"
.TH XORRISO 1 "Version 1.4.7, Dec 05, 2016"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1267,6 +1267,17 @@ exist, then iso_rr_path gets deleted.
Perform \-update_r with each of the disk_path parameters. iso_rr_path will be
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
.TP
\fB\-update_lxi\fR disk_prefix iso_rr_prefix disk_path [***]
Perform \-update_r with each of the disk_path parameters and with iso_rr_paths
in the ISO filesystem which are derived from the disk_path parameters after
exchanging disk_prefix by iso_rr_prefix. So, other than \-update_l, this detects
missing matches of disk_path and deletes the corresponding iso_rr_path.
.br
Note that relative disk_paths and disk_path patterns are interpreted as
sub paths of the current disk working directory \-cdx. The corresponding
iso_rr_paths are derived by exchanging disk_prefix by iso_rr_prefix before
pattern expansion happens. The current \-cdi directory has no influence.
.TP
\fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path
Map a byte interval of a regular disk file into a regular file in the ISO
image.

1
xorriso/xorriso.h

@ -1741,6 +1741,7 @@ int Xorriso_option_map(struct XorrisO *xorriso, char *disk_path,
1= -compare_l
2= -update_l
3= -extract_l
4= -update_lxi @since 1.4.8
*/
/* @since 0.2.0 */
int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,

121
xorriso/xorriso.info

@ -1134,6 +1134,17 @@ filesystem.
Perform -update_r with each of the disk_path parameters.
iso_rr_path will be composed from disk_path by replacing
disk_prefix by iso_rr_prefix.
-update_lxi disk_prefix iso_rr_prefix disk_path [***]
Perform -update_r with each of the disk_path parameters and with
iso_rr_paths in the ISO filesystem which are derived from the
disk_path parameters after exchanging disk_prefix by iso_rr_prefix.
So, other than -update_l, this detects missing matches of disk_path
and deletes the corresponding iso_rr_path.
Note that relative disk_paths and disk_path patterns are
interpreted as sub paths of the current disk working directory
-cdx. The corresponding iso_rr_paths are derived by exchanging
disk_prefix by iso_rr_prefix before pattern expansion happens. The
current -cdi directory has no influence.
-cut_out disk_path byte_offset byte_count iso_rr_path
Map a byte interval of a regular disk file into a regular file in
the ISO image. This may be necessary if the disk file is larger
@ -5214,7 +5225,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 66)
* -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 170)
* -clone copies ISO directory tree: Insert. (line 181)
* -close controls media closing: SetWrite. (line 401)
* -close_damaged closes damaged track and session: Writing. (line 164)
* -close_filter_list bans filter registration: Filter. (line 50)
@ -5227,12 +5238,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -concat copies ISO file content: Restore. (line 118)
* -copyright_file sets copyright file name: SetWrite. (line 239)
* -cpax copies files to disk: Restore. (line 100)
* -cpr inserts like with cp -r: Insert. (line 149)
* -cpr inserts like with cp -r: Insert. (line 160)
* -cpx copies files to disk: Restore. (line 89)
* -cp_clone copies ISO directory tree: Insert. (line 181)
* -cp_clone copies ISO directory tree: Insert. (line 192)
* -cp_rx copies file trees to disk: Restore. (line 103)
* -cp_rx copies file trees to disk <1>: Restore. (line 111)
* -cut_out inserts piece of data file: Insert. (line 124)
* -cut_out inserts piece of data file: Insert. (line 135)
* -data_cache_size adjusts read cache size: Loading. (line 332)
* -dev acquires one drive for input and output: AqDrive. (line 12)
* -devices gets list of drives: Inquiry. (line 7)
@ -5293,7 +5304,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_formats lists available formats: Writing. (line 129)
* -list_profiles lists supported media: Writing. (line 177)
* -list_speeds lists available write speeds: Writing. (line 140)
* -lns creates ISO symbolic link: Insert. (line 166)
* -lns creates ISO symbolic link: Insert. (line 177)
* -load addresses a particular session as input: Loading. (line 33)
* -local_charset sets terminal character set: Charset. (line 57)
* -logfile logs output channels to file: Frontend. (line 19)
@ -5310,7 +5321,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_single inserts path: Insert. (line 93)
* -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 182)
* -mkdir creates ISO directory: Insert. (line 162)
* -mkdir creates ISO directory: Insert. (line 173)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 336)
* -mount issues mount command for ISO session: Restore. (line 146)
* -mount_cmd composes mount command line: Inquiry. (line 49)
@ -5402,6 +5413,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -uid sets global ownership: SetWrite. (line 284)
* -update inserts path if different: Insert. (line 100)
* -update_l inserts paths if different: Insert. (line 120)
* -update_l inserts paths if different <1>: Insert. (line 124)
* -update_r inserts paths if different: Insert. (line 110)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 374)
* -use_readline enables readline for dialog: DialogCtl. (line 26)
@ -5471,9 +5483,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119)
* Dialog, line editing, -use_readline: DialogCtl. (line 26)
* Dialog, terminal geometry, -page: DialogCtl. (line 18)
* Directories, copy, -cp_clone: Insert. (line 181)
* Directory, copy, -clone: Insert. (line 170)
* Directory, create, -mkdir: Insert. (line 162)
* Directories, copy, -cp_clone: Insert. (line 192)
* Directory, copy, -clone: Insert. (line 181)
* Directory, create, -mkdir: Insert. (line 173)
* Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: Loading. (line 73)
@ -5556,6 +5568,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, file exclusion, -quoted_not_list: SetInsert. (line 66)
* Insert, if different, -update: Insert. (line 100)
* Insert, if different, -update_l: Insert. (line 120)
* Insert, if different, -update_lxi: Insert. (line 124)
* Insert, if different, -update_r: Insert. (line 110)
* Insert, large file splitting, -split_size: SetInsert. (line 143)
* Insert, limit data file size, -file_size_limit: SetInsert. (line 7)
@ -5567,9 +5580,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, paths from disk file, -map_l: Insert. (line 96)
* Insert, paths from disk file, -path_list: Insert. (line 81)
* Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
* Insert, paths, -cpr: Insert. (line 149)
* Insert, paths, -cpr: Insert. (line 160)
* Insert, pathspecs, -add: Insert. (line 44)
* Insert, piece of data file, -cut_out: Insert. (line 124)
* Insert, piece of data file, -cut_out: Insert. (line 135)
* Interval reader for system area and partitions: Bootable. (line 32)
* ISO 9660, _definition: Model. (line 6)
* iso_rr_path, _definition: Insert. (line 7)
@ -5684,7 +5697,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
* SUN Disk Label, production: Bootable. (line 354)
* SUN SPARC boot images, activation: Bootable. (line 427)
* Symbolic link, create, -lns: Insert. (line 166)
* Symbolic link, create, -lns: Insert. (line 177)
* System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 278)
* Table-of-content, show, -toc: Inquiry. (line 27)
@ -5745,47 +5758,47 @@ Node: ArgSort27030
Node: AqDrive28524
Node: Loading32638
Node: Insert52745
Node: SetInsert63329
Node: Manip72648
Node: CmdFind82607
Node: Filter101379
Node: Writing106001
Node: SetWrite116157
Node: Bootable140916
Node: Jigdo166416
Node: Charset170675
Node: Exception174004
Node: DialogCtl180133
Node: Inquiry182735
Node: Navigate191523
Node: Verify199818
Node: Restore209696
Node: Emulation218309
Node: Scripting228768
Node: Frontend236551
Node: Examples246177
Node: ExDevices247355
Node: ExCreate248016
Node: ExDialog249316
Node: ExGrowing250587
Node: ExModifying251396
Node: ExBootable251906
Node: ExCharset252461
Node: ExPseudo253357
Node: ExCdrecord254284
Node: ExMkisofs254604
Node: ExGrowisofs255961
Node: ExException257115
Node: ExTime257573
Node: ExIncBackup258031
Node: ExRestore262057
Node: ExRecovery263003
Node: Files263575
Node: Environ264909
Node: Seealso265615
Node: Bugreport266332
Node: Legal266923
Node: CommandIdx267935
Node: ConceptIdx285123
Node: SetInsert64032
Node: Manip73351
Node: CmdFind83310
Node: Filter102082
Node: Writing106704
Node: SetWrite116860
Node: Bootable141619
Node: Jigdo167119
Node: Charset171378
Node: Exception174707
Node: DialogCtl180836
Node: Inquiry183438
Node: Navigate192226
Node: Verify200521
Node: Restore210399
Node: Emulation219012
Node: Scripting229471
Node: Frontend237254
Node: Examples246880
Node: ExDevices248058
Node: ExCreate248719
Node: ExDialog250019
Node: ExGrowing251290
Node: ExModifying252099
Node: ExBootable252609
Node: ExCharset253164
Node: ExPseudo254060
Node: ExCdrecord254987
Node: ExMkisofs255307
Node: ExGrowisofs256664
Node: ExException257818
Node: ExTime258276
Node: ExIncBackup258734
Node: ExRestore262760
Node: ExRecovery263706
Node: Files264278
Node: Environ265612
Node: Seealso266318
Node: Bugreport267035
Node: Legal267626
Node: CommandIdx268638
Node: ConceptIdx285899

End Tag Table

15
xorriso/xorriso.texi

@ -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.4.7, Nov 19, 2016"
@c man .TH XORRISO 1 "Version 1.4.7, Dec 05, 2016"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1563,6 +1563,19 @@ exist, then iso_rr_path gets deleted.
Perform -update_r with each of the disk_path parameters. iso_rr_path will be
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
@c man .TP
@item -update_lxi disk_prefix iso_rr_prefix disk_path [***]
@kindex -update_l inserts paths if different
@cindex Insert, if different, -update_lxi
Perform -update_r with each of the disk_path parameters and with iso_rr_paths
in the ISO filesystem which are derived from the disk_path parameters after
exchanging disk_prefix by iso_rr_prefix. So, other than -update_l, this detects
missing matches of disk_path and deletes the corresponding iso_rr_path.
@*
Note that relative disk_paths and disk_path patterns are interpreted as
sub paths of the current disk working directory -cdx. The corresponding
iso_rr_paths are derived by exchanging disk_prefix by iso_rr_prefix before
pattern expansion happens. The current -cdi directory has no influence.
@c man .TP
@item -cut_out disk_path byte_offset byte_count iso_rr_path
@kindex -cut_out inserts piece of data file
@cindex Insert, piece of data file, -cut_out

2
xorriso/xorriso_timestamp.h

@ -1 +1 @@
#define Xorriso_timestamP "2016.12.05.101546"
#define Xorriso_timestamP "2016.12.05.132927"

Loading…
Cancel
Save