New TOC layout with volume id and sbsector=, new option -rom_toc_scan

This commit is contained in:
2008-05-08 14:19:09 +00:00
parent 7f1b8b07a6
commit 0e1f89d7c3
7 changed files with 94 additions and 15 deletions

View File

@ -2695,6 +2695,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->global_file_mode= 0444;
m->do_overwrite= 2;
m->do_reassure= 0;
m->toc_emulation_flag= 0;
m->indev[0]= 0;
m->in_drive_handle= NULL;
m->in_volset_handle= NULL;
@ -4034,6 +4035,12 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
#endif /* Xorriso_with_readlinE */
is_default= !(xorriso->toc_emulation_flag&1);
sprintf(line,"-rom_toc_scan %s\n",
xorriso->toc_emulation_flag&1 ? "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
if(strcmp(xorriso->indev,xorriso->outdev)==0) {
sprintf(line,"-dev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
Xorriso_status_result(xorriso,filter,fp,flag&2);
@ -8977,6 +8984,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" growing to modifying.",
" -outdev address",
" Set output drive and switch from growing to modifying.",
" -rom_toc_scan \"on\"|\"off\"",
" Enable scanning for ISO sessions on read-only drives/media.",
" -ban_stdio_write",
" Allow for writing only the usage of optical drives.",
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
@ -10365,6 +10374,22 @@ int Xorriso_option_rollback(struct XorrisO *xorriso, int flag)
}
/* Option -rom_toc_scan */
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag)
{
if(strcmp(mode, "off")==0)
xorriso->toc_emulation_flag= 0;
else if(strcmp(mode, "on")==0)
xorriso->toc_emulation_flag= 1;
else {
sprintf(xorriso->info_text, "-rom_toc_scan: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
return(1);
}
/* Option -session_log */
int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag)
{
@ -11149,6 +11174,10 @@ next_command:;
if(end_ret!=2)
{ret= 3; goto ex;}
} else if(strcmp(cmd,"rom_toc_scan")==0) {
(*idx)++;
Xorriso_option_rom_toc_scan(xorriso, arg1, 0);
} else if(strcmp(cmd,"session_log")==0) {
(*idx)++;
ret= Xorriso_option_session_log(xorriso, arg1, 0);