From 576af43c9824e98c1f252155cb262c7802b36373 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 26 May 2010 12:31:13 +0000 Subject: [PATCH] Implemented -as mkisofs options -U, -N, -l, -d, -allow-lowercase --- xorriso/emulators.c | 30 +++++++++++++++++++++++++----- xorriso/xorriso_timestamp.h | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/xorriso/emulators.c b/xorriso/emulators.c index b63ca0c6..8cb9766b 100644 --- a/xorriso/emulators.c +++ b/xorriso/emulators.c @@ -501,10 +501,10 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom, { /* mkisofs 2.01 options which are not scheduled for implementation, yet */ static char ignored_arg0_options[][41]= { - "-allow-leading-dots", "-ldots", "-allow-lowercase", "-allow-multidot", - "-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-d", "-D", - "-joliet-long", "-l", "-L", "-max-iso9660-filenames", "-N", "-nobak", - "-no-bak", "-force-rr", "-relaxed-filenames", "-T", "-U", + "-allow-leading-dots", "-ldots", "-allow-multidot", + "-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-D", + "-joliet-long", "-L", "-max-iso9660-filenames", "-nobak", + "-no-bak", "-force-rr", "-relaxed-filenames", "-T", "-no-iso-translate", "" }; @@ -570,6 +570,11 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag) " -output-charset CHARSET Output charset for file name conversion", " -iso-level LEVEL Set ISO9660 conformance level (1..3)", " -J, -joliet Generate Joliet directory information", +" -U, -untranslated-filenames Allow Untranslated filenames (for HPUX & AIX - violates ISO9660).", +" -allow-lowercase Allow lower case characters in addition to the current character set (violates ISO9660)", +" -d, -omit-period Omit trailing periods from filenames (violates ISO9660)", +" -l, -full-iso9660-filenames Allow full 31 character filenames for ISO9660 names", +" -N, -omit-version-number Omit version number from ISO9660 filename (violates ISO9660)", " -o FILE, -output FILE Set output file name", " -m GLOBFILE, -exclude GLOBFILE", " Exclude file name", @@ -1006,7 +1011,7 @@ not_enough_args:; } else if(strncmp(argv[i], "--modification-date=", 20)==0) { ret= Xorriso_option_volume_date(xorriso, "uuid", argv[i] + 20, 0); if(ret <= 0) - goto problem_handler_1; + goto problem_handler_2; } else if(strcmp(argv[i], "-input-charset")==0) { i++; @@ -1034,6 +1039,21 @@ not_enough_args:; /* 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, + "no_force_dots:long_paths:omit_version:full_ascii:lowercase", 0); + } else if(strcmp(argv[i], "-N") == 0 || + strcmp(argv[i], "-omit-version-number") == 0) { + Xorriso_relax_compliance(xorriso, "omit_version", 0); + } else if(strcmp(argv[i], "-l") == 0 || + strcmp(argv[i], "-full-iso9660-filenames") == 0) { + Xorriso_relax_compliance(xorriso, "long_paths", 0); + } else if(strcmp(argv[i], "-d") == 0 || + strcmp(argv[i], "-omit-period") == 0) { + Xorriso_relax_compliance(xorriso, "no_force_dots", 0); + } else if(strcmp(argv[i], "-allow-lowercase") == 0) { + Xorriso_relax_compliance(xorriso, "lowercase", 0); } else if(argv[i][0]=='-' && argv[i][1]!=0) { sprintf(xorriso->info_text, "-as %s: Unknown option %s", whom, Text_shellsafe(argv[i], sfe, 0)); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 9fa42d73..c49fe6f6 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.05.23.072845" +#define Xorriso_timestamP "2010.05.26.123017"