Now expecting disk_path with -as mkisofs -hfs-bless
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user