New command -update_lxi
This commit is contained in:
parent
9b75d21e2a
commit
7b12dd0dda
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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.",
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2016.12.05.101546"
|
||||
#define Xorriso_timestamP "2016.12.05.132927"
|
||||
|
Loading…
Reference in New Issue
Block a user