Now expecting disk_path with -as mkisofs -hfs-bless

This commit is contained in:
2012-06-21 20:43:02 +00:00
parent abb6a2704f
commit 5315d3a8ca
5 changed files with 71 additions and 39 deletions

View File

@@ -1097,9 +1097,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
char *old_root= NULL, *argpt, *hargv[1];
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt;
char *rm_merge_args[3], *rr_reloc_dir_pt= NULL;
/* >>> This should not be static. Why is it ? */
static char *sort_weight_args[4]= {"", "-exec", "sort_weight", ""};
char *sort_weight_args[4], *bless_args[6];
struct stat stbuf;
@@ -2119,6 +2117,8 @@ problem_handler_2:;
/* find argv[i+2] -exec sort_weight argv[i+1] */
zero= 0;
sort_weight_args[0]= argv[i + 2];
sort_weight_args[1]= "-exec";
sort_weight_args[2]= "sort_weight";
sort_weight_args[3]= argv[i + 1];
ret= Xorriso_option_find(xorriso, 4, sort_weight_args, &zero, 2);
if(ret > 0)
@@ -2274,9 +2274,25 @@ problem_handler_2:;
goto problem_handler_boot;
} else if(strcmp(argpt, "-hfs-bless") == 0) {
ret= Xorriso_hfsplus_bless(xorriso, argv[i + 1], NULL, "ppc_bootdir", 0);
if(ret <= 0)
static char *bless_arg_data[6]= {
"/", "-disk_path", "", "-exec", "set_hfs_bless", "p"};
for(j= 0; j < 6; j++)
bless_args[j]= bless_arg_data[j];
bless_args[2]= argv[i + 1];
zero= 0;
ret= Xorriso_option_find(xorriso, 6, bless_args, &zero, 2 | 16);
if(ret<=0)
goto ex;
if(ret < 2) {
sprintf(xorriso->info_text,
"-hfs-bless: Could not find a data file which stems from underneath disk directory ");
Text_shellsafe(argv[i + 1], xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
Xorriso_msgs_submit(xorriso, 0,
"Consider to use: -hfs-bless-by p ISO_RR_PATH", 0, "HINT", 0);
goto problem_handler_boot;
}
} else if(strcmp(argpt, "-hfs-bless-by") == 0) {
ret= Xorriso_hfsplus_bless(xorriso, argv[i + 2], NULL, argv[i + 1], 0);