diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 6df1ab3c..741d418c 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -2,7 +2,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 "Oct 05, 2009" +.TH XORRISO 1 "Oct 07, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -779,7 +779,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"|"off"[:"emul_on"|"emul_off"] +\fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"] 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. @@ -792,6 +792,11 @@ than the drive's table of content. At its end it can cause read attempts to invalid addresses and thus ugly drive behavior. Setting "on" enables that scan for alleged read-only media. .br +Some operating systems are not able to mount the most recent session of +multi-session DVD or BD. If on such a system xorriso has no own MMC +capabilities then it may still find that session from a scanned table of +content. Setting "force" handles any media like a ROM media with setting "on". +.br 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. @@ -1898,12 +1903,16 @@ or -rollback. If you insist in -volid "ISOIMAGE", set it again after those commands. .TP \fB\-publisher\fR text -Set the publisher id string to be written with the next -commit. Permissible -are up to 128 characters. This setting gets overridden by image loading. +Set the publisher id string to be written with the next -commit. This may +identify the person or organisation who specified what shall be recorded. +Permissible are up to 128 characters. This setting gets overridden by +image loading. .TP \fB\-application_id\fR text -Set the application id string to be written with the next -commit. Permissible -are up to 128 characters. This setting gets overridden by image loading. +Set the application id string to be written with the next -commit. This may +identify the specification of how the data are recorded. +Permissible are up to 128 characters. This setting gets overridden by +image loading. .TP \fB\-out_charset\fR character_set_name Set the character set to which file names get converted when writing an diff --git a/xorriso/xorriso.c b/xorriso/xorriso.c index c8d0ae81..07a9f6d5 100644 --- a/xorriso/xorriso.c +++ b/xorriso/xorriso.c @@ -7142,7 +7142,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) is_default= (xorriso->toc_emulation_flag == 0); sprintf(line,"-rom_toc_scan %s%s\n", - xorriso->toc_emulation_flag & 1 ? "on" : "off", + xorriso->toc_emulation_flag & 4 ? "force" : + xorriso->toc_emulation_flag & 1 ? "on" : "off", xorriso->toc_emulation_flag & 2 ? ":emul_off" : ""); if(!(is_default && no_defaults)) Xorriso_status_result(xorriso, filter, fp, flag & 2); @@ -12233,6 +12234,8 @@ too_long:; } +/* @param flag bit0= with adr_mode sbsector: adr_value is possibly 16 too high +*/ int Xorriso_decode_load_adr(struct XorrisO *xorriso, char *cmd, char *adr_mode, char *adr_value, int *entity_code, char entity_id[81], @@ -17990,10 +17993,13 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag) l= npt-cpt; if(l==0) goto unknown_mode; + xorriso->toc_emulation_flag&= ~4; if(strncmp(cpt, "off", l) == 0) xorriso->toc_emulation_flag&= ~1; else if(strncmp(cpt, "on", l) == 0) xorriso->toc_emulation_flag|= 1; + else if(strncmp(cpt, "force", l) == 0) + xorriso->toc_emulation_flag|= 4; else if(strncmp(cpt, "emul_off", l) == 0) xorriso->toc_emulation_flag|= 2; else if(strncmp(cpt, "emul_on", l) == 0) diff --git a/xorriso/xorriso_private.h b/xorriso/xorriso_private.h index d7ab2297..c7963126 100644 --- a/xorriso/xorriso_private.h +++ b/xorriso/xorriso_private.h @@ -185,6 +185,8 @@ struct XorrisO { /* the global context of xorriso */ scan -ROM profiles for ISO sessions bit1= bit4 for isoburn_drive_aquire() do not emulate TOC on overwriteable media + bit2= bit7 for isoburn_drive_aquire() + pretend any media to be -ROM */ int image_start_mode; /* From what address to load the ISO image diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 25799f4b..00b8f7a2 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.10.07.075634" +#define Xorriso_timestamP "2009.10.07.080042" diff --git a/xorriso/xorrisoburn.c b/xorriso/xorrisoburn.c index 3ec669b4..f9de10eb 100644 --- a/xorriso/xorrisoburn.c +++ b/xorriso/xorrisoburn.c @@ -1027,6 +1027,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag) if(dinfo==NULL) { aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3); + if(xorriso->toc_emulation_flag & 4) + aquire_flag|= 128; if(!(xorriso->do_aaip & 1)) aquire_flag|= 32; if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))