|
|
|
@ -598,6 +598,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|
|
|
|
"--stdio_sync", "--quoted_path_list", "--efi-boot", "--embedded-boot", |
|
|
|
|
"-isohybrid-mbr", "-e", "-partition_offset", "-partition_hd_cyl", |
|
|
|
|
"-partition_sec_hd", "-partition_cyl_align", "-untranslated_name_len", |
|
|
|
|
"-rr_reloc_dir", |
|
|
|
|
"" |
|
|
|
|
}; |
|
|
|
|
static char arg2_options[][41]= { |
|
|
|
@ -650,8 +651,8 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
/* mkisofs 2.01 options which are not scheduled for implementation, yet */ |
|
|
|
|
static char ignored_arg0_options[][41]= { |
|
|
|
|
"-allow-leading-dots", "-ldots", "-allow-multidot", |
|
|
|
|
"-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-D", |
|
|
|
|
"-disable-deep-relocation", "-hide-rr-moved", |
|
|
|
|
"-cache-inodes", "-no-cache-inodes", "-check-oldnames", |
|
|
|
|
"-disable-deep-relocation", |
|
|
|
|
"-L", "-nobak", |
|
|
|
|
"-no-bak", "-force-rr", "-relaxed-filenames", "-T", |
|
|
|
|
"-no-iso-translate", |
|
|
|
@ -726,6 +727,10 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
|
|
|
|
|
" -l, -full-iso9660-filenames Allow full 31 character filenames for ISO9660 names", |
|
|
|
|
" -max-iso9660-filenames Allow 37 character filenames for ISO9660 names (violates ISO9660)", |
|
|
|
|
" -N, -omit-version-number Omit version number from ISO9660 filename (violates ISO9660)", |
|
|
|
|
" -D, -disable-deep-relocation", |
|
|
|
|
" Disable deep directory relocation (violates ISO9660)", |
|
|
|
|
" -hide-rr-moved Relocate deep directories to /.rr_moved", |
|
|
|
|
" -rr_reloc_dir NAME Set deep directory relocation target in root", |
|
|
|
|
" -o FILE, -output FILE Set output file name", |
|
|
|
|
" -m GLOBFILE, -exclude GLOBFILE", |
|
|
|
|
" Exclude file name", |
|
|
|
@ -956,7 +961,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt; |
|
|
|
|
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]; |
|
|
|
|
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", ""}; |
|
|
|
@ -1626,6 +1631,35 @@ not_enough_args:;
|
|
|
|
|
} else if(strcmp(argpt, "--no_rc")==0) { |
|
|
|
|
/* was already handled in Xorriso_prescan_args */; |
|
|
|
|
|
|
|
|
|
} else if(strcmp(argpt, "-D") == 0 || |
|
|
|
|
strcmp(argpt, "-disable-deep-relocation") == 0) { |
|
|
|
|
ret= Xorriso_option_compliance(xorriso, "deep_paths", 0); |
|
|
|
|
if(ret <= 0) |
|
|
|
|
goto problem_handler_2; |
|
|
|
|
|
|
|
|
|
} else if(strcmp(argpt, "-hide-rr-moved") == 0) { |
|
|
|
|
rr_reloc_dir_pt= ".rr_moved"; |
|
|
|
|
goto rr_reloc_dir; |
|
|
|
|
|
|
|
|
|
} else if(strcmp(argpt, "-rr_reloc_dir") == 0) { |
|
|
|
|
i++; |
|
|
|
|
rr_reloc_dir_pt= argv[i]; |
|
|
|
|
rr_reloc_dir:; |
|
|
|
|
if(rr_reloc_dir_pt[0] == '/') |
|
|
|
|
rr_reloc_dir_pt++; |
|
|
|
|
if(strchr(rr_reloc_dir_pt, '/') != NULL) { |
|
|
|
|
sprintf(xorriso->info_text, |
|
|
|
|
"-as %s -rr_reloc_dir %s : May only use directories in root directory", |
|
|
|
|
whom, Text_shellsafe(argv[i], sfe, 0)); |
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE",0); |
|
|
|
|
} |
|
|
|
|
ret= Xorriso_option_rr_reloc_dir(xorriso, rr_reloc_dir_pt, 0); |
|
|
|
|
if(ret <= 0) |
|
|
|
|
goto problem_handler_2; |
|
|
|
|
ret= Xorriso_option_compliance(xorriso, "deep_paths_off", 0); |
|
|
|
|
if(ret <= 0) |
|
|
|
|
goto problem_handler_2; |
|
|
|
|
|
|
|
|
|
} else if(argpt[0]=='-' && argpt[1]!=0) { |
|
|
|
|
hargv[0]= argpt; |
|
|
|
|
ret= Xorriso_genisofs_count_args(xorriso, argc - i, hargv, &count, 1); |
|
|
|
|