New -find actions update_merge, rm_merge, clear_merge. -cp_clone now merges.

This commit is contained in:
2011-02-12 17:14:23 +00:00
parent 2c37215969
commit 7f01cfd5dc
18 changed files with 435 additions and 116 deletions

View File

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