|
|
|
@ -533,6 +533,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|
|
|
|
"-no-mac-files", "-chrp-boot",
|
|
|
|
|
"--hardlinks", "--acl", "--xattr", "--md5", "--for_backup",
|
|
|
|
|
"--protective-msdos-label", "--boot-catalog-hide", "--no-emul-toc",
|
|
|
|
|
"-disallow_dir_id_ext",
|
|
|
|
|
""
|
|
|
|
|
};
|
|
|
|
|
static char arg1_options[][41]= {
|
|
|
|
@ -683,6 +684,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
|
|
|
|
|
" -input-charset CHARSET Local input charset for file name conversion",
|
|
|
|
|
" -output-charset CHARSET Output charset for file name conversion",
|
|
|
|
|
" -iso-level LEVEL Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2",
|
|
|
|
|
" -disallow_dir_id_ext Do not allow dot in ISO directory names",
|
|
|
|
|
" -J, -joliet Generate Joliet directory information",
|
|
|
|
|
" -joliet-long Allow Joliet file names to be 103 Unicode characters",
|
|
|
|
|
" -U, -untranslated-filenames Allow Untranslated filenames (for HPUX & AIX - violates ISO9660).",
|
|
|
|
@ -876,9 +878,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
int argc, char **argv, int flag)
|
|
|
|
|
{
|
|
|
|
|
int ret, i, j, was_path= 0, was_other_option= 0, mem_graft_points, mem;
|
|
|
|
|
int do_print_size= 0, fd, idx, iso_level= 0, emul_boot= 2;
|
|
|
|
|
int do_print_size= 0, fd, idx, iso_level= 1, emul_boot= 2;
|
|
|
|
|
int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0;
|
|
|
|
|
int dir_mode= -1, file_mode= -1, count, partition_number;
|
|
|
|
|
int dir_mode= -1, file_mode= -1, count, partition_number, allow_dir_id_ext= 1;
|
|
|
|
|
mode_t mode_and, mode_or;
|
|
|
|
|
int with_boot_image= 0, with_cat_path= 0;
|
|
|
|
|
int *weight_list= NULL, weight_count= 0;
|
|
|
|
@ -971,7 +973,6 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
if(iso_level == 4)
|
|
|
|
|
xorriso->do_iso1999= 1;
|
|
|
|
|
else {
|
|
|
|
|
xorriso->file_size_limit= 0;
|
|
|
|
|
sprintf(sfe, "iso_9660_level=%s", argv[i]);
|
|
|
|
|
ret= Xorriso_relax_compliance(xorriso, sfe, 0);
|
|
|
|
|
if(ret <= 0)
|
|
|
|
@ -1047,6 +1048,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
goto not_enough_args;
|
|
|
|
|
i++;
|
|
|
|
|
Xorriso_option_stdio_sync(xorriso, argv[i], 0);
|
|
|
|
|
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
|
|
|
|
|
allow_dir_id_ext= 0;
|
|
|
|
|
} else
|
|
|
|
|
was_other_option= 1;
|
|
|
|
|
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 0);
|
|
|
|
@ -1176,10 +1179,12 @@ not_enough_args:;
|
|
|
|
|
} else if(strcmp(argv[i], "-o")==0) {
|
|
|
|
|
i++;
|
|
|
|
|
/* was already handled in first argument scan */;
|
|
|
|
|
} else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0) {
|
|
|
|
|
} else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0 ||
|
|
|
|
|
strcmp(argv[i], "-prev-session")==0) {
|
|
|
|
|
i++;
|
|
|
|
|
/* was already handled in first argument scan */;
|
|
|
|
|
} else if(strcmp(argv[i], "-C")==0) {
|
|
|
|
|
} else if(strcmp(argv[i], "-C")==0 ||
|
|
|
|
|
strcmp(argv[i], "-cdrecord-params")==0) {
|
|
|
|
|
i++;
|
|
|
|
|
/* was already handled in first argument scan */;
|
|
|
|
|
} else if(strcmp(argv[i], "-help")==0) {
|
|
|
|
@ -1434,6 +1439,14 @@ not_enough_args:;
|
|
|
|
|
strncpy(xorriso->ascii_disc_label, argv[i], Xorriso_disc_label_sizE - 1);
|
|
|
|
|
xorriso->ascii_disc_label[Xorriso_disc_label_sizE - 1] = 0;
|
|
|
|
|
|
|
|
|
|
} else if(strcmp(argv[i], "--stdio_sync")==0) {
|
|
|
|
|
if(i+1>=argc)
|
|
|
|
|
goto not_enough_args;
|
|
|
|
|
i++;
|
|
|
|
|
/* was already handled in first argument scan */;
|
|
|
|
|
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
|
|
|
|
|
/* was already handled in first argument scan */;
|
|
|
|
|
|
|
|
|
|
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
|
|
|
|
|
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 1);
|
|
|
|
|
if(ret > 0) {
|
|
|
|
@ -1478,7 +1491,18 @@ is_pathspec_2:;
|
|
|
|
|
if(ret<=0)
|
|
|
|
|
goto problem_handler_2;
|
|
|
|
|
was_path= 1;
|
|
|
|
|
|
|
|
|
|
/* Enforce odd mkisofs defaults on first pathspec */
|
|
|
|
|
xorriso->pacifier_style= 1;
|
|
|
|
|
if(allow_dir_id_ext == 1) {
|
|
|
|
|
Xorriso_relax_compliance(xorriso, "allow_dir_id_ext", 0);
|
|
|
|
|
allow_dir_id_ext= 2;
|
|
|
|
|
}
|
|
|
|
|
if(iso_level >= 1 && iso_level <= 3) {
|
|
|
|
|
sprintf(sfe, "iso_9660_level=%d", iso_level);
|
|
|
|
|
Xorriso_relax_compliance(xorriso, sfe, 0);
|
|
|
|
|
iso_level= 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
continue; /* regular bottom of loop */
|
|
|
|
|
problem_handler_2:;
|
|
|
|
|