New -find actions update_merge, rm_merge, clear_merge. -cp_clone now merges.
This commit is contained in:
@ -900,6 +900,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
||||
char *ept, *add_pt, eff_path[SfileadrL], indev[SfileadrL+8], msc[80], *cpt;
|
||||
char old_root[SfileadrL];
|
||||
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt;
|
||||
char *rm_merge_args[3];
|
||||
|
||||
/* >>> This should not be static. Why is it ? */
|
||||
static char *sort_weight_args[4]= {"", "-exec", "sort_weight", ""};
|
||||
@ -1595,8 +1596,8 @@ is_pathspec_2:;
|
||||
goto problem_handler_2;
|
||||
}
|
||||
}
|
||||
/* update_r */
|
||||
ret= Xorriso_option_update(xorriso, disk_pt, iso_rr_pt, 1 | 8);
|
||||
/* update_merge */
|
||||
ret= Xorriso_option_update(xorriso, disk_pt, iso_rr_pt, 1 | 8 | 32);
|
||||
} else {
|
||||
mem_graft_points= xorriso->allow_graft_points;
|
||||
xorriso->allow_graft_points= 1;
|
||||
@ -1634,6 +1635,21 @@ problem_handler_2:;
|
||||
continue;
|
||||
goto ex;
|
||||
}
|
||||
|
||||
if(old_root[0]) {
|
||||
/* Delete all visited nodes which were not found on disk */
|
||||
if(root_seen)
|
||||
rm_merge_args[0]= xorriso->wdi;
|
||||
else
|
||||
rm_merge_args[0]= "/";
|
||||
rm_merge_args[1]= "-exec";
|
||||
rm_merge_args[2]= "rm_merge";
|
||||
zero= 0;
|
||||
ret= Xorriso_option_find(xorriso, 3, rm_merge_args, &zero, 2);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
}
|
||||
|
||||
if(lower_r) {
|
||||
static char *lower_r_args[3]= {"/", "-exec", "mkisofs_r"};
|
||||
zero= 0;
|
||||
|
Reference in New Issue
Block a user