Disabled TOC emulation with -as mkisofs. May be re-enabled by --emul-toc.

This commit is contained in:
2010-12-28 12:33:52 +00:00
parent 3f3aa05f64
commit d83fc6cfec
5 changed files with 77 additions and 51 deletions

View File

@ -533,7 +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",
"--emul-toc", "-disallow_dir_id_ext",
""
};
static char arg1_options[][41]= {
@ -772,6 +772,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" --sort-weight NUMBER FILE Set LBA weight number to file or file tree",
" --stdio_sync on|off|number Control forced output to disk files",
" --no-emul-toc Save 64 kB size on random access output files",
" --emul-toc Multi-session history on such output files",
" -z, -transparent-compression",
" Enable transparent compression of files",
" -v, -verbose Verbose",
@ -882,7 +883,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0;
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 with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
int *weight_list= NULL, weight_count= 0;
int *delay_opt_list= NULL, delay_opt_count= 0;
char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL];
@ -1050,6 +1051,12 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
Xorriso_option_stdio_sync(xorriso, argv[i], 0);
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
allow_dir_id_ext= 0;
} else if(strcmp(argv[i], "--emul-toc")==0) {
with_emul_toc= 1;
xorriso->no_emul_toc&= ~1;
} else if(strcmp(argv[i], "--no-emul-toc")==0) {
with_emul_toc= 0;
xorriso->no_emul_toc|= 1;
} else
was_other_option= 1;
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 0);
@ -1313,8 +1320,6 @@ not_enough_args:;
} else if(strcmp(argv[i], "-z")==0 ||
strcmp(argv[i], "-transparent-compression")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "--no-emul-toc")==0) {
xorriso->no_emul_toc|= 1;
} else if(strcmp(argv[i], "-U") == 0 ||
strcmp(argv[i], "-untranslated-filenames") == 0) {
Xorriso_relax_compliance(xorriso,
@ -1444,6 +1449,11 @@ not_enough_args:;
goto not_enough_args;
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "--emul-toc")==0 ||
strcmp(argv[i], "--no-emul-toc")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
/* was already handled in first argument scan */;
@ -1503,6 +1513,10 @@ is_pathspec_2:;
Xorriso_relax_compliance(xorriso, sfe, 0);
iso_level= 0;
}
/* For the sake of compatibility give up emulated multi-session by default
*/
if(with_emul_toc == 0)
xorriso->no_emul_toc|= 1;
}
continue; /* regular bottom of loop */
problem_handler_2:;