diff --git a/libisoburn/trunk/xorriso/drive_mgt.c b/libisoburn/trunk/xorriso/drive_mgt.c index 16cbbdea..b5c63bae 100644 --- a/libisoburn/trunk/xorriso/drive_mgt.c +++ b/libisoburn/trunk/xorriso/drive_mgt.c @@ -320,6 +320,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr, aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3); if(xorriso->toc_emulation_flag & 4) aquire_flag|= 128; + if(xorriso->toc_emulation_flag & 8) + aquire_flag|= 512; if(!(xorriso->do_aaip & 1)) aquire_flag|= 32; if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32))) diff --git a/libisoburn/trunk/xorriso/iso_img.c b/libisoburn/trunk/xorriso/iso_img.c index 2d8ccbb7..2afcc555 100644 --- a/libisoburn/trunk/xorriso/iso_img.c +++ b/libisoburn/trunk/xorriso/iso_img.c @@ -1000,6 +1000,10 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode, aquire_flag= 1; if((xorriso->toc_emulation_flag & 2) && adr_mode == 3) aquire_flag|= 16; + if(xorriso->toc_emulation_flag & 4) + aquire_flag|= 128; + if(xorriso->toc_emulation_flag & 8) + aquire_flag|= 512; ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag); burn_preset_device_open(1, 0, 0); Xorriso_process_msg_queues(xorriso,0); diff --git a/libisoburn/trunk/xorriso/opts_d_h.c b/libisoburn/trunk/xorriso/opts_d_h.c index 752cd2de..eefbab1f 100644 --- a/libisoburn/trunk/xorriso/opts_d_h.c +++ b/libisoburn/trunk/xorriso/opts_d_h.c @@ -1537,6 +1537,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " displacement versus the start address for which the image", " was prepared.", " -rom_toc_scan \"on\"|\"force\"|\"off\"[:\"emul_on\"|\"emul_off\"]", +" [:\"emul_wide\"|\"emul_narrow\"]", " Enable scanning for ISO sessions on read-only drives/media", " resp. on overwriteable media with emulated TOC.", " -calm_drive \"in\"|\"out\"|\"all\"|\"on\"|\"off\"", diff --git a/libisoburn/trunk/xorriso/opts_p_z.c b/libisoburn/trunk/xorriso/opts_p_z.c index 91f81e8f..27bac802 100644 --- a/libisoburn/trunk/xorriso/opts_p_z.c +++ b/libisoburn/trunk/xorriso/opts_p_z.c @@ -620,7 +620,6 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag) int l; char *cpt, *npt; - xorriso->toc_emulation_flag= 0; npt= cpt= mode; for(cpt= mode; npt != NULL; cpt= npt + 1) { npt= strchr(cpt,':'); @@ -629,20 +628,22 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag) else l= npt-cpt; if(l==0) - goto unknown_mode; - xorriso->toc_emulation_flag&= ~4; + continue; if(strncmp(cpt, "off", l) == 0) - xorriso->toc_emulation_flag&= ~1; + xorriso->toc_emulation_flag&= ~5; else if(strncmp(cpt, "on", l) == 0) - xorriso->toc_emulation_flag|= 1; + xorriso->toc_emulation_flag= (xorriso->toc_emulation_flag & ~4) | 1; else if(strncmp(cpt, "force", l) == 0) - xorriso->toc_emulation_flag|= 4; + xorriso->toc_emulation_flag|= 5; else if(strncmp(cpt, "emul_off", l) == 0) xorriso->toc_emulation_flag|= 2; else if(strncmp(cpt, "emul_on", l) == 0) xorriso->toc_emulation_flag&= ~2; + else if(strncmp(cpt, "emul_wide", l) == 0) + xorriso->toc_emulation_flag|= 8; + else if(strncmp(cpt, "emul_narrow", l) == 0) + xorriso->toc_emulation_flag&= ~8; else { -unknown_mode:; sprintf(xorriso->info_text, "-rom_toc_scan: unknown mode in '%s'", mode); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); return(0); diff --git a/libisoburn/trunk/xorriso/text_io.c b/libisoburn/trunk/xorriso/text_io.c index c2db8df5..a01b690c 100644 --- a/libisoburn/trunk/xorriso/text_io.c +++ b/libisoburn/trunk/xorriso/text_io.c @@ -1831,10 +1831,11 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) #endif /* Xorriso_with_readlinE */ is_default= (xorriso->toc_emulation_flag == 0); - sprintf(line,"-rom_toc_scan %s%s\n", + sprintf(line,"-rom_toc_scan %s:%s:%s\n", xorriso->toc_emulation_flag & 4 ? "force" : xorriso->toc_emulation_flag & 1 ? "on" : "off", - xorriso->toc_emulation_flag & 2 ? ":emul_off" : ""); + xorriso->toc_emulation_flag & 2 ? "emul_off" : "emul_on", + xorriso->toc_emulation_flag & 8 ? "emul_wide" : "emul_narrow"); if(!(is_default && no_defaults)) Xorriso_status_result(xorriso, filter, fp, flag & 2); diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index 1a5e48eb..b4083093 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.2.5, Jul 26, 2012" +.TH XORRISO 1 "Version 1.2.5, Aug 14, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -908,7 +908,7 @@ The speed advantage appears only if the loaded session was produced with Note that \-disk_dev_ino "off" is totally in effect only if \-hardlinks is "off", too. .TP -\fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"] +\fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"] Read\-only drives do not tell the actual media type but show any media as ROM (e.g. as DVD\-ROM). The session history of MMC multi\-session media might be truncated to first and last session or even be completely false. @@ -930,8 +930,11 @@ On the other hand the emulation of session history on overwriteable media can hamper reading of partly damaged media. Setting "off:emul_off" disables the elsewise trustworthy table\-of\-content scan for those media. .br -To be in effect, the \-rom_toc_scan setting has to be made before the \-*dev -command which acquires drive and medium. +The table\-of\-content scan on overwriteable media normally searches only up to +the end of the session that is pointed to by the superblock at block 0. +Setting "on:emul_wide" lets the scan continue up to the end of the medium. +This may be useful after copying a medium with \-check_media patch_lba0=on +when not the last session was loaded. .TP \fB\-calm_drive\fR "in"|"out"|"all"|"revoke"|"on"|"off" Reduce drive noise until it is actually used again. Some drives stay alert diff --git a/libisoburn/trunk/xorriso/xorriso.info b/libisoburn/trunk/xorriso/xorriso.info index 6543acba..d25f6fc5 100644 --- a/libisoburn/trunk/xorriso/xorriso.info +++ b/libisoburn/trunk/xorriso/xorriso.info @@ -841,7 +841,7 @@ activate them only after image loading. Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off", too. --rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"] +-rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"] Read-only drives do not tell the actual media type but show any media as ROM (e.g. as DVD-ROM). The session history of MMC multi-session media might be truncated to first and last session @@ -863,8 +863,12 @@ activate them only after image loading. overwriteable media can hamper reading of partly damaged media. Setting "off:emul_off" disables the elsewise trustworthy table-of-content scan for those media. - To be in effect, the -rom_toc_scan setting has to be made before - the -*dev command which acquires drive and medium. + The table-of-content scan on overwriteable media normally searches + only up to the end of the session that is pointed to by the + superblock at block 0. Setting "on:emul_wide" lets the scan + continue up to the end of the medium. This may be useful after + copying a medium with -check_media patch_lba0=on when not the last + session was loaded. -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off" Reduce drive noise until it is actually used again. Some drives @@ -4528,11 +4532,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -assert_volid rejects undesired images: Loading. (line 84) * -auto_charset learns character set from image: Loading. (line 98) * -backslash_codes enables backslash conversion: Scripting. (line 67) -* -ban_stdio_write demands real drive: Loading. (line 247) +* -ban_stdio_write demands real drive: Loading. (line 251) * -biblio_file sets biblio file name: SetWrite. (line 238) * -blank erases media: Writing. (line 61) * -boot_image controls bootability: Bootable. (line 26) -* -calm_drive reduces drive activity: Loading. (line 236) +* -calm_drive reduces drive activity: Loading. (line 240) * -cd sets working directory in ISO: Navigate. (line 7) * -cdx sets working directory on disk: Navigate. (line 16) * -changes_pending overrides change status: Writing. (line 13) @@ -4564,7 +4568,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -cpr inserts like with cp -r: Insert. (line 155) * -cpx copies files to disk: Restore. (line 92) * -cut_out inserts piece of data file: Insert. (line 129) -* -data_cache_size adjusts read cache size: Loading. (line 265) +* -data_cache_size adjusts read cache size: Loading. (line 269) * -dev acquires one drive for input and output: AqDrive. (line 12) * -device_links gets list of drives: Inquiry. (line 18) * -devices gets list of drives: Inquiry. (line 7) @@ -4580,7 +4584,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -dusx show directory size on disk: Navigate. (line 102) * -dux show directory size on disk: Navigate. (line 97) * -dvd_obs set write block size: SetWrite. (line 309) -* -early_stdio_test classifies stdio drives: Loading. (line 252) +* -early_stdio_test classifies stdio drives: Loading. (line 256) * -eject ejects drive tray: Writing. (line 52) * -end writes pending session and ends program: Scripting. (line 156) * -errfile_log logs problematic disk files: Scripting. (line 118) @@ -4789,8 +4793,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * disk_path, _definition: Insert. (line 6) * Drive, _definition: Drives. (line 6) * Drive, accessability, -drive_class: Loading. (line 54) -* Drive, classify stdio, -early_stdio_test: Loading. (line 252) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 247) +* Drive, classify stdio, -early_stdio_test: Loading. (line 256) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 251) * Drive, eject tray, -eject: Writing. (line 52) * Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input, -indev: AqDrive. (line 24) @@ -4798,7 +4802,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, get drive list, -device_links: Inquiry. (line 18) * Drive, get drive list, -devices: Inquiry. (line 7) * Drive, list supported media, -list_profiles: Writing. (line 166) -* Drive, reduce activity, -calm_drive: Loading. (line 236) +* Drive, reduce activity, -calm_drive: Loading. (line 240) * Drive, report SCSI commands, -scsi_log: Scripting. (line 147) * Drive, write and eject, -commit_eject: Writing. (line 56) * EA, _definition: Extras. (line 65) @@ -4830,7 +4834,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * HFS+ allocation block size: Bootable. (line 220) * HFS+ serial number: Bootable. (line 217) * hidden, set in ISO image, -hide: Manip. (line 171) -* Image reading, cache size, -data_cache_size: Loading. (line 265) +* Image reading, cache size, -data_cache_size: Loading. (line 269) * Image, _definition: Model. (line 9) * Image, demand volume id, -assert_volid: Loading. (line 84) * Image, discard pending changes, -rollback: Writing. (line 9) @@ -5027,47 +5031,47 @@ Node: Options24480 Node: ArgSort26154 Node: AqDrive27644 Node: Loading30688 -Node: Insert45897 -Node: SetInsert55813 -Node: Manip64389 -Node: CmdFind73212 -Node: Filter87916 -Node: Writing92471 -Node: SetWrite101435 -Node: Bootable120068 -Node: Jigdo135311 -Node: Charset139557 -Node: Exception142318 -Node: DialogCtl148437 -Node: Inquiry151034 -Node: Navigate155900 -Node: Verify164197 -Node: Restore173228 -Node: Emulation180137 -Node: Scripting189948 -Node: Frontend197108 -Node: Examples198408 -Node: ExDevices199585 -Node: ExCreate200244 -Node: ExDialog201529 -Node: ExGrowing202794 -Node: ExModifying203599 -Node: ExBootable204103 -Node: ExCharset204655 -Node: ExPseudo205476 -Node: ExCdrecord206374 -Node: ExMkisofs206691 -Node: ExGrowisofs208031 -Node: ExException209166 -Node: ExTime209620 -Node: ExIncBackup210079 -Node: ExRestore214071 -Node: ExRecovery215031 -Node: Files215601 -Node: Seealso216900 -Node: Bugreport217623 -Node: Legal218204 -Node: CommandIdx219215 -Node: ConceptIdx235087 +Node: Insert46168 +Node: SetInsert56084 +Node: Manip64660 +Node: CmdFind73483 +Node: Filter88187 +Node: Writing92742 +Node: SetWrite101706 +Node: Bootable120339 +Node: Jigdo135582 +Node: Charset139828 +Node: Exception142589 +Node: DialogCtl148708 +Node: Inquiry151305 +Node: Navigate156171 +Node: Verify164468 +Node: Restore173499 +Node: Emulation180408 +Node: Scripting190219 +Node: Frontend197379 +Node: Examples198679 +Node: ExDevices199856 +Node: ExCreate200515 +Node: ExDialog201800 +Node: ExGrowing203065 +Node: ExModifying203870 +Node: ExBootable204374 +Node: ExCharset204926 +Node: ExPseudo205747 +Node: ExCdrecord206645 +Node: ExMkisofs206962 +Node: ExGrowisofs208302 +Node: ExException209437 +Node: ExTime209891 +Node: ExIncBackup210350 +Node: ExRestore214342 +Node: ExRecovery215302 +Node: Files215872 +Node: Seealso217171 +Node: Bugreport217894 +Node: Legal218475 +Node: CommandIdx219486 +Node: ConceptIdx235358  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorriso.texi b/libisoburn/trunk/xorriso/xorriso.texi index a2f9502f..9e9aa4c7 100644 --- a/libisoburn/trunk/xorriso/xorriso.texi +++ b/libisoburn/trunk/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH XORRISO 1 "Version 1.2.5, Jul 26, 2012" +@c man .TH XORRISO 1 "Version 1.2.5, Aug 14, 2012" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -1149,7 +1149,7 @@ The speed advantage appears only if the loaded session was produced with Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off", too. @c man .TP -@item -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"] +@item -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"] @kindex -rom_toc_scan searches for sessions @cindex Table-of-content, search sessions, -rom_toc_scan Read-only drives do not tell the actual media type but show any media as @@ -1173,8 +1173,11 @@ On the other hand the emulation of session history on overwriteable media can hamper reading of partly damaged media. Setting "off:emul_off" disables the elsewise trustworthy table-of-content scan for those media. @* -To be in effect, the -rom_toc_scan setting has to be made before the -*dev -command which acquires drive and medium. +The table-of-content scan on overwriteable media normally searches only up to +the end of the session that is pointed to by the superblock at block 0. +Setting "on:emul_wide" lets the scan continue up to the end of the medium. +This may be useful after copying a medium with -check_media patch_lba0=on +when not the last session was loaded. @c man .TP @item -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off" @kindex -calm_drive reduces drive activity diff --git a/libisoburn/trunk/xorriso/xorriso_private.h b/libisoburn/trunk/xorriso/xorriso_private.h index 60dead2d..e5d499d3 100644 --- a/libisoburn/trunk/xorriso/xorriso_private.h +++ b/libisoburn/trunk/xorriso/xorriso_private.h @@ -238,6 +238,8 @@ struct XorrisO { /* the global context of xorriso */ do not emulate TOC on overwriteable media bit2= bit7 for isoburn_drive_aquire() pretend any media to be -ROM + bit3= bit9 for isoburn_drive_aquire() + Ignore enclosing session at LBA 0 */ int image_start_mode; /* From what address to load the ISO image diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 37c2eb87..08bbcae0 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2012.08.14.102632" +#define Xorriso_timestamP "2012.08.14.103138"