From d83fc6cfecfcb66ec5b7741c486e57e3a77420c3 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 28 Dec 2010 12:33:52 +0000 Subject: [PATCH] Disabled TOC emulation with -as mkisofs. May be re-enabled by --emul-toc. --- libisoburn/trunk/xorriso/emulators.c | 22 ++++- libisoburn/trunk/xorriso/xorriso.1 | 8 +- libisoburn/trunk/xorriso/xorriso.info | 88 ++++++++++---------- libisoburn/trunk/xorriso/xorriso.texi | 8 +- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 77 insertions(+), 51 deletions(-) diff --git a/libisoburn/trunk/xorriso/emulators.c b/libisoburn/trunk/xorriso/emulators.c index 8a9ab08d..43034e53 100644 --- a/libisoburn/trunk/xorriso/emulators.c +++ b/libisoburn/trunk/xorriso/emulators.c @@ -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:; diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index 896f0d78..719c7294 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 "Dec 25, 2010" +.TH XORRISO 1 "Dec 28, 2010" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -2940,6 +2940,7 @@ session number, resp. volume id of the depicted session. Print the foreseeable consumption of 2048 byte blocks by next -commit. This can last a while as a -commit gets prepared and only in last moment is revoked by this option. +The result depends on several settings and also on the kind of output device. .TP \fB\-tell_media_space\fR Print available space on output media and the free space after @@ -3521,7 +3522,10 @@ They work like the xorriso options with the same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by --stdio_sync and --scdbackup_tag. ---no-emul-toc is -compliance no_emul_toc. +.br +The capability to preserve multi-session history on overwriteable media +gets disabled by default. It can be enabled by using --emul-toc +with the first session. See -compliance no_emul_toc. .br --sort-weight gets as arguments a number and an iso_rr_path. The number becomes the LBA sorting weight of regular file iso_rr_path or diff --git a/libisoburn/trunk/xorriso/xorriso.info b/libisoburn/trunk/xorriso/xorriso.info index 01bdbc79..9a7d1c49 100644 --- a/libisoburn/trunk/xorriso/xorriso.info +++ b/libisoburn/trunk/xorriso/xorriso.info @@ -2596,7 +2596,8 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti -print_size Print the foreseeable consumption of 2048 byte blocks by next -commit. This can last a while as a -commit gets prepared and only - in last moment is revoked by this option. + in last moment is revoked by this option. The result depends on + several settings and also on the kind of output device. -tell_media_space Print available space on output media and the free space after @@ -3138,7 +3139,10 @@ programs trigger comparable actions. , --acl , --xattr , --md5 , --stdio_sync . They work like the xorriso options with the same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by --stdio_sync - and --scdbackup_tag. --no-emul-toc is -compliance no_emul_toc. + and --scdbackup_tag. + The capability to preserve multi-session history on overwriteable + media gets disabled by default. It can be enabled by using + --emul-toc with the first session. See -compliance no_emul_toc. --sort-weight gets as arguments a number and an iso_rr_path. The number becomes the LBA sorting weight of regular file iso_rr_path or of all regular files underneath directory iso_rr_path. (See @@ -4092,7 +4096,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -out_charset sets output character set: SetWrite. (line 180) * -outdev aquires a drive for output: AqDrive. (line 29) * -overwrite enables overwriting in ISO: SetInsert. (line 127) -* -pacifier controls pacifier text form: Emulation. (line 139) +* -pacifier controls pacifier text form: Emulation. (line 142) * -padding sets amount of image padding: SetWrite. (line 263) * -page set terminal geometry: DialogCtl. (line 15) * -paste_in copies file into disk file: Restore. (line 117) @@ -4106,13 +4110,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -prog_help prints help text: Frontend. (line 33) * -prompt prompts for enter key: Scripting. (line 80) * -publisher sets publisher id: SetWrite. (line 108) -* -pvd_info shows image id strings: Inquiry. (line 78) +* -pvd_info shows image id strings: Inquiry. (line 79) * -pwd tells working directory in ISO: Navigate. (line 20) * -pwdx tells working directory on disk: Navigate. (line 23) * -quoted_not_list sets exclusions: SetInsert. (line 72) * -quoted_path_list inserts paths from disk file: Insert. (line 80) * -read_mkisofsrc searches and reads .mkisofsrc file: Emulation. - (line 127) + (line 130) * -reassure enables confirmation question: DialogCtl. (line 28) * -report_about controls verbosity: Exception. (line 55) * -return_with controls exit value: Exception. (line 39) @@ -4122,7 +4126,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -rollback discards pending changes: Writing. (line 9) * -rollback_end ends program without writing: Scripting. (line 125) * -rom_toc_scan searches for sessions: Loading. (line 203) -* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 149) +* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 152) * -scsi_log reports SCSI commands: Scripting. (line 113) * -session_log logs written sessions: Scripting. (line 104) * -session_string composes session info line: Inquiry. (line 56) @@ -4143,7 +4147,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -stdio_sync controls stdio buffer: SetWrite. (line 240) * -stream_recording controls defect management: SetWrite. (line 221) * -system_id sets system id: SetWrite. (line 123) -* -tell_media_space reports free space: Inquiry. (line 74) +* -tell_media_space reports free space: Inquiry. (line 75) * -temp_mem_limit curbs memory consumption: Scripting. (line 70) * -toc shows list of sessions: Inquiry. (line 18) * -uid sets global ownership: SetWrite. (line 186) @@ -4179,11 +4183,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Backslash Interpretation, _definition: Processing. (line 49) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 182) * Backup, enable features, -for_backup: Loading. (line 177) -* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 149) +* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 152) * Blank media, _definition: Media. (line 29) * Blind growing, _definition: Methods. (line 40) * Bootability, control, -boot_image: Bootable. (line 26) -* cdrecord, Emulation: Emulation. (line 94) +* cdrecord, Emulation: Emulation. (line 97) * Character Set, _definition: Charset. (line 6) * Character Set, for input, -in_charset: Loading. (line 92) * Character Set, for input/output, -charset: Charset. (line 43) @@ -4218,10 +4222,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, write and eject, -commit_eject: Writing. (line 40) * El Torito, _definiton: Extras. (line 19) * Emulation, -as: Emulation. (line 13) -* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 127) -* Emulation, cdrecord, -as: Emulation. (line 94) +* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 130) +* Emulation, cdrecord, -as: Emulation. (line 97) * Emulation, mkisofs, -as: Emulation. (line 16) -* Emulation, pacifier form, -pacifier: Emulation. (line 139) +* Emulation, pacifier form, -pacifier: Emulation. (line 142) * Examples: Examples. (line 6) * Filter, _definition: Filter. (line 6) * Filter, apply to file tree, -set_filter_r: Filter. (line 84) @@ -4251,7 +4255,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Image, set volume id, -volid: SetWrite. (line 84) * Image, set volume set id, -volset_id: SetWrite. (line 103) * Image, set volume timestamp, -volume_date: SetWrite. (line 130) -* Image, show id strings, -pvd_info: Inquiry. (line 78) +* Image, show id strings, -pvd_info: Inquiry. (line 79) * Insert, enable overwriting, -overwrite: SetInsert. (line 127) * Insert, file exclusion absolute, -not_paths: SetInsert. (line 55) * Insert, file exclusion from file, -not_list: SetInsert. (line 67) @@ -4387,7 +4391,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Write, defect management, -stream_recording: SetWrite. (line 221) * Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, fifo size, -fs: SetWrite. (line 250) -* Write, free space, -tell_media_space: Inquiry. (line 74) +* Write, free space, -tell_media_space: Inquiry. (line 75) * Write, log problematic disk files, -errfile_log: Scripting. (line 84) * Write, log written sessions, -session_log: Scripting. (line 104) * Write, padding image, -padding: SetWrite. (line 263) @@ -4431,33 +4435,33 @@ Node: Charset117519 Node: Exception120270 Node: DialogCtl124785 Node: Inquiry127130 -Node: Navigate131260 -Node: Verify139155 -Node: Restore147744 -Node: Emulation154400 -Node: Scripting163071 -Node: Frontend168633 -Node: Examples169928 -Node: ExDevices171097 -Node: ExCreate171731 -Node: ExDialog173005 -Node: ExGrowing174267 -Node: ExModifying175069 -Node: ExBootable175570 -Node: ExCharset176117 -Node: ExPseudo176945 -Node: ExCdrecord177839 -Node: ExMkisofs178154 -Node: ExGrowisofs179157 -Node: ExException180281 -Node: ExTime180735 -Node: ExIncBackup181194 -Node: ExRestore184666 -Node: ExRecovery185635 -Node: Files186201 -Node: Seealso187429 -Node: Legal187953 -Node: CommandIdx188875 -Node: ConceptIdx203101 +Node: Navigate131344 +Node: Verify139239 +Node: Restore147828 +Node: Emulation154484 +Node: Scripting163316 +Node: Frontend168878 +Node: Examples170173 +Node: ExDevices171342 +Node: ExCreate171976 +Node: ExDialog173250 +Node: ExGrowing174512 +Node: ExModifying175314 +Node: ExBootable175815 +Node: ExCharset176362 +Node: ExPseudo177190 +Node: ExCdrecord178084 +Node: ExMkisofs178399 +Node: ExGrowisofs179402 +Node: ExException180526 +Node: ExTime180980 +Node: ExIncBackup181439 +Node: ExRestore184911 +Node: ExRecovery185880 +Node: Files186446 +Node: Seealso187674 +Node: Legal188198 +Node: CommandIdx189120 +Node: ConceptIdx203346  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorriso.texi b/libisoburn/trunk/xorriso/xorriso.texi index 48521a07..e1a17a9b 100644 --- a/libisoburn/trunk/xorriso/xorriso.texi +++ b/libisoburn/trunk/xorriso/xorriso.texi @@ -44,7 +44,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 "Dec 25, 2010" +@c man .TH XORRISO 1 "Dec 28, 2010" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -3474,6 +3474,7 @@ session number, resp. volume id of the depicted session. Print the foreseeable consumption of 2048 byte blocks by next -commit. This can last a while as a -commit gets prepared and only in last moment is revoked by this option. +The result depends on several settings and also on the kind of output device. @c man .TP @item -tell_media_space @kindex -tell_media_space reports free space @@ -4172,7 +4173,10 @@ They work like the xorriso options with the same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by @minus{}@minus{}stdio_sync and @minus{}@minus{}scdbackup_tag. -@minus{}@minus{}no-emul-toc is -compliance no_emul_toc. +@* +The capability to preserve multi-session history on overwriteable media +gets disabled by default. It can be enabled by using @minus{}@minus{}emul-toc +with the first session. See -compliance no_emul_toc. @* @minus{}@minus{}sort-weight gets as arguments a number and an iso_rr_path. The number becomes the LBA sorting weight of regular file iso_rr_path or diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 138ce0ea..6e129bc3 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.12.28.093144" +#define Xorriso_timestamP "2010.12.28.123348"