From 0b641cf425cc3b2fa7b79a1f80c8e550a04b106d Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 25 Dec 2010 09:43:15 +0000 Subject: [PATCH] New -as mkisofs option -disallow_dir_id_ext, allow_dir_id_ext is default --- xorriso/emulators.c | 34 +++++++++++++++--- xorriso/xorriso.1 | 5 +++ xorriso/xorriso.info | 69 ++++++++++++++++++++----------------- xorriso/xorriso.texi | 5 +++ xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 77 insertions(+), 38 deletions(-) diff --git a/xorriso/emulators.c b/xorriso/emulators.c index de533168..8a9ab08d 100644 --- a/xorriso/emulators.c +++ b/xorriso/emulators.c @@ -533,6 +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", "" }; static char arg1_options[][41]= { @@ -683,6 +684,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag) " -input-charset CHARSET Local input charset for file name conversion", " -output-charset CHARSET Output charset for file name conversion", " -iso-level LEVEL Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2", +" -disallow_dir_id_ext Do not allow dot in ISO directory names", " -J, -joliet Generate Joliet directory information", " -joliet-long Allow Joliet file names to be 103 Unicode characters", " -U, -untranslated-filenames Allow Untranslated filenames (for HPUX & AIX - violates ISO9660).", @@ -876,9 +878,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, int argc, char **argv, int flag) { int ret, i, j, was_path= 0, was_other_option= 0, mem_graft_points, mem; - int do_print_size= 0, fd, idx, iso_level= 0, emul_boot= 2; + int do_print_size= 0, fd, idx, iso_level= 1, emul_boot= 2; int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0; - int dir_mode= -1, file_mode= -1, count, partition_number; + 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 *weight_list= NULL, weight_count= 0; @@ -971,7 +973,6 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, if(iso_level == 4) xorriso->do_iso1999= 1; else { - xorriso->file_size_limit= 0; sprintf(sfe, "iso_9660_level=%s", argv[i]); ret= Xorriso_relax_compliance(xorriso, sfe, 0); if(ret <= 0) @@ -1047,6 +1048,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, goto not_enough_args; i++; Xorriso_option_stdio_sync(xorriso, argv[i], 0); + } else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) { + allow_dir_id_ext= 0; } else was_other_option= 1; ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 0); @@ -1176,10 +1179,12 @@ not_enough_args:; } else if(strcmp(argv[i], "-o")==0) { i++; /* was already handled in first argument scan */; - } else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0) { + } else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0 || + strcmp(argv[i], "-prev-session")==0) { i++; /* was already handled in first argument scan */; - } else if(strcmp(argv[i], "-C")==0) { + } else if(strcmp(argv[i], "-C")==0 || + strcmp(argv[i], "-cdrecord-params")==0) { i++; /* was already handled in first argument scan */; } else if(strcmp(argv[i], "-help")==0) { @@ -1434,6 +1439,14 @@ not_enough_args:; strncpy(xorriso->ascii_disc_label, argv[i], Xorriso_disc_label_sizE - 1); xorriso->ascii_disc_label[Xorriso_disc_label_sizE - 1] = 0; + } else if(strcmp(argv[i], "--stdio_sync")==0) { + if(i+1>=argc) + goto not_enough_args; + i++; + /* was already handled in first argument scan */; + } else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) { + /* was already handled in first argument scan */; + } else if(argv[i][0]=='-' && argv[i][1]!=0) { ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 1); if(ret > 0) { @@ -1478,7 +1491,18 @@ is_pathspec_2:; if(ret<=0) goto problem_handler_2; was_path= 1; + + /* Enforce odd mkisofs defaults on first pathspec */ xorriso->pacifier_style= 1; + if(allow_dir_id_ext == 1) { + Xorriso_relax_compliance(xorriso, "allow_dir_id_ext", 0); + allow_dir_id_ext= 2; + } + if(iso_level >= 1 && iso_level <= 3) { + sprintf(sfe, "iso_9660_level=%d", iso_level); + Xorriso_relax_compliance(xorriso, sfe, 0); + iso_level= 0; + } } continue; /* regular bottom of loop */ problem_handler_2:; diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 39b110aa..896f0d78 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -3509,6 +3509,11 @@ standard output. -print-size inhibits automatic image production at program end. This ban is lifted only if the pending image changes get discarded. .br +If no -iso-level is given, then level 1 is chosen when the first file or +directory is added to the image. At the same occasion directory names get +allowed to violate the standard by -compliance option allow_dir_id_ext. +This may be avoided by option -disallow_dir_id_ext. +.br Not original mkisofs options are --quoted_path_list , --hardlinks , --acl , --xattr , --md5 , --stdio_sync . diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 4d66b5ed..01bdbc79 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -3129,6 +3129,11 @@ programs trigger comparable actions. drive to standard output. -print-size inhibits automatic image production at program end. This ban is lifted only if the pending image changes get discarded. + If no -iso-level is given, then level 1 is chosen when the first + file or directory is added to the image. At the same occasion + directory names get allowed to violate the standard by -compliance + option allow_dir_id_ext. This may be avoided by option + -disallow_dir_id_ext. Not original mkisofs options are --quoted_path_list , --hardlinks , --acl , --xattr , --md5 , --stdio_sync . They work like the xorriso options with the same name and hardcoded argument "on", @@ -4087,7 +4092,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 134) +* -pacifier controls pacifier text form: Emulation. (line 139) * -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) @@ -4107,7 +4112,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -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 122) + (line 127) * -reassure enables confirmation question: DialogCtl. (line 28) * -report_about controls verbosity: Exception. (line 55) * -return_with controls exit value: Exception. (line 39) @@ -4117,7 +4122,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 144) +* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 149) * -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) @@ -4174,11 +4179,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 144) +* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 149) * Blank media, _definition: Media. (line 29) * Blind growing, _definition: Methods. (line 40) * Bootability, control, -boot_image: Bootable. (line 26) -* cdrecord, Emulation: Emulation. (line 89) +* cdrecord, Emulation: Emulation. (line 94) * Character Set, _definition: Charset. (line 6) * Character Set, for input, -in_charset: Loading. (line 92) * Character Set, for input/output, -charset: Charset. (line 43) @@ -4213,10 +4218,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 122) -* Emulation, cdrecord, -as: Emulation. (line 89) +* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 127) +* Emulation, cdrecord, -as: Emulation. (line 94) * Emulation, mkisofs, -as: Emulation. (line 16) -* Emulation, pacifier form, -pacifier: Emulation. (line 134) +* Emulation, pacifier form, -pacifier: Emulation. (line 139) * Examples: Examples. (line 6) * Filter, _definition: Filter. (line 6) * Filter, apply to file tree, -set_filter_r: Filter. (line 84) @@ -4430,29 +4435,29 @@ Node: Navigate131260 Node: Verify139155 Node: Restore147744 Node: Emulation154400 -Node: Scripting162774 -Node: Frontend168336 -Node: Examples169631 -Node: ExDevices170800 -Node: ExCreate171434 -Node: ExDialog172708 -Node: ExGrowing173970 -Node: ExModifying174772 -Node: ExBootable175273 -Node: ExCharset175820 -Node: ExPseudo176648 -Node: ExCdrecord177542 -Node: ExMkisofs177857 -Node: ExGrowisofs178860 -Node: ExException179984 -Node: ExTime180438 -Node: ExIncBackup180897 -Node: ExRestore184369 -Node: ExRecovery185338 -Node: Files185904 -Node: Seealso187132 -Node: Legal187656 -Node: CommandIdx188578 -Node: ConceptIdx202804 +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  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 4c4188c1..48521a07 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -4160,6 +4160,11 @@ standard output. -print-size inhibits automatic image production at program end. This ban is lifted only if the pending image changes get discarded. @* +If no -iso-level is given, then level 1 is chosen when the first file or +directory is added to the image. At the same occasion directory names get +allowed to violate the standard by -compliance option allow_dir_id_ext. +This may be avoided by option -disallow_dir_id_ext. +@* Not original mkisofs options are @minus{}@minus{}quoted_path_list , @minus{}@minus{}hardlinks , @minus{}@minus{}acl , @minus{}@minus{}xattr , @minus{}@minus{}md5 , @minus{}@minus{}stdio_sync . diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index c854c1f5..4719525e 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.12.25.092828" +#define Xorriso_timestamP "2010.12.25.094309"