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