diff options
Diffstat (limited to 'project/src/ui')
32 files changed, 5949 insertions, 2750 deletions
diff --git a/project/src/ui/gen-ui.c b/project/src/ui/gen-ui.c index 5e0b498..5a7e740 100644 --- a/project/src/ui/gen-ui.c +++ b/project/src/ui/gen-ui.c @@ -172,15 +172,26 @@ bool DefineIntVar ( VarMap_t * vm, ccp varname, int value ) { return false; } " instead of a real file." \ "\1 See https://szs.wiimm.de/doc/genericimg for details." -#define WILDCARDS \ - "\1Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details." \ - "\2$Wildcards$ are accepted.\3" +#define WILDCARDS_PIPE \ + "\1Wildcards and pipe characters are parsed," \ + " see https://szs.wiimm.de/doc/wildcards for details." \ + "\2$Wildcards$ and pipe characters are parsed.\3" -#define WILDCARDS_SORT \ - "\1Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details." \ - "\2$Wildcards$ are accepted.\3" \ - " After evaluating the wildcards, all input files are sorted according" \ - " to their path and duplicates are deleted." +#define WILDCARDS_SUBFILE \ + "\1Wildcards, pipe characters and sub-files are parsed," \ + " see https://szs.wiimm.de/doc/wildcards for details." \ + "\2$Wildcards$, pipe characters and sub-files are parsed.\3" + +#define WILDCARDS_STEP \ + "The parameters are evaluated step by step." \ + " \1Wildcards and pipe characters are parsed," \ + " see https://szs.wiimm.de/doc/wildcards for details." \ + "\2$Wildcards$ and pipe characters are parsed.\3" + +#define WILDCARDS_OPTION(PARNAME,EXAMPLE) \ + "If parameter " PARNAME " contains at least one wildcard (e.g. \"" EXAMPLE "\")," \ + " then " PARNAME " is used as search pattern and all found files are added." \ + " Quote " PARNAME " for this purpose. " // /////////////////////////////////////////////////////////////////////////////// diff --git a/project/src/ui/tab-wbmgt.inc b/project/src/ui/tab-wbmgt.inc index b32dbd6..6f2901d 100644 --- a/project/src/ui/tab-wbmgt.inc +++ b/project/src/ui/tab-wbmgt.inc @@ -115,18 +115,21 @@ "wbmgt SECTIONS [source]...", "List all sections of each binary BMG file." " Print offset, size, magic and a short info." - " If known, print number and size of elements too." }, + " If known, print number and size of elements too." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST", "LIST|LS|LL", "wbmgt LIST [source]...", "List messages to proof the content." " Patches are applied before listing." - " The lines are cut to fit the terminal width." }, + " The lines are cut to fit the terminal width." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "SLOTS", "SLOTS", "wbmgt SLOTS [source]...", "Print a slot ordered list with slot number, message id," - " delta and attributes. Patches are applied before listing." }, + " delta and attributes. Patches are applied before listing." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "DIFF", "DIFF|CMP", "wbmgt DIFF source1 source2\n" @@ -144,7 +147,8 @@ "Read the entered BMG files (text, binary or szs sub file) and print" " them as decoded text files to standard output." " All BMG files of a single archive (SZS,...) are combined to 1 source." - " The output of all source files is concatenated." }, + " The output of all source files is concatenated." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "MIX", "MIX", "wbmgt MIX [source]...", @@ -152,7 +156,8 @@ " them as decoded text files to standard output." " All BMG files of all archives (SZS,...) are read." " The output of all source files is combined" - " and strings of later source files override prior defined strings." }, + " and strings of later source files override prior defined strings." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "IDENTIFIER", "IDENTIFIER|ID|IDENTIFY", "wbmgt IDENTIFIER", @@ -166,7 +171,8 @@ " All BMG files of a single archive (SZS,...) are concatenated to 1 source." " This command is similar to {PATCH}," " but the result is always decoded." - " The default destination is @'%P/%N.txt'@." }, + " The default destination is @'%P/%N.txt'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "ENCODE", "ENCODE|ENC", "wbmgt ENCODE [source]...", @@ -174,7 +180,8 @@ " All BMG files of a single archive (SZS,...) are concatenated to 1 source." " This command is similar to {PATCH}," " but the result is always encoded." - " The default destination is @'%P/%N.bmg'@." }, + " The default destination is @'%P/%N.bmg'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "PATCH", "PATCH|PAT", "wbmgt PATCH [source]...", @@ -182,8 +189,9 @@ " specified by option {--patch-bmg}." " The coding of the source files is not changed." " The default destination is @'%P/%F'@." + " " WILDCARDS_PIPE "\n " - " Use {wszst patch --patch-bmg ...} to patch BMG files within a SZS file."}, + " Use {wszst patch --patch-bmg ...} to patch BMG files within a SZS file." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -270,6 +278,12 @@ { T_OPT_C, "BRIEF", "B|brief", 0, BMG_BRIEF_TEXT }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "MAX_FILE_SIZE","M|max-file-size|maxfilesize", 0, 0, 0 /* copy of wszst */ }, @@ -524,10 +538,13 @@ //---------- COMMAND wbmgt FILETYPE ---------- { T_CMD_BEG, "FILETYPE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wbmgt FILEATTRIB ---------- @@ -557,12 +574,19 @@ //---------- COMMAND wbmgt SECTIONS ---------- { T_CMD_BEG, "SECTIONS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wbmgt LIST ---------- { T_CMD_BEG, "LIST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, @@ -572,7 +596,11 @@ //---------- COMMAND wbmgt SLOTS ---------- { T_CMD_BEG, "SLOTS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, @@ -593,8 +621,12 @@ //---------- COMMAND wbmgt CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, - { T_COPY_GRP, "TEXTOUT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -602,11 +634,13 @@ //---------- COMMAND wbmgt MIX ---------- { T_CMD_BEG, "MIX", 0,0,0 }, + { T_COPY_CMD, "CAT", 0,0,0 }, //---------- COMMAND wbmgt IDENTIFIER ---------- { T_CMD_BEG, "IDENTIFIER", 0,0,0 }, + { T_COPT, "LE_CODE", 0,0,0 }, { T_COPT, "CT_CODE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -615,9 +649,13 @@ //---------- COMMAND wbmgt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -625,6 +663,11 @@ //---------- COMMAND wbmgt ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "BMG_ENDIAN", 0,0,0 }, @@ -632,7 +675,6 @@ { T_COPT, "BMG_INF_SIZE", 0,0,0 }, { T_COPT, "BMG_MID", 0,0,0 }, { T_COPT, "FORCE_ATTRIB", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -641,9 +683,13 @@ //---------- COMMAND wbmgt PATCH ---------- { T_CMD_BEG, "PATCH", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, diff --git a/project/src/ui/tab-wctct.inc b/project/src/ui/tab-wctct.inc index d318c25..d060496 100644 --- a/project/src/ui/tab-wctct.inc +++ b/project/src/ui/tab-wctct.inc @@ -127,12 +127,14 @@ { T_DEF_CMD, "DUMP", "D|DUMP", "wctct DUMP [source]...", "Print an information dump for the CT-CODE of each source file." - " " CT_CODE_SOURCE " are accepted as input." }, + " " CT_CODE_SOURCE " are accepted as input." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "CAT", "CAT", "wctct CAT [source]...", "Read the source files and print the CT-CODE part" " them as decoded text files to standard output." + " " WILDCARDS_PIPE " The output of all source files is concatenated." " " CT_CODE_SOURCE " are accepted as input." }, @@ -149,6 +151,7 @@ { T_DEF_CMD, "DECODE", "DECODE|DEC", "wctct DECODE [source]...", "Read the source files and decode them to CT-TEXT files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." " " CT_CODE_SOURCE " are accepted as input." }, @@ -156,6 +159,7 @@ "wctct CREATE keyword [source]...", "Read the source files, scan the CT-CODE part" " and create an output file controlled by the keyword." + " " WILDCARDS_PIPE " BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN files are accepted as input." " Possible keywords are: @CUP1, CRS1, r-MOD1, r-MOD2, r-OVR1," " r-BAD1CODE, r-BAD1DATA (=r-CODE), r-TEX0, r-BRRES, r-SZS," @@ -170,6 +174,7 @@ "wctct PATCH [source]...", "Read each source file, find and scan the CT-CODE part" " and patch it." + " " WILDCARDS_PIPE " " CT_CODE_SOURCE " are accepted as input." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -272,6 +277,12 @@ 0, "Suppress cross reference comments." }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "RAW", "raw", 0, "Print BMG messages as UTF-8 text without escape sequences." }, @@ -648,10 +659,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wctct FILEATTRIB ---------- @@ -699,6 +712,10 @@ { T_CMD_BEG, "DUMP", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, "Print headers as hexdump." }, { T_COPY_GRP, "PATCH", 0,0,0 }, @@ -758,29 +775,40 @@ //---------- COMMAND wctct CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "WRITE_TRACKS", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, //---------- COMMAND wctct DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, //---------- COMMAND wctct CREATE ---------- { T_CMD_BEG, "CREATE", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOPT", 0,0,0 }, { T_COPT, "BMG_ENDIAN", 0,0,0 }, { T_COPT, "BMG_ENCODING", 0,0,0 }, @@ -818,8 +846,12 @@ //---------- COMMAND wctct PATCH ---------- { T_CMD_BEG, "PATCH", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, diff --git a/project/src/ui/tab-wimgt.inc b/project/src/ui/tab-wimgt.inc index a6078ba..6a9a6e3 100644 --- a/project/src/ui/tab-wimgt.inc +++ b/project/src/ui/tab-wimgt.inc @@ -96,18 +96,21 @@ { T_DEF_CMD, "LIST", "LIST|LS", "wimgt LIST [source]...", - "List images files and print file and image type." }, + "List images files and print file and image type." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_L", "LIST-L|LL|LISTL", "wit LIST-L [source]...", "List images files and print file and image type" " and geometry data." + " " WILDCARDS_PIPE " 'LIST-L' is a short cut for {LIST --long}." }, { T_DEF_CMD, "LIST_LL", "LIST-LL|LLL|LISTLL", "wit LIST-LL [source]...", "List images files and print file and image type" " and advanced geometry data." + " " WILDCARDS_PIPE " 'LIST-LL' is a short cut for {LIST --long --long}." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -115,19 +118,22 @@ { T_DEF_CMD, "DECODE", "DECODE|DEC", "wimgt DECODE [source]...", "Decode (export) the entered image files into PNG files." + " " WILDCARDS_PIPE " The default destination is @'%P/%F.png'@." " " GENERIC_IMAGE("SOURCE") }, { T_DEF_CMD, "ENCODE", "ENCODE|ENC", "wimgt ENCODE [source]...", "Encode (import) the entered PNG files and convert them to" - " to an internal image format (TPL, TEX, BREFT)." + " to an internal image format (TPL, TEX, BREFT, ...)." + " " WILDCARDS_PIPE " The default destination is @'%P/%N'@ (removed extension)." " " GENERIC_IMAGE("SOURCE") }, { T_DEF_CMD, "CONVERT", "CONVERT|CV", "wimgt CONVERT [source]...", "Convert the entered image files into new file and image formats." + " " WILDCARDS_PIPE " The old file is replaced by the new one." " The difference to {ENCODE} is only the default file name handling." " " GENERIC_IMAGE("SOURCE") }, @@ -138,6 +144,7 @@ "Copy and convert an image from 'source' to 'dest'." " Multiple sources can be used, if 'dest' is a directory" " or contains at least one %-pattern." + " " WILDCARDS_PIPE "\n " " This is an alternative for the ENCODE and DECODE commands." " The default destination file format is selected by scanning the" @@ -232,6 +239,12 @@ 0, "Create smaller output." }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "MAX_FILE_SIZE","M|max-file-size|maxfilesize", 0, 0, 0 /* copy of wszst */ }, @@ -478,10 +491,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wimgt FILEATTRIB ---------- @@ -492,11 +507,15 @@ //---------- COMMAND wimgt LIST ---------- { T_CMD_BEG, "LIST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT_M, "LONG", 0,0, "If set, geometry data of the image is printed." " If set twice, advanced geometry data is printed." }, { T_COPT, "NO_HEADER", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wszst LIST-L ---------- @@ -511,15 +530,23 @@ //---------- COMMAND wimgt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wimgt ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "ALL", 0,0, "If source and destination file are the same," " the file is only written on modifications (transform, patch, ...)." diff --git a/project/src/ui/tab-wkclt.inc b/project/src/ui/tab-wkclt.inc index a24e5eb..e8bb655 100644 --- a/project/src/ui/tab-wkclt.inc +++ b/project/src/ui/tab-wkclt.inc @@ -126,6 +126,7 @@ "wkclt CAT source...", "Read the entered KCL and OBJ files and print" " them as OBJ files to standard output." + " " WILDCARDS_PIPE " The output of all source files is concatenated." "\n " " Automated dropping of bad KCL triangles is enabled" @@ -135,6 +136,7 @@ "wkclt DECODE source...", "Read the entered KCL and OBJ files" " and export them to OBJ files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." "\n " " Automated dropping of bad KCL triangles is enabled" @@ -144,6 +146,7 @@ "wkclt ENCODE source...", "Read the entered KCL and OBJ files" " and encode (compile) them to binary KCL files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.kcl'@." "\n " " See https://szs.wiimm.de/doc/kcl for encoding details." }, @@ -154,6 +157,7 @@ "Copy and convert a collision file from 'source' to 'dest'." " Multiple KCL and OBJ sources can be used," " if 'dest' is a directory or contains at least one %-pattern." + " " WILDCARDS_PIPE "\n " " This is an alternative for the DECODE and ENCODE commands." " The default destination file format is selected by scanning the" @@ -170,6 +174,7 @@ "wkclt CFF source...", "CFF is an abbreviation of 'create flag file' and" " will create a flag file template for each entered source file." + " " WILDCARDS_PIPE " If the flag file already exists, only missing group names" " are added at the end of file." }, @@ -187,13 +192,15 @@ { T_DEF_CMD, "FLAGS", "FLAGS|F", "wkclt FLAGS source...", "Print a KCL type and flag usage statistic for each source" - " to standard output." }, + " to standard output." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "DUMP", "DUMP|D", "wkclt DUMP source...", "This debugging command prints an information dump about" " the internal triangle data base and the octree" " in human and machine readable text format." + " " WILDCARDS_PIPE " The output of all source files is concatenated" " and printed to standard output." }, @@ -208,6 +215,7 @@ "This debugging command prints a list of all triangles" " with metrics in human and machine readable text format." " It is like DUMP, but reduced to the list of triangles." + " " WILDCARDS_PIPE " The output of all source files is concatenated" " and printed to standard output." }, @@ -216,6 +224,7 @@ "This debugging commands prints one data line for each triangle." " The goal is to compare data. Therefor and to create smaller lines" " the precision of the floating points numbers is reduced." + " " WILDCARDS_PIPE "\n " " The print order is: flag used length | 3 points | 4 normals." " For each point and normal 3 coordinates are printed." }, @@ -238,21 +247,25 @@ "wkclt CHECK source...", "Read the entered KCL files (text or binary) and" " and make a plausibility check." + " " WILDCARDS_PIPE " Hints and warnings are written to standard output." " The exit status is @'DIFFER'@ if at least one KMP warning found." }, { T_DEF_CMD, "SHA1", "SHA1", "wszst SHA1 [source]...", "Print a SHA1 checksum of the KCL for each source." + " " WILDCARDS_PIPE " The checksum is calculated after patching." }, { H_DEF_CMD, "ANALYZE", "ANALYZE", "wkclt ANALYZE source...", - "Analyze some KCL data." }, + "Analyze some KCL data." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "BLOW", "BLOW", "wkclt BLOW source...", "Try to calculate the used blow size (KCL_BLOW) of a KCL." + " " WILDCARDS_PIPE " Print one line for each source file." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -424,6 +437,12 @@ { T_OPT_C, "BRIEF", "B|brief", 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_PARAM", "P|no-param|noparam", 0, 0 /* copy of wszst */ }, @@ -645,10 +664,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wkclt FILEATTRIB ---------- @@ -708,19 +729,27 @@ //---------- COMMAND wkclt CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wkclt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, @@ -737,6 +766,11 @@ //---------- COMMAND wkclt CFF ---------- { T_CMD_BEG, "CFF", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, "Force usage of @'f(typ,variant)'@." " If set twice, force usage of @'a(typ,w,x,y,z)'@." }, @@ -745,7 +779,6 @@ { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "CONST", 0,0,0 }, { T_COPT, "FLAG_FILE", 0,0,0 }, @@ -753,6 +786,7 @@ //---------- COMMAND wkclt TYPES ---------- { T_CMD_BEG, "TYPES", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Print only the resulting flag." }, @@ -760,9 +794,13 @@ //---------- COMMAND wkclt FLAGS ---------- { T_CMD_BEG, "FLAGS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Suppress the output of detailed flag list" " and print only the type summary." }, @@ -772,7 +810,11 @@ //---------- COMMAND wkclt DUMP ---------- { T_CMD_BEG, "DUMP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Suppress the output of the triangle list" @@ -791,7 +833,11 @@ //---------- COMMAND wkclt LIST ---------- { T_CMD_BEG, "LIST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, @@ -799,7 +845,11 @@ //---------- COMMAND wkclt TRIANGLES ---------- { T_CMD_BEG, "TRIANGLES", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Suppress the output of the 'normals' data." }, @@ -813,6 +863,7 @@ //---------- COMMAND wkclt TRAVERSE ---------- { T_CMD_BEG, "TRAVERSE", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "BRIEF", 0,0, @@ -826,6 +877,7 @@ //---------- COMMAND wkclt FALL ---------- { T_CMD_BEG, "FALL", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "BRIEF", 0,0, @@ -839,6 +891,11 @@ //---------- COMMAND wkclt CHECK ---------- { T_CMD_BEG, "CHECK", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COLORS", 0,0,0 }, { T_COPT, "NO_COLORS", 0,0,0 }, { T_COPT, "BRIEF", 0,0, @@ -849,12 +906,15 @@ "Be quiet until the first warning or hint is found." }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wkclt SHA1 ---------- { T_CMD_BEG, "SHA1", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "ID", 0,0,0 }, { T_COPT, "BASE64", 0,0,0 }, { T_COPT, "DB64", 0,0,0 }, @@ -867,6 +927,9 @@ //---------- COMMAND wkclt ANALYZE ---------- { T_CMD_BEG, "ANALYZE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, @@ -874,6 +937,9 @@ //---------- COMMAND wkclt BLOW ---------- { T_CMD_BEG, "BLOW", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, // diff --git a/project/src/ui/tab-wkmpt.inc b/project/src/ui/tab-wkmpt.inc index d454250..6baf914 100644 --- a/project/src/ui/tab-wkmpt.inc +++ b/project/src/ui/tab-wkmpt.inc @@ -155,18 +155,21 @@ "wkmpt CAT [source]...", "Read the entered KMP files (text, binary or szs) and print" " them as decoded text files to standard output." + " " WILDCARDS_PIPE " The output of all source files is concatenated." }, { T_DEF_CMD, "DECODE", "DECODE|DEC", "wkmpt DECODE [source]...", "Read the entered KMP files (text or binary)" " and decode them to text files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." }, { T_DEF_CMD, "ENCODE", "ENCODE|ENC", "wkmpt ENCODE source...", "Read the entered KMP files (text or binary)" " and encode (compile) them to binary files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.kmp'@." }, { T_DEF_CMD, "DIFF", "DIFF|CMP", @@ -190,6 +193,7 @@ "Read the entered KMP files (text or binary)," " of needed load the related KCL file," " draw KMP objects and create an OBJ file." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.kmp.obj'@." "\n " " Automated dropping of bad KCL triangles is enabled" @@ -199,6 +203,7 @@ "wkmpt CHECK source...", "Read the entered KMP files (text or binary) and" " and make a plausibility check." + " " WILDCARDS_PIPE " Hints and warnings are written to standard output." " The exit status is @'DIFFER'@ if at least one KMP warning found." }, @@ -218,12 +223,14 @@ { T_DEF_CMD, "ROUTES", "ROUTES", "wkmpt ROUTES file...", "Print the internal cross references for routes of KMP sections" - " CKPH, CKPT, ENPH, ENPT, ITPH and ITPT." }, + " CKPH, CKPT, ENPH, ENPT, ITPH and ITPT." + " " WILDCARDS_PIPE }, { H_DEF_CMD, "GOBJ", "GOBJ", "wkmpt GOBJ [source]...", "Analyze the objects of KMP section GOBJ" - " and print a status line for each object. ..." }, + " and print a status line for each object." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "GAMEMODES", "GAMEMODES|GMODES", "wkmpt GAMEMODES [source]...", @@ -231,7 +238,8 @@ " with and without extension support and print a list." " The lists consists of index, scenario version and scenario name." " Scenario versions are only equal, if the scenarios are duplicates." - " Duplicates happens only, if {--gamemodes} option TT or FULL is set." }, + " Duplicates happens only, if {--gamemodes} option TT or FULL is set." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "WIM0", "WIM0|W0", "wkmpt WIM0 [source]...", @@ -456,6 +464,14 @@ { T_OPT_GP, "KMP", "kmp", 0, 0 /* copy of wszst */ }, + #if MAX_STGI_LAPS > 9 + { T_OPT_GP, "N_LAPS", "n-laps|nlaps", + 0, 0 /* copy of wszst */ }, + #else + { H_OPT_GP, "N_LAPS", "n-laps|nlaps", + 0, 0 /* copy of wszst */ }, + #endif + { T_OPT_GP, "SPEED_MOD", "speed-mod|speedmod", 0, 0 /* copy of wszst */ }, @@ -489,6 +505,12 @@ " This includes syntax information ({--no-header})." " If set twice, the output of unneeded sections is also suppressed." }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "EXPORT", "X|export", 0, "Enable the export mode and create small and machine readable text files" @@ -626,6 +648,11 @@ { T_COPT, "AROT", 0,0,0 }, { T_COPT, "TFORM_SCRIPT", 0,0,0 }, { T_COPT, "KMP", 0,0,0 }, + #if MAX_STGI_LAPS > 9 + { T_COPT, "N_LAPS", 0,0,0 }, + #else + { H_COPT, "N_LAPS", 0,0,0 }, + #endif { T_COPT, "SPEED_MOD", 0,0,0 }, { T_COPT, "KTPT2", 0,0,0 }, { T_COPT, "TFORM_KMP", 0,0,0 }, @@ -741,10 +768,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wkmpt FILEATTRIB ---------- @@ -828,37 +857,50 @@ //---------- COMMAND wkmpt CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wkmpt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wkmpt ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wkmpt DIFF ---------- { T_CMD_BEG, "DIFF", 0,0,0 }, + { T_COPT, "QUIET", 0,0, "If set once, only a summary status is printed." " If set twice, the status is only reported as exit status." }, @@ -870,6 +912,11 @@ //---------- COMMAND wkmpt DRAW ---------- { T_CMD_BEG, "DRAW", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "DRAW", 0,0,0 }, { T_COPT, "POS_MODE", 0,0,0 }, { T_COPT, "POS_FILE", 0,0,0 }, @@ -880,6 +927,11 @@ //---------- COMMAND wkmpt CHECK ---------- { T_CMD_BEG, "CHECK", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COLORS", 0,0,0 }, { T_COPT, "NO_COLORS", 0,0,0 }, { T_COPT, "BRIEF", 0,0, @@ -891,28 +943,38 @@ { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "GENERIC", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wkmpt STGI ---------- { T_CMD_BEG, "STGI", 0,0,0 }, - { T_COPT, "COLORS", 0,0,0 }, - { T_COPT, "NO_COLORS", 0,0,0 }, - { T_COPT, "NO_HEADER", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0, "If set, ignore non existing source files" " and files without KMP without warning." " If set twice, ignore files with standard settings too." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "COLORS", 0,0,0 }, + { T_COPT, "NO_COLORS", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, //---------- COMMAND wszst KTPT ---------- { T_CMD_BEG, "KTPT", 0,0,0 }, - { T_COPT, "COLORS", 0,0,0 }, - { T_COPT, "NO_COLORS", 0,0,0 }, - { T_COPT, "KTPT2", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0, "If set, ignore non existing source files" " and files without KMP without warning." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "COLORS", 0,0,0 }, + { T_COPT, "NO_COLORS", 0,0,0 }, + { T_COPT, "KTPT2", 0,0,0 }, { T_COPT, "LONG", 0,0, "If set, compare each KTPT with each lap counter (some CKPT) and print" " positions, directions, distances and recommendations as wide table." }, @@ -920,17 +982,25 @@ //---------- COMMAND wkmpt ROUTES ---------- { T_CMD_BEG, "ROUTES", 0,0,0 }, - { T_COPT, "COLORS", 0,0,0 }, - { T_COPT, "NO_COLORS", 0,0,0 }, - { T_COPT, "NO_HEADER", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0, "If set, ignore non existing source files" " and files without KMP without warning." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "COLORS", 0,0,0 }, + { T_COPT, "NO_COLORS", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, - //---------- COMMAND wkmpt GAMEMODES ---------- + //---------- COMMAND wkmpt GOBJ ---------- { T_CMD_BEG, "GOBJ", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress head and foot lines." }, { T_COPT, "BRIEF", 0,0, @@ -942,7 +1012,11 @@ //---------- COMMAND wkmpt GAMEMODES ---------- { T_CMD_BEG, "GAMEMODES", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "GAMEMODES", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress head and foot lines." }, diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc index c6b7251..6244378 100644 --- a/project/src/ui/tab-wlect.inc +++ b/project/src/ui/tab-wlect.inc @@ -125,6 +125,7 @@ { T_DEF_CMD, "DUMP", "DUMP|D", "wlect DUMP [source]...", "Print an information dump for each source file." + " " WILDCARDS_PIPE " LE-CODE binaries and LEX binaries are accepted as input." }, { T_DEF_CMD, "DB", "DB" @@ -161,16 +162,19 @@ { T_DEF_CMD, "PATCH", "PATCH|P", "wlect PATCH [lecode_bin]...", "Read each LE-CODE binary file and patch it." + " " WILDCARDS_PIPE " Use {--le-define} to setup cups and tracks." }, { H_DEF_CMD, "TIMESTAMP", "TIMESTAMP", "wlect TIMESTAMP [lecode_bin]...", "Read each LE-CODE binary file and set creation time if exists and is null" - " with respect to others existing timestamps." }, + " with respect to others existing timestamps." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LPAR", "LPAR", "wlect LPAR [le_bin]...", "Read each LE-BIN file and patch it." + " " WILDCARDS_PIPE " Then extract the LE-CODE parameters and store them as LPAR" " text file. Print the result to standard output if no other" " destination is defined." }, @@ -191,7 +195,7 @@ "This command manages data for LE-CODE track distributions." " It reads any number of source files with different file types," " collects the data and creates any number of files with different file types." - " " WILDCARDS + " " WILDCARDS_STEP "\n " " Use the command without keyword to get an extended description." }, @@ -199,18 +203,21 @@ "wlect CAT [source]...", "Read the entered LEX and LE-CODE files (text, binary or szs)" " and print them as decoded text files to standard output." + " " WILDCARDS_PIPE " The output of all source files is concatenated." }, { T_DEF_CMD, "DECODE", "DECODE|DEC", "wlect DECODE [source]...", "Read the entered LEX files (text or binary)" " and decode them to text files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." }, { T_DEF_CMD, "ENCODE", "ENCODE|ENC", "wlect ENCODE source...", "Read the entered LEX files (text or binary)" " and encode (compile) them to binary files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.lex'@." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -313,6 +320,12 @@ 0, "Suppress cross reference comments." }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + #if 0 // BMG disabled for wlect { T_OPT_C, "RAW", "raw", @@ -816,10 +829,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wlect FILEATTRIB ---------- @@ -864,9 +879,13 @@ { T_CMD_BEG, "DUMP", 0,0,0 }, - { T_COPY_GRP, "PATCH", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, - { T_COPT, "BRIEF", 0,0, + { T_COPY_GRP, "PATCH", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "BRIEF", 0,0, "For LE-CODE binaries:" " If set, print infos about file header only." }, { T_COPT, "LONG", 0,0, @@ -918,18 +937,25 @@ { T_CMD_BEG, "PATCH", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, { T_COPY_GRP, "TRACK_COPY", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, // { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "CREATE_DISTRIB",0,0,0 }, //---------- COMMAND wlect TIMESTAMP ---------- { T_CMD_BEG, "TIMESTAMP", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, // { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, @@ -937,6 +963,11 @@ //---------- COMMAND wlect LPAR ---------- { T_CMD_BEG, "LPAR", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, @@ -945,6 +976,7 @@ //---------- COMMAND wlect CREATE ---------- { T_CMD_BEG, "CREATE", 0,0,0 }, + { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, @@ -968,6 +1000,7 @@ //---------- COMMAND wlect DISTRIBUTION ---------- { T_CMD_BEG, "DISTRIBUTION", 0,0,0 }, + { T_COPT, "LOAD_PREFIX", 0,0,0 }, { T_COPT, "LOAD_CATEGORY",0,0,0 }, { T_COPT, "PLUS", 0,0,0 }, @@ -980,27 +1013,39 @@ //---------- COMMAND wlect CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COMPLETE", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wlect DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COMPLETE", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wlect ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COMPLETE", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, // /////////////////////////////////////////////////////////////////////////////// diff --git a/project/src/ui/tab-wmdlt.inc b/project/src/ui/tab-wmdlt.inc index 5c53ddd..4d9439a 100644 --- a/project/src/ui/tab-wmdlt.inc +++ b/project/src/ui/tab-wmdlt.inc @@ -125,6 +125,7 @@ "wmdlt CAT [source]...", "Read the entered MDL files (text or binary) and print" " them as decoded text files to standard output (stdout)." + " " WILDCARDS_PIPE " The output of all source files is concatenated." "\n " " A decoded MDL0 file can only be used for analysis." @@ -134,6 +135,7 @@ "wmdlt DECODE [source]...", "Read the entered MDL files (text or binary)" " and decode them to text files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." "\n " " A decoded MDL0 file can only be used for analysis." @@ -143,6 +145,7 @@ "wmdlt ENCODE [source]...", "Read the entered MDL files (text or binary)" " and encode (compile) them to binary files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.mdl'@." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -151,6 +154,7 @@ "wmdlt STRINGS [source]...", "Read the entered MDL files (text or binary)" " and print all strings of all sections." + " " WILDCARDS_PIPE "\n " " For archives like SZS or BREES," " the strings of each containing MDL are printed." @@ -161,11 +165,13 @@ "wmdlt GEOMETRY [source]...", "Read the entered MDL files (text or binary) and print" " some geometry information to the standard output (stdout)." + " " WILDCARDS_PIPE " The output of all source files is concatenated." }, { H_DEF_CMD, "XTEST", "_TEST", "wszst _TEST [files]", - "Test something." }, + "Test something." + " " WILDCARDS_PIPE }, // //---------- list of all wmdlt options ---------- @@ -301,6 +307,12 @@ { T_OPT_C, "BRIEF", "B|brief", 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_PARAM", "P|no-param|noparam", 0, 0 /* copy of wszst */ }, @@ -514,10 +526,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wmdlt FILEATTRIB ---------- @@ -577,61 +591,85 @@ //---------- COMMAND wmdlt CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wmdlt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wmdlt ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wmdlt STRINGS ---------- { T_CMD_BEG, "STRINGS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wmdlt GEOMETRY ---------- { T_CMD_BEG, "GEOMETRY", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, //---------- COMMAND wmdlt _TEST ---------- { T_CMD_BEG, "XTEST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM", 0,0,0 }, diff --git a/project/src/ui/tab-wpatt.inc b/project/src/ui/tab-wpatt.inc index 44195e6..0da9036 100644 --- a/project/src/ui/tab-wpatt.inc +++ b/project/src/ui/tab-wpatt.inc @@ -121,18 +121,21 @@ "wpatt CAT [source]...", "Read the entered PAT files (text or binary) and print" " them as decoded text files to standard output (stdout)." + " " WILDCARDS_PIPE " The output of all source files is concatenated." }, { T_DEF_CMD, "DECODE", "DECODE|DEC", "wpatt DECODE [source]...", "Read the entered PAT files (text or binary)" " and decode them to text files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.txt'@." }, { T_DEF_CMD, "ENCODE", "ENCODE|ENC", "wpatt ENCODE [source]...", "Read the entered PAT files (text or binary)" " and encode (compile) them to binary files." + " " WILDCARDS_PIPE " The default destination is @'%P/%N.pat'@." }, // @@ -221,6 +224,12 @@ { T_OPT_C, "BRIEF", "B|brief", 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_PARAM", "P|no-param|noparam", 0, 0 /* copy of wszst */ }, @@ -410,10 +419,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wpatt FILEATTRIB ---------- @@ -453,27 +464,39 @@ //---------- COMMAND wpatt CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wpatt DECODE ---------- { T_CMD_BEG, "DECODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wpatt ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "NO_ECHO", 0,0,0 }, { T_COPT, "NO_CHECK", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, // diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc index f78c073..9794d24 100644 --- a/project/src/ui/tab-wstrt.inc +++ b/project/src/ui/tab-wstrt.inc @@ -102,7 +102,8 @@ { T_DEF_CMD, "DUMP", "DUMP", "wstrt DUMP file...", "Dump the structure of REL files (e.g. @StaticR.rel@)" - " and of DOL files (e.g. @main.dol@) as text." }, + " and of DOL files (e.g. @main.dol@) as text." + " " WILDCARDS_PIPE }, { H_DEF_CMD, "CDUMP", "_CDUMP", "wstrt _CDUMP file...", @@ -111,6 +112,7 @@ { T_DEF_CMD, "HEXDUMP", "HEXDUMP|XDUMP", "wstrt HEXDUMP file...", "Dump the content of DOL files as hex dump and use virtual addresses." + " " WILDCARDS_PIPE " Select parts by --vaddr, --faddr and --sname." " Without selectors, the whole file is dumped." }, @@ -143,11 +145,13 @@ { H_DEF_CMD, "HTTPS", "_HTTPS", "wstrt _HTTPS file...", "Collect data about https-requests and print a total summary" - " for all accepted files." }, + " for all accepted files." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "EXTRACT", "EXTRACT|X", "wstrt EXTRACT dol...", - "Extract the sections of a DOL or a REL file into a directory." }, + "Extract the sections of DOL and REL file into a directory." + " " WILDCARDS_PIPE }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -192,11 +196,13 @@ { T_DEF_CMD, "ANALYZE", "ANALYZE|ANA|ANALYSE", "wstrt ANALYZE [file]...", "Open 'StaticR.rel' and DOL files and analyze them." + " " WILDCARDS_PIPE " The files will be classified using SHA1 checksums." }, { T_DEF_CMD, "PATCH", "PATCH", "wstrt PATCH [file]...", "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii." + " " WILDCARDS_PIPE " No backup is made." }, // @@ -282,6 +288,12 @@ 0, "List only the track file names and suppress table header and footer." }, + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, 0 /* copy of wszst */ }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "NO_HEADER", "H|no-header|noheader", 0, 0 /* copy of wszst */ }, @@ -387,11 +399,7 @@ "Each option call adds the filename to an internal list." " Each file must be of type GCT and is added to the internal wcode stock." "\n " - " If parameter FILE contains at least one wildcard (e.g. '*.gct')," - " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed" - " in single or double quotes." + WILDCARDS_OPTION("FILE","*.gct") "\n " " If a single file is not found and the filename (not path)" " contains at least 1 '@@' character, then all '@@' characters of" @@ -562,11 +570,7 @@ " Use option {--force} to allow overlapped sections." " Use option {--verbose} up to 2 times for a log." "\n " - " If parameter FILE contains at least one wildcard (e.g. '*.gct')," - " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed" - " in single or double quotes." + WILDCARDS_OPTION("FILE","*.GCT") "\n " " If a single file is not found and the filename (not path)" " contains at least 1 '@@' character, then all '@@' characters of" @@ -675,11 +679,7 @@ " Each file must be of type WPF (Wiimms Patch File) and defines" " a list of conditionals and patches for staticr.rel and main.dol." "\n " - " If parameter FILE contains at least one wildcard (e.g. '*.wpf')," - " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed" - " in single or double quotes." }, + WILDCARDS_OPTION("FILE","*.wpf") }, { T_SEP_OPT, 0,0,0,0 }, //----- separator ----- @@ -998,10 +998,12 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, - { T_COPT, "LONG", 0,0, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wstrt FILEATTRIB ---------- @@ -1019,6 +1021,11 @@ //---------- COMMAND wstrt DUMP ---------- { T_CMD_BEG, "DUMP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, "For DOL files:" " If set, a second table with the image map is printed." @@ -1031,6 +1038,11 @@ //---------- COMMAND wstrt HEXDUMP ---------- { T_CMD_BEG, "HEXDUMP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "VADDR", 0,0,0 }, { T_COPT, "FADDR", 0,0,0 }, { T_COPT, "SNAME", 0,0,0 }, @@ -1043,6 +1055,7 @@ //---------- COMMAND wstrt PORT ---------- { T_CMD_BEG, "PORT", 0,0,0 }, + { T_COPT, "PORT_DB", 0,0,0 }, { T_COPT, "ORDER", 0,0,0 }, { T_COPT, "NO_0X", 0,0,0 }, @@ -1058,6 +1071,7 @@ //---------- COMMAND wstrt WHERE ---------- { T_CMD_BEG, "WHERE", 0,0,0 }, + { T_COPT, "ORDER", 0,0,0 }, { T_COPT, "NO_0X", 0,0,0 }, { T_COPT, "UPPER", 0,0,0 }, @@ -1072,6 +1086,11 @@ //---------- COMMAND wstrt HTTPS ---------- { T_CMD_BEG, "HTTPS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, " Print output a C source" }, { T_COPT, "VERBOSE", 0,0, @@ -1081,6 +1100,10 @@ { T_CMD_BEG, "EXTRACT", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "DEST", 0,0,0 }, { T_COPT, "DEST2", 0,0,0 }, { T_COPT, "OVERWRITE", 0,0,0 }, @@ -1088,6 +1111,7 @@ //---------- COMMAND wstrt TRACKS ---------- { T_CMD_BEG, "TRACKS", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPT, "BRIEF", 0,0,0 }, { T_COPT, "LONG", 0,0, @@ -1108,6 +1132,7 @@ //---------- COMMAND wstrt FIND ---------- { T_CMD_BEG, "FIND", 0,0,0 }, + { T_COPY_GRP, "PATCH", 0,0,0 }, { T_COPT, "LONG", 0,0, "Add a user friendly track or arena name at the end of each line." @@ -1120,6 +1145,7 @@ //---------- COMMAND wstrt POINTS ---------- { T_CMD_BEG, "POINTS", 0,0,0 }, + { T_COPT, "POINTS", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Print the table as comma separated lists in C notation." }, @@ -1131,6 +1157,11 @@ //---------- COMMAND wstrt ANALYZE ---------- { T_CMD_BEG, "ANALYZE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "CLEAN_DOL", 0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, { T_COPT, "LONG", 0,0, @@ -1141,9 +1172,12 @@ { T_CMD_BEG, "PATCH", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "CLEAN_DOL", 0,0,0 }, { T_COPY_GRP, "PATCH", 0,0,0 }, { H_COPT, "ADD_LECODE", 0,0,0 }, diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc index f1feaf0..09979a8 100644 --- a/project/src/ui/tab-wszst.inc +++ b/project/src/ui/tab-wszst.inc @@ -84,6 +84,7 @@ { T_DEF_CMD, "INSTALL", "INSTALL", "wszst INSTALL [file]...", "Install files to the shared directory." + " " WILDCARDS_PIPE " Use {wszst CONFIG} to list related pathes." }, { T_DEF_CMD, "ARGTEST", "ARGTEST", @@ -98,16 +99,13 @@ " and prints one line for each parameter." " After that, the parameter is treated as a filename with wildcards" " and all matching files are searched." - " The special parameters '+h' and '_h' enable or disable the search" - " for hidden directories and files (files beginning with a point)" - " for the following parameters." " All tools know the EXPAND command." }, { T_DEF_CMD, "WILDCARDS", "WILDCARDS", "wszst WILDCARDS pattern...", - " Each parameter is treated as a filename. " - WILDCARDS_SORT - " The special parameters '+h' and '_h' enable or disable the search" + " Each parameter is treated as a filename. " WILDCARDS_PIPE + " The special parameters '" WM_ENABLE_HIDDEN "' and '" + WM_DISABLE_HIDDEN "' enable or disable the search" " for hidden directories and files (files beginning with a point)" " for the following parameters." " Finally, one line is printed for each file name of the list." }, @@ -133,13 +131,14 @@ "wszst FILETYPE file...", "Scan the header of the entered files and print file type" " and path for each file as list." + " " WILDCARDS_PIPE " All tools know the FILETYPE command." }, { T_DEF_CMD, "UI_CHECK", "UI-CHECK|UC|UICHECK", "wszst UI-CHECK file...", "Classify SZS files from directory .../Scene/UI/." " For the analysis, the filename is ignored and only the content is examined." - "" WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "FILEATTRIB", "FILEATTRIB|FA", "wszst FILEATTRIB [keyword]...", @@ -151,12 +150,13 @@ " All tools know the FILEATTRIB command." }, { T_DEF_CMD, "BRSUB", "BRSUB", - "wszst BRSUB [file]...", + "wszst BRSUB [source]...", " If no file is defined, print a table with known BRRES" " sub files consisting of" " file format, version, number of sections and warn level." " Otherwise analyse the version numbers of each BRRES sub file" - " of each source and print warnings about invalid versions." }, + " of each source and print warnings about invalid versions." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "SYMBOLS", "SYMBOLS", "wszst SYMBOLS", @@ -231,6 +231,8 @@ " use of option {--auto-add} or to convert WU8 files." " If @SOURCE@ is a directory, all standard track and arena" " file names are searched for the missed auto-add files." + " " WILDCARDS_PIPE + "\n " " Without source files, the status of the auto-add archive is printed." "\n " " Try {wszst AUTOADD ./path_to/Race/Course/}" @@ -267,7 +269,8 @@ { H_DEF_CMD, "CODE", "_CODE", "wszst _CODE [files]", "All bytes of all input files are xor'ed with 0xDC and copied to stdout." - " If no source file is given, standard input is read." }, + " If no source file is given, standard input is read." + " " WILDCARDS_PIPE }, { H_DEF_CMD, "RECODE", "_RECODE", "wszst _RECODE mode [files]", @@ -290,45 +293,46 @@ "List all sub files of " ARCHIVES_AND " archives." " If listing a directory, then a virtual SZS file" " is created (like CREATE does it) and listed." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_L", "LIST-L|LL|LISTL", "wszst LIST-L [source]...", "List all sub files with size." " 'LIST-L' and 'LL' are short cuts for {LIST --long}." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_LL", "LIST-LL|LLL|LISTLL", "wszst LIST-LL [source]...", "List all sub files with offset and size." " 'LIST-LL' and 'LLL' are short cuts for {LIST --long --long}." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_LLL", "LIST-LLL|LLLL|LISTLLL", "wszst LIST-LLL [source]...", "List all sub files with offset and size in debugging mode." " 'LIST-LLL' and 'LLLL' are short cuts" " for {LIST --long --long --long}." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_A", "LIST-A|LA|LISTA", "wszst LIST-A [source]...", "List recursive all sub files with size." " 'LIST-A' and 'LA' are short cuts for {LIST --long --all --all}." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "LIST_LA", "LIST-LA|LLA|LISTLA", "wszst LIST-LA [source]...", "List recursive all sub files with offset and size." " 'LIST-LA' and 'LLA' are short cuts for {LIST --long --long --all --all}." - " " WILDCARDS_SORT }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "NAME_REF", "NAME-REF|NAMEREF", "wszst NAME-REF [source]...", "For each BRRES file or subfile, create a name based cross reference" " and print the result as list ordered by names in BRRES order." " For U8 archives (e.g. track SZS files)," - " sub file @course_model.brres@ is analysed." }, + " sub file @course_model.brres@ is analysed." + " " WILDCARDS_PIPE }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -337,7 +341,8 @@ "List the images files of all sub files of " ARCHIVES_AND " archives; non image files are ignored." " If listing a directory, then a virtual SZS file" - " is created (like CREATE does it) and listed." }, + " is created (like CREATE does it) and listed." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "ILIST_L", "ILIST-L|ILL|ILISTL", "wit ILIST-L [source]...", @@ -364,7 +369,8 @@ { T_DEF_CMD, "MEMORY", "MEMORY|MEM", "wszst MEMORY [source]...", "Dump a memory map of each source file." - " Virtual images (extracted directories) are also supported." }, + " Virtual images (extracted directories) are also supported." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "MEMORY_A", "MEMORY-A|MEMA", "wszst MEMORY-A [source]...", @@ -376,7 +382,8 @@ "Dump the internal structure of a BRRES files, compressed or not." " Other archives are ignored." " The main goal is to verify string relocation." - " Virtual images (extracted directories) are also supported." }, + " Virtual images (extracted directories) are also supported." + " " WILDCARDS_PIPE }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -384,18 +391,21 @@ "wszst SHA1 [source]...", "Print a SHA1 checksum for each source." " The checksum is calculated by using the uncompressed data" - " and after patching." }, + " and after patching." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "ANALYZE", "ANALYZE|ANA|ANALYSE", "wszst ANALYZE [source]...", "Analyse track files and LE-CODE binaries." " Print the results in machine-readable form." - " The output format is selected by options." }, + " The output format is selected by options." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "SPLIT", "SPLIT", "wszst SPLIT [source]...", "Analyse (file) names and split them into the different parts." - " Print the results in machine readable format." }, + " Print the results in machine readable format." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "IS_TEXTURE", "IS-TEXTURE|ISTEXTURE", "wszst IS-TEXTURE --reference reference [source]...", @@ -403,6 +413,7 @@ " For each source, one human and machine readable status line is printed." " It is either »-1=err« on error, »1=yes« for a texture hack," " or »0=no LIST« with a comma separated list of reasons." + " " WILDCARDS_PIPE "\n " " At the moment KCL, KMP (see notes) and LEX are checked." " KMP section CAME has been intentionally left out." @@ -414,7 +425,8 @@ "Analyse track files and create a feature list for each source" " in machine readable format." " CTGP uses the feature lists to manage ghosts." - " See option {--lex-features} for details." }, + " See option {--lex-features} for details." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", "wszst DISTRIBUTION result source...\n" @@ -425,6 +437,7 @@ " If a source directory starts with \"arena\"," " all tracks of the directory are assumed to be battle arenas." " Finally print the results into file @RESULT@." + " " WILDCARDS_PIPE "\n " " The default name for @RESULT@ is \"distribution.txt\"." " Extension .txt is appended to the filename if not defined." @@ -455,7 +468,8 @@ " needed and unneeded files." " Also analyse cannons and make slot proposals." " This command uses an internal object and file database." - " The source can be a SZS, U8, WU8 or WBZ file, or an U8 like directory." }, + " The source can be a SZS, U8, WU8 or WBZ file, or an U8 like directory." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "SLOTS", "SLOTS", "wszst SLOTS [source]...", @@ -464,19 +478,22 @@ " For each source one status line is printed." " The status line contains either a positive or a negative" " slot list, whatever is shorter." - " For battle arenas, the keyword @ARENA@ is printed." }, + " For battle arenas, the keyword @ARENA@ is printed." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "STGI", "STGI", "wszst STGI [source]...", "Find the first KMP:STGI of each file" " and print an analysis of it as single line statistic." " Additional the number of lap counter check points ('LC') is printed." - " Track and KMP (binary and text) files are accepted as input." }, + " Track and KMP (binary and text) files are accepted as input." + " " WILDCARDS_PIPE }, - { T_DEF_CMD, "ISARENA", "ISARENA", - "wszst ISARENA [source]...", + { T_DEF_CMD, "IS_ARENA", "IS-ARENA|ISARENA", + "wszst IS_ARENA [source]...", "Analyse each track for its arena status and print a line with" " a status code and the track name." + " " WILDCARDS_PIPE " The status code is: »-RACE« for a racing track," " »?MAYBE« for likely an arena, »+ARENA« for an arena," " »+DISPATCH« for an arena with dispatch points" @@ -497,6 +514,7 @@ " for all others. Compressed sources are compressed again with" " maximum compression (level 9)." " The destination is only written if any data changed." + " " WILDCARDS_PIPE "\n " " {wszst NORMALIZE} is the same as {wszst PATCH --norm}." }, @@ -507,7 +525,7 @@ " and store the file again." " Compressed sources are compressed again." " The destination is only written if any data changed or if stored in another file." - " " WILDCARDS }, + " " WILDCARDS_PIPE }, { T_DEF_CMD, "COPY", "COPY|CP", "wszst COPY source dest\n" @@ -517,8 +535,11 @@ " but has another command line syntax." "\n " "The command copies all source files to the destination." + " If no destination is defined by options {--dest} or {--DEST}," + " then the last parameter is used as destination." " If more than 1 source is defined, the destination must be" " either a directory or a destination filename with escapes." + " " WILDCARDS_PIPE " Patching is also possible and option --overwrite is set implicitly." }, { T_DEF_CMD, "DUPLICATE", "DUPLICATE|DUP", @@ -547,32 +568,37 @@ " If patching options are used, modify the data and write back" " the file using its original file format." " Only the translation vector is modified and" - " new translation and inverse matrices are calculated." }, + " new translation and inverse matrices are calculated." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "COMPRESS", "COMPRESS|COM", "wszst COMPRESS [source]...", "Compress and create a SZS archives." " If the source is already compressed," " then decompress and compress it again." - " The default destination is @'%P/%N.szs'@." }, + " The default destination is @'%P/%N.szs'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "DECOMPRESS", "DECOMPRESS|DEC", "wszst DECOMPRESS [szs]...", "Decompress SZS files." - " The default destination is @'%P/%N.u8'@." }, + " The default destination is @'%P/%N.u8'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "ENCODE", "ENCODE|E", "wszst ENCODE [source_dir]...", " Create and/or encode sub files if necessary." " It works like command CREATE," - " but without creating a new first level archive file." }, + " but without creating a new first level archive file." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "CREATE", "CREATE|C", "wszst CREATE [source_dir]...", "Create " CARCHIVES_OR " archives by adding all not hidden files" " of the directory structure." " Create and/or encode sub files if necessary." - " The default destination is @'%P/%N%T'@." }, + " The default destination is @'%P/%N%T'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "UPDATE", "UPDATE|U", "wszst UPDATE [source]... [--source=] [--dest=]", @@ -582,40 +608,46 @@ " in a prior extracted archive." " Only files with the same size are updated." " The secondary source is used to find the source sub files." - " The default secondary source is @'%P/%N.d/'@." }, + " The default secondary source is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "EXTRACT", "EXTRACT|X", "wszst EXTRACT [source]...", "Extract all sub files of " ARCHIVES_AND " archives." - " The default destination is @'%P/%N.d/'@." }, + " The default destination is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "XDECODE", "XDECODE|XD", "wszst XDECODE [source]...", "Command @XDECODE@ is a short cut for {EXTRACT --decode}." " It extract all sub files of " ARCHIVES_AND " archives" " and decodes all supported files." - " The default destination is @'%P/%N.d/'@." }, + " The default destination is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "XEXPORT", "XEXPORT|XX", "wszst XEXPORT [source]...", "Command @XEXPORT@ is a short cut for {EXTRACT --decode --export}." " It extract all sub files of " ARCHIVES_AND " archives" " and decodes all supported files with enabled export mode." - " The default destination is @'%P/%N.d/'@." }, + " The default destination is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "XALL", "XALL|XA", "wszst XALL [source]...", "Command @XALL@ is a short cut for {EXTRACT --all}." " It extract all sub files of " ARCHIVES_AND " archives" " recursively and decodes all supported files." - " The default destination is @'%P/%N.d/'@." }, + " The default destination is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "XCOMMON", "XCOMMON", "wszst XCOMMON [source]...", "Command @XCOMMON@ is a short cut for {EXTRACT --basedir=common}." " Scan archives and extract files from archives, that are below" " directory @'common'@." - " The default destination is @'%P/%N.d/'@." }, + " The default destination is @'%P/%N.d/'@." + " " WILDCARDS_PIPE }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -623,6 +655,8 @@ "wszst BINARY [source]...", "Read each source file (binary or text, but never archives)" " and write the content as binary file." + " " WILDCARDS_PIPE + "\n " " The file extension of the new file depends on the file type," " but is usually @.bin@." " Currently supported file formats are @BMG@, @GEOHIT@, @ITEMSLOT@," @@ -633,6 +667,8 @@ "wszst TEXT [source]...", "Read each source file (binary or text, but never archives)" " and write the content as text file." + " " WILDCARDS_PIPE + "\n " " The file extension of the new file is usually @.txt@." " Currently supported file formats are @BMG@, @GEOHIT@, @ITEMSLOT@," " @KCL@, @KMG@, @KMP@, @LEX@, @OBJFLOW@, @PAT@" @@ -641,46 +677,55 @@ { T_DEF_CMD, "CAT", "CAT", "wszst CAT [source/subfile]...", "Extract one or more sub files of " ARCHIVES_AND " archives." + " " WILDCARDS_SUBFILE " The output of all source files is concatenated and written to stdout." }, { T_DEF_CMD, "BMG", "BMG", "wszst BMG [source]...", "For each archive all BMG sub files are searched" " and, if found, decoded and printed as combined BMG text file." - " The command works exactly like {wbmgt MIX}." }, + " The command works exactly like {wbmgt MIX}." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "KCL", "KCL", "wszst KCL [source]...", "For each archive the KCL sub file @course.kcl@ is searched" " and, if found, decoded and printed (copied to stdout)." + " " WILDCARDS_SUBFILE "\n " " Automated dropping of bad KCL triangles is enabled" - " if no other drop option is specified by option {--kcl}." }, + " if no other drop option is specified by option {--kcl}." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "KMP", "KMP", "wszst KMP [source]...", "For each archive the KMP sub file @course.kmp@ is searched" - " and, if found, decoded and printed (copied to stdout)." }, + " and, if found, decoded and printed (copied to stdout)." + " " WILDCARDS_SUBFILE }, { T_DEF_CMD, "LEX", "LEX", "wszst LEX [source]...", "For each archive the LEX sub file @course.lex@ is searched" - " and, if found, decoded and printed (copied to stdout)." }, + " and, if found, decoded and printed (copied to stdout)." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "INFO", "INFO", "wszst INFO [source]...", "For each archive a file named @info.txt@ and, if not found," " @credits.txt@ is searched, ignoring case." - " The first found file of each archive is printed (copied to stdout)." }, + " The first found file of each archive is printed (copied to stdout)." + " " WILDCARDS_SUBFILE }, { H_DEF_CMD, "GHOST", "GHOSTS", "wszst GHOST [source]...", - "Analyse each file and print a summary about the ghost data." }, + "Analyse each file and print a summary about the ghost data." + " " WILDCARDS_PIPE }, { T_DEF_CMD, "YAZDUMP", "YAZDUMP|YD", "wszst YAZDUMP [szs]...", "Analyze YAZ compression and print a dump to stdout." - " Ignore files without YAZ compression." }, + " Ignore files without YAZ compression." + " " WILDCARDS_PIPE }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -1326,10 +1371,28 @@ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL," " MASK-PFLAGS, RM-LECODE, PURGE-GOBJ, FULL-DEFOBJ," " DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL," - " 1LAP ... 9LAPS, MAX-LAPS, RM-EMPTY," - " TINY-0 ... TINY-7, INPLACE, SILENT@ and @LOG@." + #if MAX_STGI_LAPS > 9 + " 1LAP .. 15LAPS, MAX-LAPS, RM-EMPTY," + #else + " 1LAP .. 9LAPS, MAX-LAPS, RM-EMPTY," + #endif + " TINY-0 .. TINY-7, INPLACE, SILENT@ and @LOG@." "\1 See https://szs.wiimm.de/opt/kmp for details." }, + #if MAX_STGI_LAPS > 9 + { T_OPT_GP, "N_LAPS", "n-laps|nlaps", + "laps", + "If LAPS is a number between 1 and " CONVERT_TO_STRING(MAX_STGI_LAPS) "," + " then ignore laps settings of option {--kmp} (@1LAP@..@15LAPS@)" + " and patch KMP:STGI to this number of laps." }, + #else + { H_OPT_GP, "N_LAPS", "n-laps|nlaps", + "laps", + "If LAPS is a number between 1 and " CONVERT_TO_STRING(MAX_STGI_LAPS) "," + " then ignore laps settings of option {--kmp} (@1LAP@..@9LAPS@)" + " and patch KMP:STGI to this number of laps." }, + #endif + { T_OPT_GP, "SPEED_MOD", "speed-mod|speedmod", "factor", "The speed modifier is a user extensions to change the basic speed" @@ -1494,12 +1557,12 @@ { T_OPT_G, "LT_CLEAR", "lt-clear|ltclear", 0, - "Clear the LEX/TEST section and remove the section and course.lex if empty." + "Clear LEX sections TEST and DEV1 and remove the section and course.lex if empty." " This option is executed before all other --lt-* options." }, { T_OPT_GP, "LT_ONLINE", "lt-online|ltonline", "mode", - "Set LEX/TEST parameter OFFLINE-ONLINE to this MODE." + "Set LEX:TEST parameter OFFLINE-ONLINE to this MODE." " MODE is one of @AUTO@ (default), @NEVER@ or @ALWAYS@." " Only track.szs files are modified." " If needed, file course.lex and section TEST" @@ -1507,14 +1570,14 @@ { T_OPT_GP, "LT_N_PLAYERS", "lt-n-players|lt-nplayers|ltnplayers", "offline,online", - "Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer values." + "Set LEX:TEST parameters N-OFFLINE and N-ONLINE to these integer values." " Only track.szs files are modified." " If needed, file course.lex and section TEST" " are created or removed if empty." }, { T_OPT_GP, "LT_COND_BIT", "lt-cond-bit|lt-condbit|ltcondbit", "bitnum", - "Set LEX/TEST parameter COND-BIT to this integer value." + "Set LEX:TEST parameter COND-BIT to this integer value." " Use -1 to deactivate this COND-BIT." " Only track.szs files are modified." " If needed, file course.lex and section TEST" @@ -1522,7 +1585,7 @@ { T_OPT_GP, "LT_GAME_MODE", "lt-game-mode|lt-gamemode|ltgamemode", "mode", - "Set LEX/TEST parameter GAME-MODE to this MODE." + "Set LEX:TEST parameter GAME-MODE to this MODE." " MODE is one of @AUTO@ (default), @BALLOON, COIN, VERSUS@ or @ITEMRAIN@." " Only track.szs files are modified." " If needed, file course.lex and section TEST" @@ -1530,7 +1593,7 @@ { T_OPT_GP, "LT_ENGINE", "lt-engine|ltengine", "mode", - "Set LEX/TEST parameter ENGINE to this MODE." + "Set LEX:TEST parameter ENGINE to this MODE." " MODE is one of @AUTO@ (default), @BATTLE, 50CC, 100CC, 150CC, 200CC," " 150M@ or @200M@. Only track.szs files are modified." " If needed, file course.lex and section TEST" @@ -1617,6 +1680,11 @@ " to change the menu as required by LE-CODE" " to be able to select tracks from more than 8 cups." }, + { T_OPT_C, "9LAPS", "9laps", + 0, + "Patch RACE*.szs files from directory .../Scene/UI/ to support 9 laps." + " See https://wiki.tockdom.com/wiki/Lap_Texture_Fix for details." }, + { T_OPT_CP, "TITLE_SCREEN", "title-screen|titlescreen", "dir", "Specify a directory from which to search and replace title screens." @@ -1724,7 +1792,11 @@ " This includes syntax information ({--no-header})." " If set twice, the output of unneeded sections is also suppressed." }, - { T_OPT_CM, "IN_ORDER", "in-order|inorder", + { T_OPT_C, "NO_WILDCARDS", "no-wildcards|nowildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." }, + + { T_OPT_C, "IN_ORDER", "in-order|inorder", 0, "Process the input files in order of the command line" " and don't delete duplicates." }, @@ -2558,6 +2630,11 @@ { T_COPT, "TRI_AREA", 0,0,0 }, { T_COPT, "TRI_HEIGHT", 0,0,0 }, { T_COPT, "KMP", 0,0,0 }, + #if MAX_STGI_LAPS > 9 + { T_COPT, "N_LAPS", 0,0,0 }, + #else + { H_COPT, "N_LAPS", 0,0,0 }, + #endif { T_COPT, "SPEED_MOD", 0,0,0 }, { T_COPT, "KTPT2", 0,0,0 }, { T_COPT, "TFORM_KMP", 0,0,0 }, @@ -2580,6 +2657,7 @@ { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, { T_COPT, "LE_MENU", 0,0,0 }, + { T_COPT, "9LAPS", 0,0,0 }, { T_COPT, "TITLE_SCREEN", 0,0,0 }, { T_COPT, "CUP_ICONS", 0,0,0 }, @@ -2713,6 +2791,8 @@ { T_GRP_BEG, "CREATE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE_SETUP", 0,0,0 }, { T_COPY_GRP, "FFORMAT2", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -2805,6 +2885,10 @@ { T_CMD_BEG, "INSTALL", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + //---------- COMMAND wszst ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, @@ -2818,8 +2902,9 @@ //---------- COMMAND wszst WILDCARDS ---------- { T_CMD_BEG, "WILDCARDS", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wszst TEST ---------- @@ -2857,21 +2942,24 @@ { T_CMD_BEG, "FILETYPE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print an additional column with the decompressed file type and version." " If entered twice, a validation status column is added." }, { T_COPT, "NO_HEADER", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wszst UI_CHECK ---------- { T_CMD_BEG, "UI_CHECK", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "LONG", 0,0, "Print the result as technical list." }, { T_COPT, "NO_HEADER", 0,0,0 }, - { T_COPT, "IN_ORDER", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wszst FILEATTRIB ---------- @@ -2951,7 +3039,10 @@ { T_CMD_BEG, "AUTOADD", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "QUIET", 0,0, " If set, suppress logging." }, { T_COPT, "VERBOSE", 0,0, @@ -2989,6 +3080,7 @@ //---------- COMMAND wszst SCANCACHE ---------- { T_CMD_BEG, "SCANCACHE", 0,0,0 }, + { T_COPT, "CACHE", 0,0,0 }, { T_COPT, "LOG_CACHE", 0,0,0 }, { T_COPT, "PURGE", 0,0,0 }, @@ -3003,6 +3095,7 @@ //---------- COMMAND wszst _SIZEOF ---------- { T_CMD_BEG, "SIZEOF", 0,0,0 }, + { T_COPT, "SORT", 0,0, "Define a sort mode. Keywords are:" " @NONE@ (default), @NAME@ end @SIZE@." }, @@ -3015,6 +3108,9 @@ //---------- COMMAND wszst _CODE ---------- { T_CMD_BEG, "CODE", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, //---------- COMMAND wszst _RECODE ---------- @@ -3028,7 +3124,12 @@ //---------- COMMAND wszst LIST ---------- { T_CMD_BEG, "LIST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "RECURSE", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "EXT", 0,0,0 }, { T_COPT, "CUT", 0,0,0 }, { T_COPT, "ALL", 0,0,0 }, @@ -3038,9 +3139,7 @@ " If set three times, debugging mode is enabled." }, { T_COPT, "SORT", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, - { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, { T_COPT, "RM_AIPARAM", 0,0,0 }, @@ -3093,7 +3192,12 @@ //---------- COMMAND wszst ILIST ---------- { T_CMD_BEG, "ILIST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "RECURSE", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "ALL", 0,0,0 }, { T_COPT_M, "LONG", 0,0, "If set, image width, height and size are printed." @@ -3101,7 +3205,6 @@ { T_COPT, "SORT", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, @@ -3128,7 +3231,12 @@ //---------- COMMAND wszst MEMORY ---------- { T_CMD_BEG, "MEMORY", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "RECURSE", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "EXT", 0,0,0 }, { T_COPT, "DECODE", 0,0, "Decode binary files to find memory addresses of sections." }, @@ -3142,7 +3250,6 @@ "If set, print absolute offsets too." }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, { T_COPT, "RM_AIPARAM", 0,0,0 }, @@ -3156,15 +3263,24 @@ //---------- COMMAND wszst DUMP ---------- { T_CMD_BEG, "DUMP", 0,0,0 }, - { T_COPY_GRP, "CREATE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "CREATE", 0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, //---------- COMMAND wszst SHA1 ---------- { T_CMD_BEG, "SHA1", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "RECURSE", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, @@ -3190,9 +3306,13 @@ //---------- COMMAND wszst ANALYZE ---------- { T_CMD_BEG, "ANALYZE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, "Append a list of special files with size, SHA1 and file name." }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "QUIET", 0,0, "Suppress logging of input and output files." }, { T_SEP_OPT, 0,0,0,0 }, @@ -3205,13 +3325,17 @@ //---------- COMMAND wszst SPLIT ---------- { T_CMD_BEG, "SPLIT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LOAD_PREFIX", 0,0,0 }, { T_COPT, "LOAD_CATEGORY",0,0,0 }, { T_COPT, "PLUS", 0,0,0 }, { T_COPT, "SPLIT", 0,0,0 }, { T_COPT, "PRINTF", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "SCRIPT", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -3221,7 +3345,11 @@ //---------- COMMAND wszst IS_TEXTURE ---------- { T_CMD_BEG, "IS_TEXTURE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "REFERENCE", 0,0,0 }, { T_COPT, "BATTLE", 0,0,0 }, { T_COPT, "LONG", 0,0, @@ -3230,6 +3358,11 @@ //---------- COMMAND wszst FEATURES ---------- { T_CMD_BEG, "FEATURES", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "BRIEF", 0,0, "Suppres comments at all." " If set twice, suppress empty lines (for grouping) too." @@ -3240,7 +3373,6 @@ " The letters used are:" " @S@ (section), @V@ (visual impact), @B@ (battle impact), @R@ (racing impact)," " @T@ (time trial impact), @L@ (local=offline impact) and @O@ (online impact)." }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "QUIET", 0,0, "Suppress logging of input and output files." }, { T_SEP_OPT, 0,0,0,0 }, @@ -3253,7 +3385,11 @@ //---------- COMMAND wszst DISTRIBUTION ---------- { T_CMD_BEG, "DISTRIBUTION", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NORM", 0,0,0 }, { T_COPT, "LINKS", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, @@ -3273,6 +3409,7 @@ //---------- COMMAND wszst DIFF ---------- { T_CMD_BEG, "DIFF", 0,0,0 }, + { T_COPT, "QUIET", 0,0, "If set once, only a summary status for each section is printed." " If set twice, only a total summary status is printed." @@ -3286,9 +3423,13 @@ //---------- COMMAND wszst CHECK ---------- { T_CMD_BEG, "CHECK", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_CHECK", 0,0, "Don't check the KCL and KMP files." }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "COLORS", 0,0,0 }, { T_COPT, "NO_COLORS", 0,0,0 }, { T_COPT, "BRIEF", 0,0, @@ -3304,7 +3445,11 @@ //---------- COMMAND wszst SLOTS ---------- { T_CMD_BEG, "SLOTS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "BRIEF", 0,0, "Print the slot list in a compressed form without spaces." }, { T_COPY_GRP, "CREATE", 0,0,0 }, @@ -3314,17 +3459,28 @@ //---------- COMMAND wszst STGI ---------- { T_CMD_BEG, "STGI", 0,0,0 }, - { T_COPT, "COLORS", 0,0,0 }, - { T_COPT, "NO_COLORS", 0,0,0 }, - { T_COPT, "NO_HEADER", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0, "If set, ignore non existing source files" " and files without KMP without warning." " If set twice, ignore files with standard settings too." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "COLORS", 0,0,0 }, + { T_COPT, "NO_COLORS", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, + + //---------- COMMAND wszst IS_ARENA ---------- - //---------- COMMAND wszst ISARENA ---------- + { T_CMD_BEG, "IS_ARENA", 0,0,0 }, - { T_CMD_BEG, "ISARENA", 0,0,0 }, + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0, + "If set, ignore non existing source files" + " and files without KMP without warning." }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "COLORS", 0,0,0 }, { T_COPT, "NO_COLORS", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, @@ -3332,19 +3488,20 @@ "If set, suppress the output of header and filenames." }, { T_COPT, "QUIET", 0,0, "If set, print nothing and set only the exit status." }, - { T_COPT, "IGNORE", 0,0, - "If set, ignore non existing source files" - " and files without KMP without warning." }, //---------- COMMAND wszst NORMALIZE ---------- { T_CMD_BEG, "NORMALIZE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "REMOVE_SRC", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "FFORMAT1", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "NORM", 0,0,0 }, { T_COPT, "FAST", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -3353,13 +3510,17 @@ //---------- COMMAND wszst PATCH ---------- { T_CMD_BEG, "PATCH", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "REMOVE_SRC", 0,0,0 }, { T_COPT, "NO_COPY", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "FFORMAT1", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "COMPRESS", 0,0,0 }, { T_COPY_GRP, "NORM", 0,0,0 }, { T_COPT, "FAST", 0,0,0 }, @@ -3380,12 +3541,16 @@ //---------- COMMAND wszst MINIMAP ---------- { T_CMD_BEG, "MINIMAP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "LONG", 0,0, "If set, print the matrices too." " If set twice, print minimum and maximum values too." }, { T_COPT, "REMOVE_DEST", 0,0,0 }, { T_COPT, "PRESERVE", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "COMPRESS", 0,0,0 }, { T_COPY_GRP, "NORM", 0,0,0 }, { T_COPT, "FAST", 0,0,0 }, @@ -3408,12 +3573,16 @@ //---------- COMMAND wszst COMPRESS ---------- { T_CMD_BEG, "COMPRESS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "REMOVE_SRC", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "FFORMAT1", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "COMPRESS", 0,0,0 }, { T_COPY_GRP, "NORM", 0,0,0 }, { T_COPT, "FAST", 0,0,0 }, @@ -3423,12 +3592,16 @@ //---------- COMMAND wszst DECOMPRESS ---------- { T_CMD_BEG, "DECOMPRESS", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "REMOVE_SRC", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "U8", 0,0,0 }, { T_COPT, "WU8", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "NORM", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "TRANSFORM2", 0,0,0 }, @@ -3436,6 +3609,11 @@ //---------- COMMAND wszst ENCODE ---------- { T_CMD_BEG, "ENCODE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "IGNORE_SETUP", 0,0,0 }, { T_COPY_GRP, "ALIGN", 0,0,0 }, { T_COPT, "LOGGING", 0,0,0 }, @@ -3455,6 +3633,11 @@ //---------- COMMAND wszst CREATE ---------- { T_CMD_BEG, "CREATE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, { T_COPT, "NO_COMPRESS", 0,0,0 }, @@ -3466,8 +3649,12 @@ //---------- COMMAND wszst UPDATE ---------- { T_CMD_BEG, "UPDATE", 0,0,0 }, - { T_COPT, "SOURCE", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "SOURCE", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "ESC", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -3483,9 +3670,13 @@ //---------- COMMAND wszst EXTRACT ---------- { T_CMD_BEG, "EXTRACT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPY_GRP, "EXTRACT", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { H_COPT, "ANALYZE", 0,0,0 }, { H_COPT, "ANALYZE_MODE", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, @@ -3509,21 +3700,33 @@ //---------- COMMAND wszst XCOMMON ---------- { T_CMD_BEG, "XCOMMON", 0,0,0 }, - { T_COPY_GRP, "DEST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, //---------- COMMAND wszst BINARY ---------- { T_CMD_BEG, "BINARY", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "KMG_LIMIT", 0,0,0 }, { T_COPT, "KMG_COPY", 0,0,0 }, - { T_COPT, "IGNORE", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, //---------- COMMAND wszst TEXT ---------- { T_CMD_BEG, "TEXT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "DECODE", 0,0,0 }, { T_COPT, "KMG_LIMIT", 0,0,0 }, { T_COPT, "KMG_COPY", 0,0,0 }, @@ -3535,7 +3738,11 @@ //---------- COMMAND wszst CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "DECODE", 0,0,0 }, { T_COPY_GRP, "TEXTOUT", 0,0,0 }, { T_COPY_GRP, "BMG", 0,0,0 }, @@ -3543,7 +3750,11 @@ //---------- COMMAND wszst BMG ---------- { T_CMD_BEG, "BMG", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, NO_HEAD_SYNTAX }, { T_COPT, "BRIEF", 0,0,0 }, { T_COPY_GRP, "BMG", 0,0,0 }, @@ -3551,7 +3762,11 @@ //---------- COMMAND wszst KCL ---------- { T_CMD_BEG, "KCL", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, NO_HEAD_SYNTAX }, { T_COPT, "BRIEF", 0,0,0 }, { T_COPT, "NO_PARAM", 0,0,0 }, @@ -3562,7 +3777,11 @@ //---------- COMMAND wszst KMP ---------- { T_CMD_BEG, "KMP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, NO_HEAD_SYNTAX }, { T_COPT, "BRIEF", 0,0,0 }, { T_COPT, "EXPORT", 0,0,0 }, @@ -3574,7 +3793,11 @@ //---------- COMMAND wszst LEX ---------- { T_CMD_BEG, "LEX", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, NO_HEAD_SYNTAX }, { T_COPT, "BRIEF", 0,0,0 }, { T_COPT, "EXPORT", 0,0,0 }, @@ -3582,6 +3805,9 @@ //---------- COMMAND wszst INFO ---------- { T_CMD_BEG, "INFO", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress output of the printed filename." }, @@ -3589,7 +3815,11 @@ //---------- COMMAND wszst GHOST ---------- { T_CMD_BEG, "GHOST", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress output of the printed filename." }, { T_SEP_OPT, 0,0,0,0 }, @@ -3601,11 +3831,17 @@ //---------- COMMAND wszst YAZDUMP ---------- { T_CMD_BEG, "YAZDUMP", 0,0,0 }, + + { T_COPT, "NO_WILDCARDS", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, //---------- COMMAND wszst VEHICLE ---------- { T_CMD_BEG, "VEHICLE", 0,0,0 }, + { T_COPT, "SOURCE", 0,0, "Load the file instead of using the internal base." }, { T_COPT, "DEST", 0,0, diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c index 03d997b..39ee317 100644 --- a/project/src/ui/ui-wbmgt.c +++ b/project/src/ui/ui-wbmgt.c @@ -73,6 +73,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " suppressed." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_DEST, false, false, false, false, true, 'd', "dest", "path", "Define a destination path (directory/file). The destination - means:" @@ -293,7 +304,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 32 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 34 //----- global options ----- @@ -559,7 +570,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 67 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 69 }; @@ -727,6 +738,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "max-file-size", 1, 0, 'M' }, { "maxfilesize", 1, 0, 'M' }, { "tracks", 1, 0, 'T' }, @@ -874,33 +889,35 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08b */ OPT_CT_CODE, /* 0x08c */ OPT_LE_CODE, /* 0x08d */ OPT_CHDIR, - /* 0x08e */ OPT_POINTS, - /* 0x08f */ OPT_UTF_8, - /* 0x090 */ OPT_NO_UTF_8, - /* 0x091 */ OPT_FORCE, - /* 0x092 */ OPT_REPAIR_MAGICS, - /* 0x093 */ OPT_OLD, - /* 0x094 */ OPT_STD, - /* 0x095 */ OPT_NEW, - /* 0x096 */ OPT_EXTRACT, - /* 0x097 */ OPT_NUMBER, - /* 0x098 */ OPT_ALIGN, - /* 0x099 */ OPT_MACRO_BMG, - /* 0x09a */ OPT_FILTER_BMG, - /* 0x09b */ OPT_BMG_ENDIAN, - /* 0x09c */ OPT_BMG_ENCODING, - /* 0x09d */ OPT_BMG_INF_SIZE, - /* 0x09e */ OPT_BMG_MID, - /* 0x09f */ OPT_FORCE_ATTRIB, - /* 0x0a0 */ OPT_DEF_ATTRIB, - /* 0x0a1 */ OPT_NO_ATTRIB, - /* 0x0a2 */ OPT_X_ESCAPES, - /* 0x0a3 */ OPT_OLD_ESCAPES, - /* 0x0a4 */ OPT_NO_BMG_COLORS, - /* 0x0a5 */ OPT_BMG_COLORS, - /* 0x0a6 */ OPT_NO_BMG_INLINE, - /* 0x0a7 */ OPT_SECTIONS, - /* 0x0a8 */ 0,0,0,0, 0,0,0,0, + /* 0x08e */ OPT_NO_WILDCARDS, + /* 0x08f */ OPT_IN_ORDER, + /* 0x090 */ OPT_POINTS, + /* 0x091 */ OPT_UTF_8, + /* 0x092 */ OPT_NO_UTF_8, + /* 0x093 */ OPT_FORCE, + /* 0x094 */ OPT_REPAIR_MAGICS, + /* 0x095 */ OPT_OLD, + /* 0x096 */ OPT_STD, + /* 0x097 */ OPT_NEW, + /* 0x098 */ OPT_EXTRACT, + /* 0x099 */ OPT_NUMBER, + /* 0x09a */ OPT_ALIGN, + /* 0x09b */ OPT_MACRO_BMG, + /* 0x09c */ OPT_FILTER_BMG, + /* 0x09d */ OPT_BMG_ENDIAN, + /* 0x09e */ OPT_BMG_ENCODING, + /* 0x09f */ OPT_BMG_INF_SIZE, + /* 0x0a0 */ OPT_BMG_MID, + /* 0x0a1 */ OPT_FORCE_ATTRIB, + /* 0x0a2 */ OPT_DEF_ATTRIB, + /* 0x0a3 */ OPT_NO_ATTRIB, + /* 0x0a4 */ OPT_X_ESCAPES, + /* 0x0a5 */ OPT_OLD_ESCAPES, + /* 0x0a6 */ OPT_NO_BMG_COLORS, + /* 0x0a7 */ OPT_BMG_COLORS, + /* 0x0a8 */ OPT_NO_BMG_INLINE, + /* 0x0a9 */ OPT_SECTIONS, + /* 0x0aa */ 0,0,0,0, 0,0, /* 0x0b0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -917,142 +934,142 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[32] = // cmd #1 +static u8 option_allowed_cmd_VERSION[34] = // cmd #1 { 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1 + 0,0,0,1 }; -static u8 option_allowed_cmd_HELP[32] = // cmd #2 +static u8 option_allowed_cmd_HELP[34] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1 + 1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[32] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[34] = // cmd #3 { 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[32] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[34] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1 + 1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[32] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[34] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1 + 1,1,1,1 }; -static u8 option_allowed_cmd_TEST[32] = // cmd #6 +static u8 option_allowed_cmd_TEST[34] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1 + 1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[32] = // cmd #7 +static u8 option_allowed_cmd_COLORS[34] = // cmd #7 { 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[32] = // cmd #8 +static u8 option_allowed_cmd_ERROR[34] = // cmd #8 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1 + 0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[32] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[34] = // cmd #9 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,1,0,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[32] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[34] = // cmd #10 { 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_POINTS[32] = // cmd #11 +static u8 option_allowed_cmd_POINTS[34] = // cmd #11 { 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_REGEXP[32] = // cmd #12 +static u8 option_allowed_cmd_REGEXP[34] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_EXTRACT[32] = // cmd #13 +static u8 option_allowed_cmd_EXTRACT[34] = // cmd #13 { 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0 }; -static u8 option_allowed_cmd_SECTIONS[32] = // cmd #14 +static u8 option_allowed_cmd_SECTIONS[34] = // cmd #14 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_LIST[32] = // cmd #15 +static u8 option_allowed_cmd_LIST[34] = // cmd #15 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_SLOTS[32] = // cmd #16 +static u8 option_allowed_cmd_SLOTS[34] = // cmd #16 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_DIFF[32] = // cmd #17 +static u8 option_allowed_cmd_DIFF[34] = // cmd #17 { - 0,0,0,0,1, 0,1,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_CAT[32] = // cmd #18 +static u8 option_allowed_cmd_CAT[34] = // cmd #18 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,0 + 0,1,1,1,1, 1,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,0 }; -static u8 option_allowed_cmd_MIX[32] = // cmd #19 +static u8 option_allowed_cmd_MIX[34] = // cmd #19 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,0 + 0,1,1,1,1, 1,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,0 }; -static u8 option_allowed_cmd_IDENTIFIER[32] = // cmd #20 +static u8 option_allowed_cmd_IDENTIFIER[34] = // cmd #20 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,0 + 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,0 }; -static u8 option_allowed_cmd_DECODE[32] = // cmd #21 +static u8 option_allowed_cmd_DECODE[34] = // cmd #21 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,0 }; -static u8 option_allowed_cmd_ENCODE[32] = // cmd #22 +static u8 option_allowed_cmd_ENCODE[34] = // cmd #22 { - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, - 0,0 + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, + 0,0,0,0 }; -static u8 option_allowed_cmd_PATCH[32] = // cmd #23 +static u8 option_allowed_cmd_PATCH[34] = // cmd #23 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,0 + 1,1,1,0 }; @@ -1165,8 +1182,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1202,6 +1221,8 @@ static const InfoOption_t * option_tab_cmd_EXTRACT[] = static const InfoOption_t * option_tab_cmd_SECTIONS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, 0 @@ -1209,7 +1230,12 @@ static const InfoOption_t * option_tab_cmd_SECTIONS[] = static const InfoOption_t * option_tab_cmd_LIST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_PATCH_BMG, @@ -1221,7 +1247,12 @@ static const InfoOption_t * option_tab_cmd_LIST[] = static const InfoOption_t * option_tab_cmd_SLOTS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_PATCH_BMG, @@ -1246,6 +1277,12 @@ static const InfoOption_t * option_tab_cmd_DIFF[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_HEADER, OptionInfo + OPT_BRIEF, @@ -1266,7 +1303,6 @@ static const InfoOption_t * option_tab_cmd_CAT[] = OptionInfo + OPT_NO_BMG_INLINE, OptionInfo + OPT_LONG, OptionInfo + OPT_EXPORT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1276,6 +1312,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_MIX[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_HEADER, OptionInfo + OPT_BRIEF, @@ -1296,7 +1338,6 @@ static const InfoOption_t * option_tab_cmd_MIX[] = OptionInfo + OPT_NO_BMG_INLINE, OptionInfo + OPT_LONG, OptionInfo + OPT_EXPORT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1337,6 +1378,12 @@ static const InfoOption_t * option_tab_cmd_IDENTIFIER[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1368,7 +1415,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_NO_BMG_INLINE, OptionInfo + OPT_LONG, OptionInfo + OPT_EXPORT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1378,6 +1424,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1397,7 +1449,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_BMG_INF_SIZE, OptionInfo + OPT_BMG_MID, OptionInfo + OPT_FORCE_ATTRIB, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1408,6 +1459,12 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = static const InfoOption_t * option_tab_cmd_PATCH[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1439,7 +1496,6 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_NO_BMG_INLINE, OptionInfo + OPT_LONG, OptionInfo + OPT_EXPORT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1548,10 +1604,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1613,9 +1666,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wbmgt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -1693,9 +1748,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wbmgt SECTIONS [source]...", "List all sections of each binary BMG file. Print offset, size, magic" - " and a short info. If known, print number and size of elements too.", + " and a short info. If known, print number and size of elements too." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 1, + 3, option_tab_cmd_SECTIONS, option_allowed_cmd_SECTIONS }, @@ -1708,9 +1765,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LS", "wbmgt LIST [source]...", "List messages to proof the content. Patches are applied before" - " listing. The lines are cut to fit the terminal width.", + " listing. The lines are cut to fit the terminal width. Wildcards and" + " pipe characters are parsed, see https://szs.wiimm.de/doc/wildcards" + " for details.", 0, - 6, + 8, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -1723,9 +1782,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wbmgt SLOTS [source]...", "Print a slot ordered list with slot number, message id, delta and" - " attributes. Patches are applied before listing.", + " attributes. Patches are applied before listing. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 6, + 8, option_tab_cmd_SLOTS, option_allowed_cmd_SLOTS }, @@ -1758,9 +1819,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Read the entered BMG files (text, binary or szs sub file) and print" " them as decoded text files to standard output. All BMG files of a" " single archive (SZS,...) are combined to 1 source. The output of all" - " source files is concatenated.", + " source files is concatenated. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 21, + 23, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -1776,9 +1838,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " them as decoded text files to standard output. All BMG files of all" " archives (SZS,...) are read. The output of all source files is" " combined and strings of later source files override prior defined" - " strings.", + " strings. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 21, + 23, option_tab_cmd_MIX, option_allowed_cmd_MIX }, @@ -1809,9 +1872,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Read the entered message files and decode them to text files. All BMG" " files of a single archive (SZS,...) are concatenated to 1 source." " This command is similar to PATCH, but the result is always decoded." - " The default destination is '%P/%N.txt'.", + " The default destination is '%P/%N.txt'. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 29, + 31, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -1826,9 +1891,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Read the entered message files and encode them to BMG files. All BMG" " files of a single archive (SZS,...) are concatenated to 1 source." " This command is similar to PATCH, but the result is always encoded." - " The default destination is '%P/%N.bmg'.", + " The default destination is '%P/%N.bmg'. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 18, + 20, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -1842,11 +1909,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wbmgt PATCH [source]...", "Patch the entered files by using the patch list specified by option" " --patch-bmg. The coding of the source files is not changed. The" - " default destination is '%P/%F'.\n" + " default destination is '%P/%F'. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.\n" " Use 'wszst patch --patch-bmg ...' to patch BMG files within a SZS" " file.", 0, - 30, + 32, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, diff --git a/project/src/ui/ui-wbmgt.h b/project/src/ui/ui-wbmgt.h index 1f2375b..6f5b78e 100644 --- a/project/src/ui/ui-wbmgt.h +++ b/project/src/ui/ui-wbmgt.h @@ -59,6 +59,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_DEST, OPT_DEST2, OPT_ESC, @@ -88,7 +90,7 @@ typedef enum enumOptions OPT_EXPORT, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 32 + OPT__N_SPECIFIC, // == 34 //----- global options ----- @@ -128,7 +130,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 67 + OPT__N_TOTAL // == 69 } enumOptions; @@ -146,6 +148,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_DEST = 1llu << OPT_DEST, // OB_DEST2 = 1llu << OPT_DEST2, // OB_ESC = 1llu << OPT_ESC, @@ -227,8 +231,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -239,14 +245,20 @@ typedef enum enumOptions // // OB_CMD_EXTRACT = OB_NO_HEADER, // -// OB_CMD_SECTIONS = OB_IGNORE, +// OB_CMD_SECTIONS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE, // -// OB_CMD_LIST = OB_IGNORE +// OB_CMD_LIST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG, // -// OB_CMD_SLOTS = OB_IGNORE +// OB_CMD_SLOTS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG, @@ -257,8 +269,10 @@ typedef enum enumOptions // | OB_DEST // | OB_ESC, // -// OB_CMD_CAT = OB_GRP_TEXTOUT +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG, @@ -267,28 +281,34 @@ typedef enum enumOptions // // OB_CMD_IDENTIFIER = OB_GRP_TEXTOUT, // -// OB_CMD_DECODE = OB_GRP_DEST -// | OB_GRP_TEXTOUT +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST +// | OB_GRP_TEXTOUT // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG, // -// OB_CMD_ENCODE = OB_GRP_DEST +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_BMG_ENDIAN // | OB_BMG_ENCODING // | OB_BMG_INF_SIZE // | OB_BMG_MID // | OB_FORCE_ATTRIB -// | OB_IGNORE // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG // | OB_ALIGN, // -// OB_CMD_PATCH = OB_GRP_DEST -// | OB_GRP_TEXTOUT +// OB_CMD_PATCH = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST +// | OB_GRP_TEXTOUT // | OB_PATCH_BMG // | OB_MACRO_BMG // | OB_FILTER_BMG @@ -388,6 +408,8 @@ typedef enum enumGetOpt GO_CT_CODE, GO_LE_CODE, GO_CHDIR, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_POINTS, GO_UTF_8, GO_NO_UTF_8, diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c index 580e0db..a22d02b 100644 --- a/project/src/ui/ui-wctct.c +++ b/project/src/ui/ui-wctct.c @@ -75,6 +75,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Suppress cross reference comments." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_RAW, false, false, false, false, false, 0, "raw", 0, "Print BMG messages as UTF-8 text without escape sequences." @@ -393,7 +404,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 47 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 49 //----- global options ----- @@ -696,7 +707,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " 0x3b:0x41 and 0x44:0xfe." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 87 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 89 }; @@ -928,6 +939,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "raw", 0, 0, GO_RAW }, { "bmg-endian", 1, 0, GO_BMG_ENDIAN }, { "bmgendian", 1, 0, GO_BMG_ENDIAN }, @@ -1103,49 +1118,51 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08e */ OPT_CRS1, /* 0x08f */ OPT_CHDIR, /* 0x090 */ OPT_ROUND, - /* 0x091 */ OPT_RAW, - /* 0x092 */ OPT_BMG_ENDIAN, - /* 0x093 */ OPT_BMG_ENCODING, - /* 0x094 */ OPT_BMG_INF_SIZE, - /* 0x095 */ OPT_BMG_MID, - /* 0x096 */ OPT_FORCE_ATTRIB, - /* 0x097 */ OPT_DEF_ATTRIB, - /* 0x098 */ OPT_NO_ATTRIB, - /* 0x099 */ OPT_X_ESCAPES, - /* 0x09a */ OPT_OLD_ESCAPES, - /* 0x09b */ OPT_NO_BMG_COLORS, - /* 0x09c */ OPT_BMG_COLORS, - /* 0x09d */ OPT_NO_BMG_INLINE, - /* 0x09e */ OPT_NO_ECHO, - /* 0x09f */ OPT_UTF_8, - /* 0x0a0 */ OPT_NO_UTF_8, - /* 0x0a1 */ OPT_FORCE, - /* 0x0a2 */ OPT_REPAIR_MAGICS, - /* 0x0a3 */ OPT_CREATE_DISTRIB, - /* 0x0a4 */ OPT_OLD, - /* 0x0a5 */ OPT_STD, - /* 0x0a6 */ OPT_NEW, - /* 0x0a7 */ OPT_EXTRACT, - /* 0x0a8 */ OPT_LIST, - /* 0x0a9 */ OPT_REF, - /* 0x0aa */ OPT_FULL, - /* 0x0ab */ OPT_HEX, - /* 0x0ac */ OPT_CT_DIR, - /* 0x0ad */ OPT_CT_LOG, - /* 0x0ae */ OPT_ALLOW_SLOTS, - /* 0x0af */ OPT_IMAGES, - /* 0x0b0 */ OPT_LOAD_BMG, - /* 0x0b1 */ OPT_PATCH_BMG, - /* 0x0b2 */ OPT_MACRO_BMG, - /* 0x0b3 */ OPT_FILTER_BMG, - /* 0x0b4 */ OPT_PATCH_NAMES, - /* 0x0b5 */ OPT_ORDER_BY, - /* 0x0b6 */ OPT_ORDER_ALL, - /* 0x0b7 */ OPT_DYNAMIC, - /* 0x0b8 */ OPT_WRITE_TRACKS, - /* 0x0b9 */ OPT_NUMBER, - /* 0x0ba */ OPT_SECTIONS, - /* 0x0bb */ 0,0,0,0, 0, + /* 0x091 */ OPT_NO_WILDCARDS, + /* 0x092 */ OPT_IN_ORDER, + /* 0x093 */ OPT_RAW, + /* 0x094 */ OPT_BMG_ENDIAN, + /* 0x095 */ OPT_BMG_ENCODING, + /* 0x096 */ OPT_BMG_INF_SIZE, + /* 0x097 */ OPT_BMG_MID, + /* 0x098 */ OPT_FORCE_ATTRIB, + /* 0x099 */ OPT_DEF_ATTRIB, + /* 0x09a */ OPT_NO_ATTRIB, + /* 0x09b */ OPT_X_ESCAPES, + /* 0x09c */ OPT_OLD_ESCAPES, + /* 0x09d */ OPT_NO_BMG_COLORS, + /* 0x09e */ OPT_BMG_COLORS, + /* 0x09f */ OPT_NO_BMG_INLINE, + /* 0x0a0 */ OPT_NO_ECHO, + /* 0x0a1 */ OPT_UTF_8, + /* 0x0a2 */ OPT_NO_UTF_8, + /* 0x0a3 */ OPT_FORCE, + /* 0x0a4 */ OPT_REPAIR_MAGICS, + /* 0x0a5 */ OPT_CREATE_DISTRIB, + /* 0x0a6 */ OPT_OLD, + /* 0x0a7 */ OPT_STD, + /* 0x0a8 */ OPT_NEW, + /* 0x0a9 */ OPT_EXTRACT, + /* 0x0aa */ OPT_LIST, + /* 0x0ab */ OPT_REF, + /* 0x0ac */ OPT_FULL, + /* 0x0ad */ OPT_HEX, + /* 0x0ae */ OPT_CT_DIR, + /* 0x0af */ OPT_CT_LOG, + /* 0x0b0 */ OPT_ALLOW_SLOTS, + /* 0x0b1 */ OPT_IMAGES, + /* 0x0b2 */ OPT_LOAD_BMG, + /* 0x0b3 */ OPT_PATCH_BMG, + /* 0x0b4 */ OPT_MACRO_BMG, + /* 0x0b5 */ OPT_FILTER_BMG, + /* 0x0b6 */ OPT_PATCH_NAMES, + /* 0x0b7 */ OPT_ORDER_BY, + /* 0x0b8 */ OPT_ORDER_ALL, + /* 0x0b9 */ OPT_DYNAMIC, + /* 0x0ba */ OPT_WRITE_TRACKS, + /* 0x0bb */ OPT_NUMBER, + /* 0x0bc */ OPT_SECTIONS, + /* 0x0bd */ 0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1161,142 +1178,142 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[47] = // cmd #1 +static u8 option_allowed_cmd_VERSION[49] = // cmd #1 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_HELP[47] = // cmd #2 +static u8 option_allowed_cmd_HELP[49] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[47] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[49] = // cmd #3 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[47] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[49] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[47] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[49] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_TEST[47] = // cmd #6 +static u8 option_allowed_cmd_TEST[49] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[47] = // cmd #7 +static u8 option_allowed_cmd_COLORS[49] = // cmd #7 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[47] = // cmd #8 +static u8 option_allowed_cmd_ERROR[49] = // cmd #8 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[47] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[49] = // cmd #9 { - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0 + 0,0,1,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[47] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[49] = // cmd #10 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[49] = // cmd #11 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[47] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[49] = // cmd #12 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[47] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[49] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[47] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[49] = // cmd #14 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[47] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[49] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_RAWDUMP[47] = // cmd #16 +static u8 option_allowed_cmd_RAWDUMP[49] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DUMP[47] = // cmd #17 +static u8 option_allowed_cmd_DUMP[49] = // cmd #17 { - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,1,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_CAT[47] = // cmd #18 +static u8 option_allowed_cmd_CAT[49] = // cmd #18 { - 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1, - 1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0 + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, 1,1,1,1,0, + 1,1,1,1,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_BMG[47] = // cmd #19 +static u8 option_allowed_cmd_BMG[49] = // cmd #19 { - 0,0,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,1,1, 1,1,0,1,1, - 1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0 + 0,0,1,1,1, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,1,1, 1,1,1,1,0, + 1,1,1,1,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_TRACKS[47] = // cmd #20 +static u8 option_allowed_cmd_TRACKS[49] = // cmd #20 { - 0,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1, - 1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0 + 0,0,1,1,1, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, 1,1,1,1,0, + 1,1,1,1,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DECODE[47] = // cmd #21 +static u8 option_allowed_cmd_DECODE[49] = // cmd #21 { - 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1, - 1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, 1,1,1,1,0, + 1,1,1,1,1, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_CREATE[47] = // cmd #22 +static u8 option_allowed_cmd_CREATE[49] = // cmd #22 { - 0,0,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0 + 0,0,1,1,1, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,1,1, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_PATCH[47] = // cmd #23 +static u8 option_allowed_cmd_PATCH[49] = // cmd #23 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 1,1,1,1,1, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,0 }; @@ -1415,8 +1432,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1474,6 +1493,12 @@ static const InfoOption_t * option_tab_cmd_RAWDUMP[] = static const InfoOption_t * option_tab_cmd_DUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_DUMP_LONG, OptionInfo + OPT_LOAD_BMG, OptionInfo + OPT_PATCH_BMG, @@ -1488,7 +1513,12 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LIST, OptionInfo + OPT_REF, OptionInfo + OPT_FULL, @@ -1579,6 +1609,12 @@ static const InfoOption_t * option_tab_cmd_TRACKS[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_WRITE_TRACKS, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, @@ -1591,7 +1627,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_LIST, OptionInfo + OPT_REF, OptionInfo + OPT_FULL, @@ -1614,6 +1649,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_CREATE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_WRITE_TRACKS, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, @@ -1626,7 +1667,6 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_HEX, &option_grp_TEXTOPT_NO_HEADER, OptionInfo + OPT_BRIEF, @@ -1664,6 +1704,12 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = static const InfoOption_t * option_tab_cmd_PATCH[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_WRITE_TRACKS, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, @@ -1676,7 +1722,6 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NO_CHECK, OptionInfo + OPT_LOAD_BMG, OptionInfo + OPT_PATCH_BMG, @@ -1790,10 +1835,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1855,9 +1897,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wctct FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -1986,9 +2030,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DUMP", "wctct DUMP [source]...", "Print an information dump for the CT-CODE of each source file. BRRES," - " TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.", + " TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 8, + 11, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -2001,11 +2047,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wctct CAT [source]...", "Read the source files and print the CT-CODE part them as decoded text" - " files to standard output. The output of all source files is" - " concatenated. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted" - " as input.", + " files to standard output. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details. The output of" + " all source files is concatenated. BRRES, TEX0, CT-CODE, CT-TEXT and" + " LE-BIN are accepted as input.", 0, - 18, + 20, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -2048,11 +2095,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DECODE", "DEC", "wctct DECODE [source]...", - "Read the source files and decode them to CT-TEXT files. The default" - " destination is '%P/%N.txt'. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN" - " are accepted as input.", + "Read the source files and decode them to CT-TEXT files. Wildcards and" + " pipe characters are parsed, see https://szs.wiimm.de/doc/wildcards" + " for details. The default destination is '%P/%N.txt'. BRRES, TEX0," + " CT-CODE, CT-TEXT and LE-BIN are accepted as input.", 0, - 26, + 28, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -2065,15 +2113,17 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "C", "wctct CREATE keyword [source]...", "Read the source files, scan the CT-CODE part and create an output" - " file controlled by the keyword. BRRES, TEX0, CT-CODE, CT-TEXT and" - " LE-BIN files are accepted as input. Possible keywords are: CUP1," - " CRS1, r-MOD1, r-MOD2, r-OVR1, r-BAD1CODE, r-BAD1DATA (=r-CODE)," - " r-TEX0, r-BRRES, r-SZS, BMG, TRACKS, LIST, REF and FULL. 'r' defines" - " the region and is one of EU, RMCP, US, RMCE, JP, RMCJ, KO or RMCK.\n" + " file controlled by the keyword. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details. BRRES," + " TEX0, CT-CODE, CT-TEXT and LE-BIN files are accepted as input." + " Possible keywords are: CUP1, CRS1, r-MOD1, r-MOD2, r-OVR1," + " r-BAD1CODE, r-BAD1DATA (=r-CODE), r-TEX0, r-BRRES, r-SZS, BMG," + " TRACKS, LIST, REF and FULL. 'r' defines the region and is one of EU," + " RMCP, US, RMCE, JP, RMCJ, KO or RMCK.\n" " The Korean support needs external CT-CODE files. Use option" " --ct-dir to define at least one search path.", 0, - 41, + 43, option_tab_cmd_CREATE, option_allowed_cmd_CREATE }, @@ -2086,9 +2136,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "P", "wctct PATCH [source]...", "Read each source file, find and scan the CT-CODE part and patch it." - " BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.", + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. BRRES, TEX0," + " CT-CODE, CT-TEXT and LE-BIN are accepted as input.", 0, - 18, + 20, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, diff --git a/project/src/ui/ui-wctct.h b/project/src/ui/ui-wctct.h index d9f8028..5325cd9 100644 --- a/project/src/ui/ui-wctct.h +++ b/project/src/ui/ui-wctct.h @@ -60,6 +60,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_RAW, OPT_BMG_ENDIAN, OPT_BMG_ENCODING, @@ -103,7 +105,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 47 + OPT__N_SPECIFIC, // == 49 //----- global options ----- @@ -148,7 +150,7 @@ typedef enum enumOptions OPT_CT_LOG, OPT_ALLOW_SLOTS, - OPT__N_TOTAL // == 87 + OPT__N_TOTAL // == 89 } enumOptions; @@ -167,6 +169,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_RAW = 1llu << OPT_RAW, // OB_BMG_ENDIAN = 1llu << OPT_BMG_ENDIAN, // OB_BMG_ENCODING = 1llu << OPT_BMG_ENCODING, @@ -264,8 +268,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -284,7 +290,10 @@ typedef enum enumOptions // OB_CMD_RAWDUMP = OB_DEST // | OB_DEST2, // -// OB_CMD_DUMP = OB_LONG +// OB_CMD_DUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG // | OB_GRP_PATCH, // // OB_CMD_BMG = OB_BRIEF @@ -320,22 +329,28 @@ typedef enum enumOptions // | OB_IGNORE // | OB_GRP_PATCH, // -// OB_CMD_CAT = OB_GRP_TEXTOUT +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_WRITE_TRACKS // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_PATCH, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_PATCH, // -// OB_CMD_CREATE = OB_GRP_DEST +// OB_CMD_CREATE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TEXTOPT // | OB_BMG_ENDIAN // | OB_BMG_ENCODING @@ -359,8 +374,10 @@ typedef enum enumOptions // | OB_GRP_PATCH // | OB_DYNAMIC, // -// OB_CMD_PATCH = OB_GRP_DEST +// OB_CMD_PATCH = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST // | OB_NO_CHECK // | OB_IGNORE // | OB_GRP_PATCH, @@ -462,6 +479,8 @@ typedef enum enumGetOpt GO_CRS1, GO_CHDIR, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_RAW, GO_BMG_ENDIAN, GO_BMG_ENCODING, diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c index 2893524..f3e681b 100644 --- a/project/src/ui/ui-wimgt.c +++ b/project/src/ui/ui-wimgt.c @@ -69,6 +69,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Create smaller output." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_DEST, false, false, false, false, true, 'd', "dest", "path", "Define a destination path (directory/file). The destination - means:" @@ -259,7 +270,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 26 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 28 //----- global options ----- @@ -513,7 +524,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 60 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 62 }; @@ -671,6 +682,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "max-file-size", 1, 0, 'M' }, { "maxfilesize", 1, 0, 'M' }, { "tracks", 1, 0, 'T' }, @@ -804,26 +819,28 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08b */ OPT_CT_CODE, /* 0x08c */ OPT_LE_CODE, /* 0x08d */ OPT_CHDIR, - /* 0x08e */ OPT_UTF_8, - /* 0x08f */ OPT_NO_UTF_8, - /* 0x090 */ OPT_FORCE, - /* 0x091 */ OPT_REPAIR_MAGICS, - /* 0x092 */ OPT_OLD, - /* 0x093 */ OPT_STD, - /* 0x094 */ OPT_NEW, - /* 0x095 */ OPT_EXTRACT, - /* 0x096 */ OPT_NUMBER, - /* 0x097 */ OPT_MIPMAPS, - /* 0x098 */ OPT_NO_MIPMAPS, - /* 0x099 */ OPT_N_MIPMAPS, - /* 0x09a */ OPT_MAX_MIPMAPS, - /* 0x09b */ OPT_MIPMAP_SIZE, - /* 0x09c */ OPT_FAST_MIPMAPS, - /* 0x09d */ OPT_CMPR_DEFAULT, - /* 0x09e */ OPT_PRE_CONVERT, - /* 0x09f */ OPT_STRIP, - /* 0x0a0 */ OPT_SECTIONS, - /* 0x0a1 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0, + /* 0x08e */ OPT_NO_WILDCARDS, + /* 0x08f */ OPT_IN_ORDER, + /* 0x090 */ OPT_UTF_8, + /* 0x091 */ OPT_NO_UTF_8, + /* 0x092 */ OPT_FORCE, + /* 0x093 */ OPT_REPAIR_MAGICS, + /* 0x094 */ OPT_OLD, + /* 0x095 */ OPT_STD, + /* 0x096 */ OPT_NEW, + /* 0x097 */ OPT_EXTRACT, + /* 0x098 */ OPT_NUMBER, + /* 0x099 */ OPT_MIPMAPS, + /* 0x09a */ OPT_NO_MIPMAPS, + /* 0x09b */ OPT_N_MIPMAPS, + /* 0x09c */ OPT_MAX_MIPMAPS, + /* 0x09d */ OPT_MIPMAP_SIZE, + /* 0x09e */ OPT_FAST_MIPMAPS, + /* 0x09f */ OPT_CMPR_DEFAULT, + /* 0x0a0 */ OPT_PRE_CONVERT, + /* 0x0a1 */ OPT_STRIP, + /* 0x0a2 */ OPT_SECTIONS, + /* 0x0a3 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, /* 0x0b0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -840,89 +857,89 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[26] = // cmd #1 +static u8 option_allowed_cmd_VERSION[28] = // cmd #1 { - 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 + 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_HELP[26] = // cmd #2 +static u8 option_allowed_cmd_HELP[28] = // cmd #2 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_CONFIG[26] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[28] = // cmd #3 { - 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[26] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[28] = // cmd #4 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_EXPAND[26] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[28] = // cmd #5 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_TEST[26] = // cmd #6 +static u8 option_allowed_cmd_TEST[28] = // cmd #6 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_COLORS[26] = // cmd #7 +static u8 option_allowed_cmd_COLORS[28] = // cmd #7 { - 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ERROR[26] = // cmd #8 +static u8 option_allowed_cmd_ERROR[28] = // cmd #8 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 + 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[26] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[28] = // cmd #9 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,0,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[26] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[28] = // cmd #10 { - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_LIST[26] = // cmd #11 +static u8 option_allowed_cmd_LIST[28] = // cmd #11 { - 0,1,1,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,1,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_LIST_L[26] = // cmd #12 +static u8 option_allowed_cmd_LIST_L[28] = // cmd #12 { - 0,1,1,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,1,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_LIST_LL[26] = // cmd #13 +static u8 option_allowed_cmd_LIST_LL[28] = // cmd #13 { - 0,1,1,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 + 0,1,1,0,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_DECODE[26] = // cmd #14 +static u8 option_allowed_cmd_DECODE[28] = // cmd #14 { - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 0 + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_ENCODE[26] = // cmd #15 +static u8 option_allowed_cmd_ENCODE[28] = // cmd #15 { - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0 + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_CONVERT[26] = // cmd #16 +static u8 option_allowed_cmd_CONVERT[28] = // cmd #16 { - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0 + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_COPY[26] = // cmd #17 +static u8 option_allowed_cmd_COPY[28] = // cmd #17 { - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0 + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0 }; @@ -1032,8 +1049,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1047,33 +1066,54 @@ static const InfoOption_t * option_tab_cmd_FILEATTRIB[] = static const InfoOption_t * option_tab_cmd_LIST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_LIST_LONG, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_LIST_L[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_LIST_LONG, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_LIST_LL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_LIST_LONG, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1085,7 +1125,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_N_MIPMAPS, OptionInfo + OPT_MAX_MIPMAPS, OptionInfo + OPT_MIPMAP_SIZE, @@ -1109,6 +1148,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1120,7 +1165,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_cmd_ENCODE_ALL, OptionInfo + OPT_N_MIPMAPS, OptionInfo + OPT_MAX_MIPMAPS, @@ -1145,6 +1189,12 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = static const InfoOption_t * option_tab_cmd_CONVERT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1156,7 +1206,6 @@ static const InfoOption_t * option_tab_cmd_CONVERT[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_cmd_ENCODE_ALL, OptionInfo + OPT_N_MIPMAPS, OptionInfo + OPT_MAX_MIPMAPS, @@ -1181,6 +1230,12 @@ static const InfoOption_t * option_tab_cmd_CONVERT[] = static const InfoOption_t * option_tab_cmd_COPY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1192,7 +1247,6 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_cmd_ENCODE_ALL, OptionInfo + OPT_N_MIPMAPS, OptionInfo + OPT_MAX_MIPMAPS, @@ -1316,10 +1370,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1381,9 +1432,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wimgt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -1413,9 +1466,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LIST", "LS", "wimgt LIST [source]...", - "List images files and print file and image type.", + "List images files and print file and image type. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 3, + 5, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -1428,9 +1483,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LL", "wit LIST-L [source]...", "List images files and print file and image type and geometry data." - " 'LIST-L' is a short cut for 'LIST --long'.", + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. 'LIST-L' is a short" + " cut for 'LIST --long'.", 0, - 3, + 5, option_tab_cmd_LIST_L, option_allowed_cmd_LIST_L }, @@ -1443,9 +1500,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LLL", "wit LIST-LL [source]...", "List images files and print file and image type and advanced geometry" - " data. 'LIST-LL' is a short cut for 'LIST --long --long'.", + " data. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. 'LIST-LL' is a short" + " cut for 'LIST --long --long'.", 0, - 3, + 5, option_tab_cmd_LIST_LL, option_allowed_cmd_LIST_LL }, @@ -1457,12 +1516,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DECODE", "DEC", "wimgt DECODE [source]...", - "Decode (export) the entered image files into PNG files. The default" - " destination is '%P/%F.png'. If SOURCE starts with colon (:), then it" - " may be a generic image instead of a real file. See" - " https://szs.wiimm.de/doc/genericimg for details.", + "Decode (export) the entered image files into PNG files. Wildcards and" + " pipe characters are parsed, see https://szs.wiimm.de/doc/wildcards" + " for details. The default destination is '%P/%F.png'. If SOURCE" + " starts with colon (:), then it may be a generic image instead of a" + " real file. See https://szs.wiimm.de/doc/genericimg for details.", 0, - 20, + 22, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -1475,12 +1535,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wimgt ENCODE [source]...", "Encode (import) the entered PNG files and convert them to to an" - " internal image format (TPL, TEX, BREFT). The default destination is" - " '%P/%N' (removed extension). If SOURCE starts with colon (:), then" - " it may be a generic image instead of a real file. See" - " https://szs.wiimm.de/doc/genericimg for details.", + " internal image format (TPL, TEX, BREFT, ...). Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The default destination is '%P/%N' (removed extension). If" + " SOURCE starts with colon (:), then it may be a generic image instead" + " of a real file. See https://szs.wiimm.de/doc/genericimg for details.", 0, - 21, + 23, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -1492,13 +1553,15 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CONVERT", "CV", "wimgt CONVERT [source]...", - "Convert the entered image files into new file and image formats. The" - " old file is replaced by the new one. The difference to ENCODE is" - " only the default file name handling. If SOURCE starts with colon" - " (:), then it may be a generic image instead of a real file. See" + "Convert the entered image files into new file and image formats." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The old file is" + " replaced by the new one. The difference to ENCODE is only the" + " default file name handling. If SOURCE starts with colon (:), then it" + " may be a generic image instead of a real file. See" " https://szs.wiimm.de/doc/genericimg for details.", 0, - 21, + 23, option_tab_cmd_CONVERT, option_allowed_cmd_CONVERT }, @@ -1513,7 +1576,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wimgt COPY source... [-d|-D] dest", "Copy and convert an image from 'source' to 'dest'. Multiple sources" " can be used, if 'dest' is a directory or contains at least one" - " %-pattern.\n" + " %-pattern. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.\n" " This is an alternative for the ENCODE and DECODE commands. The" " default destination file format is selected by scanning the file" " extension of the destination. Option --transform may override this." @@ -1522,7 +1586,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " instead of a real file. See https://szs.wiimm.de/doc/genericimg for" " details.", 0, - 21, + 23, option_tab_cmd_COPY, option_allowed_cmd_COPY }, diff --git a/project/src/ui/ui-wimgt.h b/project/src/ui/ui-wimgt.h index 352536c..8dbf2bb 100644 --- a/project/src/ui/ui-wimgt.h +++ b/project/src/ui/ui-wimgt.h @@ -59,6 +59,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_DEST, OPT_DEST2, OPT_ESC, @@ -82,7 +84,7 @@ typedef enum enumOptions OPT_STRIP, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 26 + OPT__N_SPECIFIC, // == 28 //----- global options ----- @@ -121,7 +123,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 60 + OPT__N_TOTAL // == 62 } enumOptions; @@ -139,6 +141,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_DEST = 1llu << OPT_DEST, // OB_DEST2 = 1llu << OPT_DEST2, // OB_ESC = 1llu << OPT_ESC, @@ -208,25 +212,33 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // -// OB_CMD_LIST = OB_LONG -// | OB_NO_HEADER -// | OB_IGNORE, +// OB_CMD_LIST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG +// | OB_NO_HEADER, // // OB_CMD_LIST_L = OB_CMD_LIST, // // OB_CMD_LIST_LL = OB_CMD_LIST_L, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TRANSFORM, // -// OB_CMD_ENCODE = OB_GRP_DEST +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST // | OB_ALL // | OB_GRP_TRANSFORM, // @@ -321,6 +333,8 @@ typedef enum enumGetOpt GO_CT_CODE, GO_LE_CODE, GO_CHDIR, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_UTF_8, GO_NO_UTF_8, GO_FORCE, diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c index 52faa2a..53e4a34 100644 --- a/project/src/ui/ui-wkclt.c +++ b/project/src/ui/ui-wkclt.c @@ -311,6 +311,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Create smaller output." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_NO_PARAM, false, false, false, false, false, 'P', "no-param", 0, "Disable parameter support in decoded KMP text files." @@ -393,7 +404,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 41 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 43 //----- global options ----- @@ -698,7 +709,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 80 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 82 }; @@ -1048,6 +1059,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "no-param", 0, 0, 'P' }, { "noparam", 0, 0, 'P' }, { "no-echo", 0, 0, GO_NO_ECHO }, @@ -1185,19 +1200,21 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x0a7 */ OPT_DB64, /* 0x0a8 */ OPT_CODING, /* 0x0a9 */ OPT_ROUND, - /* 0x0aa */ OPT_NO_ECHO, - /* 0x0ab */ OPT_UTF_8, - /* 0x0ac */ OPT_NO_UTF_8, - /* 0x0ad */ OPT_FORCE, - /* 0x0ae */ OPT_REPAIR_MAGICS, - /* 0x0af */ OPT_TINY, - /* 0x0b0 */ OPT_OLD, - /* 0x0b1 */ OPT_STD, - /* 0x0b2 */ OPT_NEW, - /* 0x0b3 */ OPT_EXTRACT, - /* 0x0b4 */ OPT_NUMBER, - /* 0x0b5 */ OPT_SECTIONS, - /* 0x0b6 */ 0,0,0,0, 0,0,0,0, 0,0, + /* 0x0aa */ OPT_NO_WILDCARDS, + /* 0x0ab */ OPT_IN_ORDER, + /* 0x0ac */ OPT_NO_ECHO, + /* 0x0ad */ OPT_UTF_8, + /* 0x0ae */ OPT_NO_UTF_8, + /* 0x0af */ OPT_FORCE, + /* 0x0b0 */ OPT_REPAIR_MAGICS, + /* 0x0b1 */ OPT_TINY, + /* 0x0b2 */ OPT_OLD, + /* 0x0b3 */ OPT_STD, + /* 0x0b4 */ OPT_NEW, + /* 0x0b5 */ OPT_EXTRACT, + /* 0x0b6 */ OPT_NUMBER, + /* 0x0b7 */ OPT_SECTIONS, + /* 0x0b8 */ 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1213,202 +1230,202 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[41] = // cmd #1 +static u8 option_allowed_cmd_VERSION[43] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_HELP[41] = // cmd #2 +static u8 option_allowed_cmd_HELP[43] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_CONFIG[41] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[43] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[41] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[43] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_EXPAND[41] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[43] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_TEST[41] = // cmd #6 +static u8 option_allowed_cmd_TEST[43] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_COLORS[41] = // cmd #7 +static u8 option_allowed_cmd_COLORS[43] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ERROR[41] = // cmd #8 +static u8 option_allowed_cmd_ERROR[43] = // cmd #8 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[41] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[43] = // cmd #9 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[41] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[43] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[41] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[43] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[41] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[43] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[41] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[43] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_MATRIX[41] = // cmd #14 +static u8 option_allowed_cmd_MATRIX[43] = // cmd #14 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FLOAT[41] = // cmd #15 +static u8 option_allowed_cmd_FLOAT[43] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_EXPORT[41] = // cmd #16 +static u8 option_allowed_cmd_EXPORT[43] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_CAT[41] = // cmd #17 +static u8 option_allowed_cmd_CAT[43] = // cmd #17 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_DECODE[41] = // cmd #18 +static u8 option_allowed_cmd_DECODE[43] = // cmd #18 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, - 1,1,1,1,1, 1,1,1,1,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_ENCODE[41] = // cmd #19 +static u8 option_allowed_cmd_ENCODE[43] = // cmd #19 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, - 1,1,1,1,1, 1,1,1,1,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_COPY[41] = // cmd #20 +static u8 option_allowed_cmd_COPY[43] = // cmd #20 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, - 1,1,1,1,1, 1,1,1,1,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_CFF[41] = // cmd #21 +static u8 option_allowed_cmd_CFF[43] = // cmd #21 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 1,0,1,0,1, - 1,1,1,1,1, 1,1,1,1,1, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 1,0,1,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_TYPES[41] = // cmd #22 +static u8 option_allowed_cmd_TYPES[43] = // cmd #22 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FLAGS[41] = // cmd #23 +static u8 option_allowed_cmd_FLAGS[43] = // cmd #23 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,1,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,1,1,1,1, + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_DUMP[41] = // cmd #24 +static u8 option_allowed_cmd_DUMP[43] = // cmd #24 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,1,1, + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_DBRIEF[41] = // cmd #25 +static u8 option_allowed_cmd_DBRIEF[43] = // cmd #25 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,1,1, + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_LIST[41] = // cmd #26 +static u8 option_allowed_cmd_LIST[43] = // cmd #26 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_TRIANGLES[41] = // cmd #27 +static u8 option_allowed_cmd_TRIANGLES[43] = // cmd #27 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,1,1, + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_TRAVERSE[41] = // cmd #28 +static u8 option_allowed_cmd_TRAVERSE[43] = // cmd #28 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_FALL[41] = // cmd #29 +static u8 option_allowed_cmd_FALL[43] = // cmd #29 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,0,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_CHECK[41] = // cmd #30 +static u8 option_allowed_cmd_CHECK[43] = // cmd #30 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,1, - 1,0,0,0,0, 0,0,0,0,1, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_SHA1[41] = // cmd #31 +static u8 option_allowed_cmd_SHA1[43] = // cmd #31 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_ANALYZE[41] = // cmd #32 +static u8 option_allowed_cmd_ANALYZE[43] = // cmd #32 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_BLOW[41] = // cmd #33 +static u8 option_allowed_cmd_BLOW[43] = // cmd #33 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,1,0 }; @@ -1523,8 +1540,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1609,9 +1628,14 @@ static const InfoOption_t * option_tab_cmd_EXPORT[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1644,6 +1668,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1657,7 +1687,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1690,6 +1719,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1703,7 +1738,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1736,6 +1770,12 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = static const InfoOption_t * option_tab_cmd_COPY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1749,7 +1789,6 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1782,6 +1821,12 @@ static const InfoOption_t * option_tab_cmd_COPY[] = static const InfoOption_t * option_tab_cmd_CFF[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_CFF_LONG, &option_cmd_CFF_BRIEF, OptionInfo + OPT_DEST, @@ -1797,7 +1842,6 @@ static const InfoOption_t * option_tab_cmd_CFF[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1817,9 +1861,14 @@ static const InfoOption_t * option_tab_cmd_TYPES[] = static const InfoOption_t * option_tab_cmd_FLAGS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_HEADER, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, &option_cmd_FLAGS_BRIEF, OptionInfo + OPT_NONE, // separator @@ -1853,7 +1902,12 @@ static const InfoOption_t * option_tab_cmd_FLAGS[] = static const InfoOption_t * option_tab_cmd_DUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_CHECK, &option_cmd_DUMP_BRIEF, &option_cmd_DUMP_LONG, @@ -1889,7 +1943,12 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = static const InfoOption_t * option_tab_cmd_DBRIEF[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_CHECK, &option_cmd_DUMP_BRIEF, &option_cmd_DUMP_LONG, @@ -1925,7 +1984,12 @@ static const InfoOption_t * option_tab_cmd_DBRIEF[] = static const InfoOption_t * option_tab_cmd_LIST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_CHECK, OptionInfo + OPT_NONE, // separator @@ -1959,7 +2023,12 @@ static const InfoOption_t * option_tab_cmd_LIST[] = static const InfoOption_t * option_tab_cmd_TRIANGLES[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NO_CHECK, &option_cmd_TRIANGLES_BRIEF, &option_cmd_TRIANGLES_LONG, @@ -2067,6 +2136,12 @@ static const InfoOption_t * option_tab_cmd_FALL[] = static const InfoOption_t * option_tab_cmd_CHECK[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, &option_cmd_CHECK_BRIEF, @@ -2074,14 +2149,18 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = &option_cmd_CHECK_QUIET, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_SHA1[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ID, OptionInfo + OPT_BASE64, OptionInfo + OPT_DB64, @@ -2119,6 +2198,8 @@ static const InfoOption_t * option_tab_cmd_SHA1[] = static const InfoOption_t * option_tab_cmd_ANALYZE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -2152,6 +2233,8 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = static const InfoOption_t * option_tab_cmd_BLOW[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, 0 @@ -2258,10 +2341,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -2323,9 +2403,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wkclt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -2464,11 +2546,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkclt CAT source...", "Read the entered KCL and OBJ files and print them as OBJ files to" - " standard output. The output of all source files is concatenated.\n" + " standard output. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The output of all" + " source files is concatenated.\n" " Automated dropping of bad KCL triangles is enabled if no other drop" " option is specified by option --kcl.", 0, - 26, + 28, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -2480,12 +2564,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DECODE", "DEC", "wkclt DECODE source...", - "Read the entered KCL and OBJ files and export them to OBJ files. The" - " default destination is '%P/%N.txt'.\n" + "Read the entered KCL and OBJ files and export them to OBJ files." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.txt'.\n" " Automated dropping of bad KCL triangles is enabled if no other drop" " option is specified by option --kcl.", 0, - 34, + 36, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -2498,10 +2584,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wkclt ENCODE source...", "Read the entered KCL and OBJ files and encode (compile) them to" - " binary KCL files. The default destination is '%P/%N.kcl'.\n" + " binary KCL files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.kcl'.\n" " See https://szs.wiimm.de/doc/kcl for encoding details.", 0, - 34, + 36, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -2516,7 +2604,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wkclt COPY source... [-d|-D] dest", "Copy and convert a collision file from 'source' to 'dest'. Multiple" " KCL and OBJ sources can be used, if 'dest' is a directory or" - " contains at least one %-pattern.\n" + " contains at least one %-pattern. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.\n" " This is an alternative for the DECODE and ENCODE commands. The" " default destination file format is selected by scanning the file" " extension of the destination. Is it '.kcl', a binary KCL file is" @@ -2525,7 +2614,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Automated dropping of bad KCL triangles is enabled if no other drop" " option is specified and the destination is an OBJ file.", 0, - 34, + 36, option_tab_cmd_COPY, option_allowed_cmd_COPY }, @@ -2538,10 +2627,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkclt CFF source...", "CFF is an abbreviation of 'create flag file' and will create a flag" - " file template for each entered source file. If the flag file already" - " exists, only missing group names are added at the end of file.", + " file template for each entered source file. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. If the flag file already exists, only missing group names" + " are added at the end of file.", 0, - 15, + 17, option_tab_cmd_CFF, option_allowed_cmd_CFF }, @@ -2574,9 +2665,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "F", "wkclt FLAGS source...", "Print a KCL type and flag usage statistic for each source to standard" - " output.", + " output. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 27, + 29, option_tab_cmd_FLAGS, option_allowed_cmd_FLAGS }, @@ -2590,10 +2682,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wkclt DUMP source...", "This debugging command prints an information dump about the internal" " triangle data base and the octree in human and machine readable text" - " format. The output of all source files is concatenated and printed" - " to standard output.", + " format. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The output of all" + " source files is concatenated and printed to standard output.", 0, - 27, + 29, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -2609,7 +2702,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " triangle list is suppressed and only the header data and statistics" " are printed.", 0, - 27, + 29, option_tab_cmd_DBRIEF, option_allowed_cmd_DBRIEF }, @@ -2623,10 +2716,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wkclt LIST source...", "This debugging command prints a list of all triangles with metrics in" " human and machine readable text format. It is like DUMP, but reduced" - " to the list of triangles. The output of all source files is" - " concatenated and printed to standard output.", + " to the list of triangles. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details. The output of" + " all source files is concatenated and printed to standard output.", 0, - 25, + 27, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -2640,11 +2734,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wkclt TRIANGLES source...", "This debugging commands prints one data line for each triangle. The" " goal is to compare data. Therefor and to create smaller lines the" - " precision of the floating points numbers is reduced.\n" + " precision of the floating points numbers is reduced. Wildcards and" + " pipe characters are parsed, see https://szs.wiimm.de/doc/wildcards" + " for details.\n" " The print order is: flag used length | 3 points | 4 normals. For" " each point and normal 3 coordinates are printed.", 0, - 27, + 29, option_tab_cmd_TRIANGLES, option_allowed_cmd_TRIANGLES }, @@ -2690,11 +2786,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CHK", "wkclt CHECK source...", "Read the entered KCL files (text or binary) and and make a" - " plausibility check. Hints and warnings are written to standard" - " output. The exit status is 'DIFFER' if at least one KMP warning" - " found.", + " plausibility check. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. Hints and warnings" + " are written to standard output. The exit status is 'DIFFER' if at" + " least one KMP warning found.", 0, - 8, + 10, option_tab_cmd_CHECK, option_allowed_cmd_CHECK }, @@ -2706,10 +2803,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "SHA1", 0, "wszst SHA1 [source]...", - "Print a SHA1 checksum of the KCL for each source. The checksum is" - " calculated after patching.", + "Print a SHA1 checksum of the KCL for each source. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The checksum is calculated after patching.", 0, - 29, + 31, option_tab_cmd_SHA1, option_allowed_cmd_SHA1 }, @@ -2721,9 +2819,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ANALYZE", 0, "wkclt ANALYZE source...", - "Analyze some KCL data.", + "Analyze some KCL data. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 24, + 26, option_tab_cmd_ANALYZE, option_allowed_cmd_ANALYZE }, @@ -2735,10 +2834,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "BLOW", 0, "wkclt BLOW source...", - "Try to calculate the used blow size (KCL_BLOW) of a KCL. Print one" - " line for each source file.", + "Try to calculate the used blow size (KCL_BLOW) of a KCL. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. Print one line for" + " each source file.", 0, - 1, + 3, option_tab_cmd_BLOW, option_allowed_cmd_BLOW }, diff --git a/project/src/ui/ui-wkclt.h b/project/src/ui/ui-wkclt.h index 2efc4bc..5ca1b18 100644 --- a/project/src/ui/ui-wkclt.h +++ b/project/src/ui/ui-wkclt.h @@ -83,6 +83,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_NO_PARAM, OPT_NO_ECHO, OPT_NO_CHECK, @@ -97,7 +99,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 41 + OPT__N_SPECIFIC, // == 43 //----- global options ----- @@ -141,7 +143,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 80 + OPT__N_TOTAL // == 82 } enumOptions; @@ -183,6 +185,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_NO_PARAM = 1llu << OPT_NO_PARAM, // OB_NO_ECHO = 1llu << OPT_NO_ECHO, // OB_NO_CHECK = 1llu << OPT_NO_CHECK, @@ -255,8 +259,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -276,39 +282,49 @@ typedef enum enumOptions // // OB_CMD_EXPORT = 0, // -// OB_CMD_CAT = OB_NO_ECHO -// | OB_NO_CHECK +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_NO_ECHO +// | OB_NO_CHECK // | OB_GRP_TRANSFORM, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // // OB_CMD_ENCODE = OB_CMD_DECODE, // // OB_CMD_COPY = OB_CMD_ENCODE, // -// OB_CMD_CFF = OB_LONG +// OB_CMD_CFF = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG // | OB_BRIEF // | OB_GRP_DEST // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_FLAG_FILE, // // OB_CMD_TYPES = OB_NO_HEADER // | OB_BRIEF, // -// OB_CMD_FLAGS = OB_NO_HEADER -// | OB_NO_CHECK +// OB_CMD_FLAGS = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_NO_HEADER +// | OB_NO_CHECK // | OB_BRIEF // | OB_GRP_TRANSFORM, // -// OB_CMD_DUMP = OB_IGNORE +// OB_CMD_DUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_CHECK // | OB_BRIEF // | OB_LONG @@ -316,11 +332,15 @@ typedef enum enumOptions // // OB_CMD_DBRIEF = OB_CMD_DUMP, // -// OB_CMD_LIST = OB_IGNORE +// OB_CMD_LIST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_CHECK // | OB_GRP_TRANSFORM, // -// OB_CMD_TRIANGLES = OB_IGNORE +// OB_CMD_TRIANGLES = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_CHECK // | OB_BRIEF // | OB_LONG @@ -338,13 +358,17 @@ typedef enum enumOptions // | OB_LONG // | OB_GRP_TRANSFORM, // -// OB_CMD_CHECK = OB_BRIEF +// OB_CMD_CHECK = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_BRIEF // | OB_LONG // | OB_NO_ECHO -// | OB_NO_CHECK -// | OB_IGNORE, +// | OB_NO_CHECK, // -// OB_CMD_SHA1 = OB_IGNORE +// OB_CMD_SHA1 = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_ID // | OB_BASE64 // | OB_DB64 @@ -352,10 +376,14 @@ typedef enum enumOptions // | OB_BRIEF // | OB_GRP_TRANSFORM, // -// OB_CMD_ANALYZE = OB_IGNORE +// OB_CMD_ANALYZE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_BLOW = OB_IGNORE, +// OB_CMD_BLOW = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE, // //} enumOptionsBit; @@ -486,6 +514,8 @@ typedef enum enumGetOpt GO_DB64, GO_CODING, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_NO_ECHO, GO_UTF_8, GO_NO_UTF_8, diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c index 0e908e5..46a9657 100644 --- a/project/src/ui/ui-wkmpt.c +++ b/project/src/ui/ui-wkmpt.c @@ -375,6 +375,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " unneeded sections is also suppressed." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_EXPORT, false, false, false, false, false, 'X', "export", 0, "Enable the export mode and create small and machine readable text" @@ -485,7 +496,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 49 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 51 //----- global options ----- @@ -749,11 +760,18 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " The other allowed keywords are: FORCE, NEW, RM-SPCITEM, LEFT, RIGHT," " WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH, FIX-CKNEXT," " FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE, PURGE-GOBJ," - " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ... 9LAPS," - " MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT and LOG. See" + " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP .. 9LAPS," + " MAX-LAPS, RM-EMPTY, TINY-0 .. TINY-7, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kmp for details." }, + { OPT_N_LAPS, false, true, false, false, false, 0, "n-laps", + "laps", + "If LAPS is a number between 1 and 9, then ignore laps settings of" + " option --kmp (1LAP..9LAPS) and patch KMP:STGI to this number of" + " laps." + }, + { OPT_SPEED_MOD, false, false, false, false, false, 0, "speed-mod", "factor", "The speed modifier is a user extensions to change the basic speed of" @@ -895,7 +913,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 97 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 100 }; @@ -1269,6 +1287,8 @@ static const struct option OptionLong[] = { "xtridata", 2, 0, GO_XTRIDATA }, { "xtri", 2, 0, GO_XTRIDATA }, { "kmp", 1, 0, GO_KMP }, + { "n-laps", 1, 0, GO_N_LAPS }, + { "nlaps", 1, 0, GO_N_LAPS }, { "speed-mod", 1, 0, GO_SPEED_MOD }, { "speedmod", 1, 0, GO_SPEED_MOD }, { "ktpt2", 1, 0, GO_KTPT2 }, @@ -1285,6 +1305,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "export", 0, 0, 'X' }, { "no-param", 0, 0, 'P' }, { "noparam", 0, 0, 'P' }, @@ -1434,27 +1458,30 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x0ad */ OPT_FLAG_FILE, /* 0x0ae */ OPT_XTRIDATA, /* 0x0af */ OPT_KMP, - /* 0x0b0 */ OPT_SPEED_MOD, - /* 0x0b1 */ OPT_KTPT2, - /* 0x0b2 */ OPT_TFORM_KMP, - /* 0x0b3 */ OPT_REPAIR_XPF, - /* 0x0b4 */ OPT_GAMEMODES, - /* 0x0b5 */ OPT_ROUND, - /* 0x0b6 */ OPT_EPSILON, - /* 0x0b7 */ OPT_DIFF, - /* 0x0b8 */ OPT_NO_ECHO, - /* 0x0b9 */ OPT_UTF_8, - /* 0x0ba */ OPT_NO_UTF_8, - /* 0x0bb */ OPT_FORCE, - /* 0x0bc */ OPT_REPAIR_MAGICS, - /* 0x0bd */ OPT_TINY, - /* 0x0be */ OPT_OLD, - /* 0x0bf */ OPT_STD, - /* 0x0c0 */ OPT_NEW, - /* 0x0c1 */ OPT_EXTRACT, - /* 0x0c2 */ OPT_NUMBER, - /* 0x0c3 */ OPT_SECTIONS, - /* 0x0c4 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x0b0 */ OPT_N_LAPS, + /* 0x0b1 */ OPT_SPEED_MOD, + /* 0x0b2 */ OPT_KTPT2, + /* 0x0b3 */ OPT_TFORM_KMP, + /* 0x0b4 */ OPT_REPAIR_XPF, + /* 0x0b5 */ OPT_GAMEMODES, + /* 0x0b6 */ OPT_ROUND, + /* 0x0b7 */ OPT_NO_WILDCARDS, + /* 0x0b8 */ OPT_IN_ORDER, + /* 0x0b9 */ OPT_EPSILON, + /* 0x0ba */ OPT_DIFF, + /* 0x0bb */ OPT_NO_ECHO, + /* 0x0bc */ OPT_UTF_8, + /* 0x0bd */ OPT_NO_UTF_8, + /* 0x0be */ OPT_FORCE, + /* 0x0bf */ OPT_REPAIR_MAGICS, + /* 0x0c0 */ OPT_TINY, + /* 0x0c1 */ OPT_OLD, + /* 0x0c2 */ OPT_STD, + /* 0x0c3 */ OPT_NEW, + /* 0x0c4 */ OPT_EXTRACT, + /* 0x0c5 */ OPT_NUMBER, + /* 0x0c6 */ OPT_SECTIONS, + /* 0x0c7 */ 0,0,0,0, 0,0,0,0, 0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0f0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1469,190 +1496,190 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[49] = // cmd #1 +static u8 option_allowed_cmd_VERSION[51] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_HELP[49] = // cmd #2 +static u8 option_allowed_cmd_HELP[51] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_CONFIG[49] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[51] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ARGTEST[49] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[51] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_EXPAND[49] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[51] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_TEST[49] = // cmd #6 +static u8 option_allowed_cmd_TEST[51] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_COLORS[49] = // cmd #7 +static u8 option_allowed_cmd_COLORS[51] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ERROR[49] = // cmd #8 +static u8 option_allowed_cmd_ERROR[51] = // cmd #8 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_FILETYPE[49] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[51] = // cmd #9 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_FILEATTRIB[49] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[51] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_SYMBOLS[49] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[51] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FUNCTIONS[49] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[51] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_CALCULATE[49] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[51] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_MATRIX[49] = // cmd #14 +static u8 option_allowed_cmd_MATRIX[51] = // cmd #14 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,1,0,0,1, - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FLOAT[49] = // cmd #15 +static u8 option_allowed_cmd_FLOAT[51] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_STARTPOS[49] = // cmd #16 +static u8 option_allowed_cmd_STARTPOS[51] = // cmd #16 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_OBJECTS[49] = // cmd #17 +static u8 option_allowed_cmd_OBJECTS[51] = // cmd #17 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_EXPORT[49] = // cmd #18 +static u8 option_allowed_cmd_EXPORT[51] = // cmd #18 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_XEXPORT[49] = // cmd #19 +static u8 option_allowed_cmd_XEXPORT[51] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_CAT[49] = // cmd #20 +static u8 option_allowed_cmd_CAT[51] = // cmd #20 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,1,0,0,0, - 1,1,1,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,1,0 + 1,1,1,1,1, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_DECODE[49] = // cmd #21 +static u8 option_allowed_cmd_DECODE[51] = // cmd #21 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,1,0,0,0, - 1,1,1,1,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,0 + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_ENCODE[49] = // cmd #22 +static u8 option_allowed_cmd_ENCODE[51] = // cmd #22 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,0 + 0,0,1,1,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_DIFF[49] = // cmd #23 +static u8 option_allowed_cmd_DIFF[51] = // cmd #23 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 1,0,0,0,1, 0,1,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,1,1,0,0, 0,1,0,1,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_DRAW[49] = // cmd #24 +static u8 option_allowed_cmd_DRAW[51] = // cmd #24 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,0,1, 0,1,0,0,0, - 1,1,1,1,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,0 + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_CHECK[49] = // cmd #25 +static u8 option_allowed_cmd_CHECK[51] = // cmd #25 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,1,0,0,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,1,0 + 0,1,1,1,0, 0,0,0,1,1, 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_STGI[49] = // cmd #26 +static u8 option_allowed_cmd_STGI[51] = // cmd #26 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 1,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_KTPT[49] = // cmd #27 +static u8 option_allowed_cmd_KTPT[51] = // cmd #27 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_ROUTES[49] = // cmd #28 +static u8 option_allowed_cmd_ROUTES[51] = // cmd #28 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 1,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_GOBJ[49] = // cmd #29 +static u8 option_allowed_cmd_GOBJ[51] = // cmd #29 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_GAMEMODES[49] = // cmd #30 +static u8 option_allowed_cmd_GAMEMODES[51] = // cmd #30 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_WIM0[49] = // cmd #31 +static u8 option_allowed_cmd_WIM0[51] = // cmd #31 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0 }; @@ -1776,8 +1803,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1920,6 +1949,12 @@ static const InfoOption_t * option_tab_cmd_XEXPORT[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -1931,7 +1966,6 @@ static const InfoOption_t * option_tab_cmd_CAT[] = OptionInfo + OPT_WIM0, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1966,6 +2000,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1988,7 +2028,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_WIM0, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -2023,6 +2062,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -2036,7 +2081,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -2086,10 +2130,19 @@ static const InfoOption_t * option_tab_cmd_DIFF[] = static const InfoOption_t * option_tab_cmd_DRAW[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DRAW, OptionInfo + OPT_POS_MODE, OptionInfo + OPT_POS_FILE, OptionInfo + OPT_PNG, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -2112,7 +2165,6 @@ static const InfoOption_t * option_tab_cmd_DRAW[] = OptionInfo + OPT_WIM0, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -2148,6 +2200,12 @@ static const InfoOption_t * option_tab_cmd_DRAW[] = static const InfoOption_t * option_tab_cmd_CHECK[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, &option_cmd_CHECK_BRIEF, @@ -2156,27 +2214,36 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_GENERIC, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_STGI[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + &option_cmd_STGI_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_NO_HEADER, - &option_cmd_STGI_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_KTPT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + &option_cmd_KTPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_KTPT2, - &option_cmd_KTPT_IGNORE, &option_cmd_KTPT_LONG, 0 @@ -2184,17 +2251,27 @@ static const InfoOption_t * option_tab_cmd_KTPT[] = static const InfoOption_t * option_tab_cmd_ROUTES[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + &option_cmd_ROUTES_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_NO_HEADER, - &option_cmd_ROUTES_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_GOBJ[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_GOBJ_NO_HEADER, &option_cmd_GOBJ_BRIEF, &option_cmd_GOBJ_LONG, @@ -2204,7 +2281,12 @@ static const InfoOption_t * option_tab_cmd_GOBJ[] = static const InfoOption_t * option_tab_cmd_GAMEMODES[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_GAMEMODES, &option_cmd_GAMEMODES_NO_HEADER, &option_cmd_GAMEMODES_BRIEF, @@ -2322,10 +2404,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -2387,9 +2466,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wkmpt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -2585,10 +2666,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkmpt CAT [source]...", "Read the entered KMP files (text, binary or szs) and print them as" - " decoded text files to standard output. The output of all source" - " files is concatenated.", + " decoded text files to standard output. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details. The" + " output of all source files is concatenated.", 0, - 37, + 39, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -2601,9 +2683,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DEC", "wkmpt DECODE [source]...", "Read the entered KMP files (text or binary) and decode them to text" - " files. The default destination is '%P/%N.txt'.", + " files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.txt'.", 0, - 45, + 47, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -2616,9 +2700,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wkmpt ENCODE source...", "Read the entered KMP files (text or binary) and encode (compile) them" - " to binary files. The default destination is '%P/%N.kmp'.", + " to binary files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.kmp'.", 0, - 40, + 42, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -2654,12 +2740,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "D", "wkmpt DRAW source...", "Read the entered KMP files (text or binary), of needed load the" - " related KCL file, draw KMP objects and create an OBJ file. The" - " default destination is '%P/%N.kmp.obj'.\n" + " related KCL file, draw KMP objects and create an OBJ file. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.kmp.obj'.\n" " Automated dropping of bad KCL triangles is enabled if no drop" " option is specified by option --kcl.", 0, - 50, + 52, option_tab_cmd_DRAW, option_allowed_cmd_DRAW }, @@ -2672,11 +2760,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CHK", "wkmpt CHECK source...", "Read the entered KMP files (text or binary) and and make a" - " plausibility check. Hints and warnings are written to standard" - " output. The exit status is 'DIFFER' if at least one KMP warning" - " found.", + " plausibility check. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. Hints and warnings" + " are written to standard output. The exit status is 'DIFFER' if at" + " least one KMP warning found.", 0, - 9, + 11, option_tab_cmd_CHECK, option_allowed_cmd_CHECK }, @@ -2691,9 +2780,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Find the first KMP:STGI of each file and print an analysis of it as" " single line statistic. Additional the number of lap counter check" " points ('LC') is printed. Track and KMP (binary and text) files are" - " accepted as input.", + " accepted as input. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 4, + 6, option_tab_cmd_STGI, option_allowed_cmd_STGI }, @@ -2711,7 +2801,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " This command is dedicated to LE-CODE, which supports an alternative" " position for the finish line at the minimap.", 0, - 5, + 7, option_tab_cmd_KTPT, option_allowed_cmd_KTPT }, @@ -2724,9 +2814,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkmpt ROUTES file...", "Print the internal cross references for routes of KMP sections CKPH," - " CKPT, ENPH, ENPT, ITPH and ITPT.", + " CKPT, ENPH, ENPT, ITPH and ITPT. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 4, + 6, option_tab_cmd_ROUTES, option_allowed_cmd_ROUTES }, @@ -2739,9 +2830,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkmpt GOBJ [source]...", "Analyze the objects of KMP section GOBJ and print a status line for" - " each object. ...", + " each object. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 4, + 6, option_tab_cmd_GOBJ, option_allowed_cmd_GOBJ }, @@ -2757,9 +2849,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " support and print a list. The lists consists of index, scenario" " version and scenario name. Scenario versions are only equal, if the" " scenarios are duplicates. Duplicates happens only, if --gamemodes" - " option TT or FULL is set.", + " option TT or FULL is set. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.", 0, - 5, + 7, option_tab_cmd_GAMEMODES, option_allowed_cmd_GAMEMODES }, diff --git a/project/src/ui/ui-wkmpt.h b/project/src/ui/ui-wkmpt.h index 78795d9..d5b9d48 100644 --- a/project/src/ui/ui-wkmpt.h +++ b/project/src/ui/ui-wkmpt.h @@ -87,6 +87,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_EXPORT, OPT_NO_PARAM, OPT_EPSILON, @@ -105,7 +107,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 49 + OPT__N_SPECIFIC, // == 51 //----- global options ----- @@ -141,6 +143,7 @@ typedef enum enumOptions OPT_TRI_HEIGHT, OPT_XTRIDATA, OPT_KMP, + OPT_N_LAPS, OPT_SPEED_MOD, OPT_KTPT2, OPT_TFORM_KMP, @@ -158,7 +161,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 97 + OPT__N_TOTAL // == 100 } enumOptions; @@ -204,6 +207,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_EXPORT = 1llu << OPT_EXPORT, // OB_NO_PARAM = 1llu << OPT_NO_PARAM, // OB_EPSILON = 1llu << OPT_EPSILON, @@ -282,8 +287,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -311,23 +318,29 @@ typedef enum enumOptions // // OB_CMD_XEXPORT = 0, // -// OB_CMD_CAT = OB_GRP_TEXTOUT +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_ENCODE = OB_GRP_DEST +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // // OB_CMD_DIFF = OB_EPSILON @@ -335,35 +348,52 @@ typedef enum enumOptions // | OB_DEST // | OB_ESC, // -// OB_CMD_DRAW = OB_DRAW +// OB_CMD_DRAW = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_DRAW // | OB_POS_MODE // | OB_POS_FILE // | OB_PNG // | OB_CMD_DECODE // | OB_KCL_SCRIPT, // -// OB_CMD_CHECK = OB_BRIEF +// OB_CMD_CHECK = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_BRIEF // | OB_LONG // | OB_NO_ECHO // | OB_GENERIC -// | OB_NO_CHECK -// | OB_IGNORE, +// | OB_NO_CHECK, // -// OB_CMD_STGI = OB_NO_HEADER -// | OB_IGNORE, +// OB_CMD_STGI = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_NO_HEADER, // -// OB_CMD_KTPT = OB_IGNORE +// OB_CMD_KTPT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_LONG, // -// OB_CMD_ROUTES = OB_NO_HEADER -// | OB_IGNORE, +// OB_CMD_ROUTES = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_NO_HEADER, // -// OB_CMD_GOBJ = OB_IGNORE +// OB_CMD_GOBJ = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_BRIEF // | OB_LONG, // -// OB_CMD_GAMEMODES = OB_IGNORE +// OB_CMD_GAMEMODES = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_GAMEMODES // | OB_NO_HEADER // | OB_BRIEF @@ -508,12 +538,15 @@ typedef enum enumGetOpt GO_FLAG_FILE, GO_XTRIDATA, GO_KMP, + GO_N_LAPS, GO_SPEED_MOD, GO_KTPT2, GO_TFORM_KMP, GO_REPAIR_XPF, GO_GAMEMODES, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_EPSILON, GO_DIFF, GO_NO_ECHO, diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c index 551d201..b6fe0ba 100644 --- a/project/src/ui/ui-wlect.c +++ b/project/src/ui/ui-wlect.c @@ -89,6 +89,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Suppress cross reference comments." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_EXPORT, false, false, false, false, false, 'X', "export", 0, "Enable the export mode and create small and machine readable text" @@ -387,7 +398,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 47 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 49 //----- global options ----- @@ -673,7 +684,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 87 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 89 }; @@ -891,6 +902,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "export", 0, 0, 'X' }, { "no-param", 0, 0, 'P' }, { "noparam", 0, 0, 'P' }, @@ -1064,51 +1079,52 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08f */ OPT_PLUS, /* 0x090 */ OPT_CHDIR, /* 0x091 */ OPT_ROUND, - /* 0x092 */ OPT_NO_ECHO, - /* 0x093 */ OPT_UTF_8, - /* 0x094 */ OPT_NO_UTF_8, - /* 0x095 */ OPT_LT_CLEAR, - /* 0x096 */ OPT_LT_ONLINE, - /* 0x097 */ OPT_LT_N_PLAYERS, - /* 0x098 */ OPT_LT_COND_BIT, - /* 0x099 */ OPT_LT_GAME_MODE, - /* 0x09a */ OPT_LT_ENGINE, - /* 0x09b */ OPT_LT_RANDOM, - /* 0x09c */ OPT_LEX_PURGE, - /* 0x09d */ OPT_LEX_RM_FEAT, - /* 0x09e */ OPT_FORCE, - /* 0x09f */ OPT_REPAIR_MAGICS, - /* 0x0a0 */ OPT_CREATE_DISTRIB, - /* 0x0a1 */ OPT_OLD, - /* 0x0a2 */ OPT_STD, - /* 0x0a3 */ OPT_NEW, - /* 0x0a4 */ OPT_EXTRACT, - /* 0x0a5 */ OPT_LE_DEFINE, - /* 0x0a6 */ OPT_LE_ARENA, - /* 0x0a7 */ OPT_LPAR, - /* 0x0a8 */ OPT_ALIAS, - /* 0x0a9 */ OPT_ENGINE, - /* 0x0aa */ OPT_200CC, - /* 0x0ab */ OPT_PERFMON, - /* 0x0ac */ OPT_CUSTOM_TT, - /* 0x0ad */ OPT_XPFLAGS, - /* 0x0ae */ OPT_SPEEDOMETER, - /* 0x0af */ OPT_DEBUG, - /* 0x0b0 */ OPT_TRACK_DIR, - /* 0x0b1 */ OPT_COPY_TRACKS, - /* 0x0b2 */ OPT_MOVE_TRACKS, - /* 0x0b3 */ OPT_MOVE1_TRACKS, - /* 0x0b4 */ OPT_LINK_TRACKS, - /* 0x0b5 */ OPT_SZS_MODE, - /* 0x0b6 */ OPT_LOAD_BMG, - /* 0x0b7 */ OPT_PATCH_BMG, - /* 0x0b8 */ OPT_MACRO_BMG, - /* 0x0b9 */ OPT_PATCH_NAMES, - /* 0x0ba */ OPT_ORDER_BY, - /* 0x0bb */ OPT_ORDER_ALL, - /* 0x0bc */ OPT_NUMBER, - /* 0x0bd */ OPT_SECTIONS, - /* 0x0be */ 0,0, + /* 0x092 */ OPT_NO_WILDCARDS, + /* 0x093 */ OPT_IN_ORDER, + /* 0x094 */ OPT_NO_ECHO, + /* 0x095 */ OPT_UTF_8, + /* 0x096 */ OPT_NO_UTF_8, + /* 0x097 */ OPT_LT_CLEAR, + /* 0x098 */ OPT_LT_ONLINE, + /* 0x099 */ OPT_LT_N_PLAYERS, + /* 0x09a */ OPT_LT_COND_BIT, + /* 0x09b */ OPT_LT_GAME_MODE, + /* 0x09c */ OPT_LT_ENGINE, + /* 0x09d */ OPT_LT_RANDOM, + /* 0x09e */ OPT_LEX_PURGE, + /* 0x09f */ OPT_LEX_RM_FEAT, + /* 0x0a0 */ OPT_FORCE, + /* 0x0a1 */ OPT_REPAIR_MAGICS, + /* 0x0a2 */ OPT_CREATE_DISTRIB, + /* 0x0a3 */ OPT_OLD, + /* 0x0a4 */ OPT_STD, + /* 0x0a5 */ OPT_NEW, + /* 0x0a6 */ OPT_EXTRACT, + /* 0x0a7 */ OPT_LE_DEFINE, + /* 0x0a8 */ OPT_LE_ARENA, + /* 0x0a9 */ OPT_LPAR, + /* 0x0aa */ OPT_ALIAS, + /* 0x0ab */ OPT_ENGINE, + /* 0x0ac */ OPT_200CC, + /* 0x0ad */ OPT_PERFMON, + /* 0x0ae */ OPT_CUSTOM_TT, + /* 0x0af */ OPT_XPFLAGS, + /* 0x0b0 */ OPT_SPEEDOMETER, + /* 0x0b1 */ OPT_DEBUG, + /* 0x0b2 */ OPT_TRACK_DIR, + /* 0x0b3 */ OPT_COPY_TRACKS, + /* 0x0b4 */ OPT_MOVE_TRACKS, + /* 0x0b5 */ OPT_MOVE1_TRACKS, + /* 0x0b6 */ OPT_LINK_TRACKS, + /* 0x0b7 */ OPT_SZS_MODE, + /* 0x0b8 */ OPT_LOAD_BMG, + /* 0x0b9 */ OPT_PATCH_BMG, + /* 0x0ba */ OPT_MACRO_BMG, + /* 0x0bb */ OPT_PATCH_NAMES, + /* 0x0bc */ OPT_ORDER_BY, + /* 0x0bd */ OPT_ORDER_ALL, + /* 0x0be */ OPT_NUMBER, + /* 0x0bf */ OPT_SECTIONS, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1124,184 +1140,184 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[47] = // cmd #1 +static u8 option_allowed_cmd_VERSION[49] = // cmd #1 { 0,0,0,1,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_HELP[47] = // cmd #2 +static u8 option_allowed_cmd_HELP[49] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[47] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[49] = // cmd #3 { 0,0,0,1,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[47] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[49] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[47] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[49] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_TEST[47] = // cmd #6 +static u8 option_allowed_cmd_TEST[49] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[47] = // cmd #7 +static u8 option_allowed_cmd_COLORS[49] = // cmd #7 { 0,0,0,1,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[47] = // cmd #8 +static u8 option_allowed_cmd_ERROR[49] = // cmd #8 { 0,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[47] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[49] = // cmd #9 { - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0 + 0,0,0,1,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[47] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[49] = // cmd #10 { 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[49] = // cmd #11 { 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[47] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[49] = // cmd #12 { 0,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[47] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[49] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[47] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[49] = // cmd #14 { 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[47] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[49] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DPAD[47] = // cmd #16 +static u8 option_allowed_cmd_DPAD[49] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DUMP[47] = // cmd #17 +static u8 option_allowed_cmd_DUMP[49] = // cmd #17 { - 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,1,0, 1,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DB[47] = // cmd #18 +static u8 option_allowed_cmd_DB[49] = // cmd #18 { - 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,1,0, 1,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DL[47] = // cmd #19 +static u8 option_allowed_cmd_DL[49] = // cmd #19 { - 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,1,0, 1,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DLL[47] = // cmd #20 +static u8 option_allowed_cmd_DLL[49] = // cmd #20 { - 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,1,0, 1,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DLLL[47] = // cmd #21 +static u8 option_allowed_cmd_DLLL[49] = // cmd #21 { - 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,1,0, 1,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_BIN_DIFF[47] = // cmd #22 +static u8 option_allowed_cmd_BIN_DIFF[49] = // cmd #22 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_PATCH[47] = // cmd #23 +static u8 option_allowed_cmd_PATCH[49] = // cmd #23 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, - 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_TIMESTAMP[47] = // cmd #24 +static u8 option_allowed_cmd_TIMESTAMP[49] = // cmd #24 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_LPAR[47] = // cmd #25 +static u8 option_allowed_cmd_LPAR[49] = // cmd #25 { - 0,0,0,0,1, 1,1,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,1, 1,1,1,1,0, 0,0,0,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_CREATE[47] = // cmd #26 +static u8 option_allowed_cmd_CREATE[49] = // cmd #26 { - 0,0,0,0,1, 1,1,0,1,1, 1,1,0,1,0, 1,0,1,1,1, 1,1,1,1,0, 0,0,0,0,0, - 0,1,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,1, 1,0,0,1,0, 1,1,1,1,0, 1,0,1,0,1, 1,1,1,1,1, 1,0,0,0,0, + 0,0,0,1,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_DISTRIBUTION[47] = // cmd #27 +static u8 option_allowed_cmd_DISTRIBUTION[49] = // cmd #27 { - 0,1,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, - 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,1,0,0,1, 1,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_CAT[47] = // cmd #28 +static u8 option_allowed_cmd_CAT[49] = // cmd #28 { - 0,0,0,0,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0 + 0,0,0,0,1, 1,1,1,1,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DECODE[47] = // cmd #29 +static u8 option_allowed_cmd_DECODE[49] = // cmd #29 { - 0,0,0,0,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,1, 1,1,1,1,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_ENCODE[47] = // cmd #30 +static u8 option_allowed_cmd_ENCODE[49] = // cmd #30 { - 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 + 0,0,0,0,0, 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,1,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; @@ -1422,8 +1438,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1479,6 +1497,12 @@ static const InfoOption_t * option_tab_cmd_DPAD[] = static const InfoOption_t * option_tab_cmd_DUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1502,6 +1526,12 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = static const InfoOption_t * option_tab_cmd_DB[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1525,6 +1555,12 @@ static const InfoOption_t * option_tab_cmd_DB[] = static const InfoOption_t * option_tab_cmd_DL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1548,6 +1584,12 @@ static const InfoOption_t * option_tab_cmd_DL[] = static const InfoOption_t * option_tab_cmd_DLL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1571,6 +1613,12 @@ static const InfoOption_t * option_tab_cmd_DLL[] = static const InfoOption_t * option_tab_cmd_DLLL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1602,6 +1650,12 @@ static const InfoOption_t * option_tab_cmd_BIN_DIFF[] = static const InfoOption_t * option_tab_cmd_PATCH[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1631,7 +1685,6 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_CREATE_DISTRIB, 0 @@ -1639,6 +1692,12 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = static const InfoOption_t * option_tab_cmd_TIMESTAMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1650,13 +1709,18 @@ static const InfoOption_t * option_tab_cmd_TIMESTAMP[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_LPAR[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, OptionInfo + OPT_LPAR, OptionInfo + OPT_ALIAS, @@ -1681,7 +1745,6 @@ static const InfoOption_t * option_tab_cmd_LPAR[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOPT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -1774,8 +1837,13 @@ static const InfoOption_t * option_tab_cmd_DISTRIBUTION[] = static const InfoOption_t * option_tab_cmd_CAT[] = { - OptionInfo + OPT_COMPLETE, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_COMPLETE, &option_grp_TEXTOPT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -1786,6 +1854,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COMPLETE, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, @@ -1798,7 +1872,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOPT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -1809,6 +1882,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COMPLETE, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, @@ -1822,7 +1901,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, - OptionInfo + OPT_IGNORE, 0 }; @@ -1927,10 +2005,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1992,9 +2067,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wlect FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -2121,10 +2198,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DUMP", "D", "wlect DUMP [source]...", - "Print an information dump for each source file. LE-CODE binaries and" - " LEX binaries are accepted as input.", + "Print an information dump for each source file. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. LE-CODE binaries and LEX binaries are accepted as input.", 0, - 14, + 17, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -2138,7 +2216,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Short cut for 'DUMP --brief'.", "", 0, - 14, + 17, option_tab_cmd_DB, option_allowed_cmd_DB }, @@ -2152,7 +2230,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DL [source]...", "Short cut for 'DUMP --long'.", 0, - 14, + 17, option_tab_cmd_DL, option_allowed_cmd_DL }, @@ -2166,7 +2244,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DLL [source]...", "Short cut for 'DUMP --long --long'.", 0, - 14, + 17, option_tab_cmd_DLL, option_allowed_cmd_DLL }, @@ -2180,7 +2258,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DLL [source]...", "Short cut for 'DUMP --long --long --long'.", 0, - 14, + 17, option_tab_cmd_DLLL, option_allowed_cmd_DLLL }, @@ -2214,10 +2292,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "PATCH", "P", "wlect PATCH [lecode_bin]...", - "Read each LE-CODE binary file and patch it. Use --le-define to setup" - " cups and tracks.", + "Read each LE-CODE binary file and patch it. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. Use --le-define to setup cups and tracks.", 0, - 25, + 27, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, @@ -2230,9 +2309,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wlect TIMESTAMP [lecode_bin]...", "Read each LE-CODE binary file and set creation time if exists and is" - " null with respect to others existing timestamps.", + " null with respect to others existing timestamps. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 9, + 11, option_tab_cmd_TIMESTAMP, option_allowed_cmd_TIMESTAMP }, @@ -2244,11 +2325,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LPAR", 0, "wlect LPAR [le_bin]...", - "Read each LE-BIN file and patch it. Then extract the LE-CODE" - " parameters and store them as LPAR text file. Print the result to" - " standard output if no other destination is defined.", + "Read each LE-BIN file and patch it. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details. Then" + " extract the LE-CODE parameters and store them as LPAR text file." + " Print the result to standard output if no other destination is" + " defined.", 0, - 22, + 24, option_tab_cmd_LPAR, option_allowed_cmd_LPAR }, @@ -2280,9 +2363,9 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DISTRIBUTION [argument]...", "This command manages data for LE-CODE track distributions. It reads" " any number of source files with different file types, collects the" - " data and creates any number of files with different file types." - " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for" - " details.\n" + " data and creates any number of files with different file types. The" + " parameters are evaluated step by step. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.\n" " Use the command without keyword to get an extended description.", 0, 21, @@ -2298,10 +2381,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wlect CAT [source]...", "Read the entered LEX and LE-CODE files (text, binary or szs) and" - " print them as decoded text files to standard output. The output of" - " all source files is concatenated.", + " print them as decoded text files to standard output. Wildcards and" + " pipe characters are parsed, see https://szs.wiimm.de/doc/wildcards" + " for details. The output of all source files is concatenated.", 0, - 6, + 8, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -2314,9 +2398,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DEC", "wlect DECODE [source]...", "Read the entered LEX files (text or binary) and decode them to text" - " files. The default destination is '%P/%N.txt'.", + " files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.txt'.", 0, - 14, + 16, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -2329,9 +2415,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wlect ENCODE source...", "Read the entered LEX files (text or binary) and encode (compile) them" - " to binary files. The default destination is '%P/%N.lex'.", + " to binary files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.lex'.", 0, - 11, + 13, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, diff --git a/project/src/ui/ui-wlect.h b/project/src/ui/ui-wlect.h index 84c436d..cdc9539 100644 --- a/project/src/ui/ui-wlect.h +++ b/project/src/ui/ui-wlect.h @@ -61,6 +61,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_EXPORT, OPT_NO_PARAM, OPT_NO_ECHO, @@ -103,7 +105,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 47 + OPT__N_SPECIFIC, // == 49 //----- global options ----- @@ -148,7 +150,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 87 + OPT__N_TOTAL // == 89 } enumOptions; @@ -168,6 +170,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_EXPORT = 1llu << OPT_EXPORT, // OB_NO_PARAM = 1llu << OPT_NO_PARAM, // OB_NO_ECHO = 1llu << OPT_NO_ECHO, @@ -271,8 +275,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -290,7 +296,10 @@ typedef enum enumOptions // // OB_CMD_DPAD = 0, // -// OB_CMD_DUMP = OB_GRP_PATCH +// OB_CMD_DUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_PATCH // | OB_BRIEF // | OB_LONG // | OB_GRP_PATCH @@ -306,16 +315,24 @@ typedef enum enumOptions // // OB_CMD_BIN_DIFF = 0, // -// OB_CMD_PATCH = OB_GRP_PATCH +// OB_CMD_PATCH = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_PATCH // | OB_GRP_TRACK_COPY // | OB_GRP_DEST -// | OB_IGNORE // | OB_CREATE_DISTRIB, // -// OB_CMD_TIMESTAMP = OB_GRP_DEST +// OB_CMD_TIMESTAMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_IGNORE, // -// OB_CMD_LPAR = OB_GRP_PATCH +// OB_CMD_LPAR = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_PATCH // | OB_GRP_DEST // | OB_GRP_TEXTOUT, // @@ -336,21 +353,27 @@ typedef enum enumOptions // | OB_GRP_TEXTOUT // | OB_GRP_DEST, // -// OB_CMD_CAT = OB_COMPLETE +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_COMPLETE // | OB_GRP_TEXTOUT -// | OB_NO_ECHO -// | OB_IGNORE, +// | OB_NO_ECHO, // -// OB_CMD_DECODE = OB_COMPLETE +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_COMPLETE // | OB_GRP_DEST // | OB_GRP_TEXTOUT -// | OB_NO_ECHO -// | OB_IGNORE, +// | OB_NO_ECHO, // -// OB_CMD_ENCODE = OB_COMPLETE +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_COMPLETE // | OB_GRP_DEST -// | OB_NO_ECHO -// | OB_IGNORE, +// | OB_NO_ECHO, // //} enumOptionsBit; @@ -454,6 +477,8 @@ typedef enum enumGetOpt GO_PLUS, GO_CHDIR, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_NO_ECHO, GO_UTF_8, GO_NO_UTF_8, diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c index 3908322..a04a848 100644 --- a/project/src/ui/ui-wmdlt.c +++ b/project/src/ui/ui-wmdlt.c @@ -233,6 +233,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Suppress cross reference comments." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_NO_PARAM, false, false, false, false, false, 'P', "no-param", 0, "Disable parameter support in decoded KMP text files." @@ -315,7 +326,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 33 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 35 //----- global options ----- @@ -590,7 +601,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 69 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 71 }; @@ -805,6 +816,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "no-param", 0, 0, 'P' }, { "noparam", 0, 0, 'P' }, { "no-echo", 0, 0, GO_NO_ECHO }, @@ -931,19 +946,21 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x09c */ OPT_AROT, /* 0x09d */ OPT_TFORM_SCRIPT, /* 0x09e */ OPT_ROUND, - /* 0x09f */ OPT_NO_ECHO, - /* 0x0a0 */ OPT_UTF_8, - /* 0x0a1 */ OPT_NO_UTF_8, - /* 0x0a2 */ OPT_FORCE, - /* 0x0a3 */ OPT_REPAIR_MAGICS, - /* 0x0a4 */ OPT_TINY, - /* 0x0a5 */ OPT_OLD, - /* 0x0a6 */ OPT_STD, - /* 0x0a7 */ OPT_NEW, - /* 0x0a8 */ OPT_EXTRACT, - /* 0x0a9 */ OPT_NUMBER, - /* 0x0aa */ OPT_SECTIONS, - /* 0x0ab */ 0,0,0,0, 0, + /* 0x09f */ OPT_NO_WILDCARDS, + /* 0x0a0 */ OPT_IN_ORDER, + /* 0x0a1 */ OPT_NO_ECHO, + /* 0x0a2 */ OPT_UTF_8, + /* 0x0a3 */ OPT_NO_UTF_8, + /* 0x0a4 */ OPT_FORCE, + /* 0x0a5 */ OPT_REPAIR_MAGICS, + /* 0x0a6 */ OPT_TINY, + /* 0x0a7 */ OPT_OLD, + /* 0x0a8 */ OPT_STD, + /* 0x0a9 */ OPT_NEW, + /* 0x0aa */ OPT_EXTRACT, + /* 0x0ab */ OPT_NUMBER, + /* 0x0ac */ OPT_SECTIONS, + /* 0x0ad */ 0,0,0, /* 0x0b0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -960,136 +977,136 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[33] = // cmd #1 +static u8 option_allowed_cmd_VERSION[35] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1 + 0,0,0,0,1 }; -static u8 option_allowed_cmd_HELP[33] = // cmd #2 +static u8 option_allowed_cmd_HELP[35] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1 + 1,1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[33] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[35] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[33] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[35] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1 + 1,1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[33] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[35] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1 + 1,1,1,1,1 }; -static u8 option_allowed_cmd_TEST[33] = // cmd #6 +static u8 option_allowed_cmd_TEST[35] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1 + 1,1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[33] = // cmd #7 +static u8 option_allowed_cmd_COLORS[35] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[33] = // cmd #8 +static u8 option_allowed_cmd_ERROR[35] = // cmd #8 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1 + 0,0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[33] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[35] = // cmd #9 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[33] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[35] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[33] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[35] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[33] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[35] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[33] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[35] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_MATRIX[33] = // cmd #14 +static u8 option_allowed_cmd_MATRIX[35] = // cmd #14 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[33] = // cmd #15 +static u8 option_allowed_cmd_FLOAT[35] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[33] = // cmd #16 +static u8 option_allowed_cmd_EXPORT[35] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0 + 0,0,0,0,0 }; -static u8 option_allowed_cmd_CAT[33] = // cmd #17 +static u8 option_allowed_cmd_CAT[35] = // cmd #17 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 1,1,0,1,1, 0,0,0,0,0, + 0,0,0,1,0 }; -static u8 option_allowed_cmd_DECODE[33] = // cmd #18 +static u8 option_allowed_cmd_DECODE[35] = // cmd #18 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1, 1,1,1,1,1, - 1,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 1,1,0,1,1, 1,1,1,1,1, + 1,1,1,1,0 }; -static u8 option_allowed_cmd_ENCODE[33] = // cmd #19 +static u8 option_allowed_cmd_ENCODE[35] = // cmd #19 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, + 1,1,1,1,0 }; -static u8 option_allowed_cmd_STRINGS[33] = // cmd #20 +static u8 option_allowed_cmd_STRINGS[35] = // cmd #20 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 1,1,0,1,1, 0,0,0,0,0, + 0,0,0,1,0 }; -static u8 option_allowed_cmd_GEOMETRY[33] = // cmd #21 +static u8 option_allowed_cmd_GEOMETRY[35] = // cmd #21 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 1,1,0,1,1, 0,0,0,0,0, + 0,0,0,1,0 }; -static u8 option_allowed_cmd_XTEST[33] = // cmd #22 +static u8 option_allowed_cmd_XTEST[35] = // cmd #22 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,1,1, 1,1,0,1,1, 0,0,0,0,0, + 0,0,0,1,0 }; @@ -1202,8 +1219,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1281,7 +1300,12 @@ static const InfoOption_t * option_tab_cmd_EXPORT[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1311,6 +1335,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1322,7 +1352,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1352,6 +1381,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1365,7 +1400,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -1391,7 +1425,12 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = static const InfoOption_t * option_tab_cmd_STRINGS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1421,7 +1460,12 @@ static const InfoOption_t * option_tab_cmd_STRINGS[] = static const InfoOption_t * option_tab_cmd_GEOMETRY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1451,7 +1495,12 @@ static const InfoOption_t * option_tab_cmd_GEOMETRY[] = static const InfoOption_t * option_tab_cmd_XTEST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1579,10 +1628,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1644,9 +1690,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wmdlt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -1785,12 +1833,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wmdlt CAT [source]...", "Read the entered MDL files (text or binary) and print them as decoded" - " text files to standard output (stdout). The output of all source" - " files is concatenated.\n" + " text files to standard output (stdout). Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The output of all source files is concatenated.\n" " A decoded MDL0 file can only be used for analysis. Encoding or" " creating a new MDL0 file is not supported.", 0, - 21, + 23, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -1803,11 +1852,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DEC", "wmdlt DECODE [source]...", "Read the entered MDL files (text or binary) and decode them to text" - " files. The default destination is '%P/%N.txt'.\n" + " files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.txt'.\n" " A decoded MDL0 file can only be used for analysis. Encoding or" " creating a new MDL0 file is not supported.", 0, - 29, + 31, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -1820,9 +1871,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wmdlt ENCODE [source]...", "Read the entered MDL files (text or binary) and encode (compile) them" - " to binary files. The default destination is '%P/%N.mdl'.", + " to binary files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.mdl'.", 0, - 27, + 29, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -1835,12 +1888,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wmdlt STRINGS [source]...", "Read the entered MDL files (text or binary) and print all strings of" - " all sections.\n" + " all sections. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.\n" " For archives like SZS or BREES, the strings of each containing MDL" " are printed. It is also possible to address an internal sub-file" " like track.szs/course_model.brres.", 0, - 21, + 23, option_tab_cmd_STRINGS, option_allowed_cmd_STRINGS }, @@ -1853,10 +1907,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "GEO", "wmdlt GEOMETRY [source]...", "Read the entered MDL files (text or binary) and print some geometry" - " information to the standard output (stdout). The output of all" - " source files is concatenated.", + " information to the standard output (stdout). Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The output of all source files is concatenated.", 0, - 21, + 23, option_tab_cmd_GEOMETRY, option_allowed_cmd_GEOMETRY }, @@ -1868,9 +1923,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "_TEST", 0, "wszst _TEST [files]", - "Test something.", + "Test something. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 21, + 23, option_tab_cmd_XTEST, option_allowed_cmd_XTEST }, diff --git a/project/src/ui/ui-wmdlt.h b/project/src/ui/ui-wmdlt.h index 28821cc..e0a439c 100644 --- a/project/src/ui/ui-wmdlt.h +++ b/project/src/ui/ui-wmdlt.h @@ -75,6 +75,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_NO_PARAM, OPT_NO_ECHO, OPT_NO_CHECK, @@ -89,7 +91,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 33 + OPT__N_SPECIFIC, // == 35 //----- global options ----- @@ -130,7 +132,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 69 + OPT__N_TOTAL // == 71 } enumOptions; @@ -164,6 +166,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_NO_PARAM = 1llu << OPT_NO_PARAM, // OB_NO_ECHO = 1llu << OPT_NO_ECHO, // OB_NO_CHECK = 1llu << OPT_NO_CHECK, @@ -232,8 +236,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -253,41 +259,53 @@ typedef enum enumOptions // // OB_CMD_EXPORT = 0, // -// OB_CMD_CAT = OB_GRP_TEXTOUT +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_ENCODE = OB_GRP_DEST +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_STRINGS = OB_GRP_TEXTOUT +// OB_CMD_STRINGS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_GEOMETRY = OB_GRP_TEXTOUT +// OB_CMD_GEOMETRY = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // -// OB_CMD_XTEST = OB_GRP_TEXTOUT +// OB_CMD_XTEST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO // | OB_NO_CHECK -// | OB_IGNORE // | OB_GRP_TRANSFORM, // //} enumOptionsBit; @@ -397,6 +415,8 @@ typedef enum enumGetOpt GO_AROT, GO_TFORM_SCRIPT, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_NO_ECHO, GO_UTF_8, GO_NO_UTF_8, diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c index 7181a33..9c23cb3 100644 --- a/project/src/ui/ui-wpatt.c +++ b/project/src/ui/ui-wpatt.c @@ -75,6 +75,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Suppress cross reference comments." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_NO_PARAM, false, false, false, false, false, 'P', "no-param", 0, "Disable parameter support in decoded KMP text files." @@ -157,7 +168,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 18 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 20 //----- global options ----- @@ -421,7 +432,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 53 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 55 }; @@ -584,6 +595,10 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "no-param", 0, 0, 'P' }, { "noparam", 0, 0, 'P' }, { "no-echo", 0, 0, GO_NO_ECHO }, @@ -694,19 +709,21 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08c */ OPT_LE_CODE, /* 0x08d */ OPT_CHDIR, /* 0x08e */ OPT_ROUND, - /* 0x08f */ OPT_NO_ECHO, - /* 0x090 */ OPT_PAT, - /* 0x091 */ OPT_UTF_8, - /* 0x092 */ OPT_NO_UTF_8, - /* 0x093 */ OPT_FORCE, - /* 0x094 */ OPT_REPAIR_MAGICS, - /* 0x095 */ OPT_OLD, - /* 0x096 */ OPT_STD, - /* 0x097 */ OPT_NEW, - /* 0x098 */ OPT_EXTRACT, - /* 0x099 */ OPT_NUMBER, - /* 0x09a */ OPT_SECTIONS, - /* 0x09b */ 0,0,0,0, 0, + /* 0x08f */ OPT_NO_WILDCARDS, + /* 0x090 */ OPT_IN_ORDER, + /* 0x091 */ OPT_NO_ECHO, + /* 0x092 */ OPT_PAT, + /* 0x093 */ OPT_UTF_8, + /* 0x094 */ OPT_NO_UTF_8, + /* 0x095 */ OPT_FORCE, + /* 0x096 */ OPT_REPAIR_MAGICS, + /* 0x097 */ OPT_OLD, + /* 0x098 */ OPT_STD, + /* 0x099 */ OPT_NEW, + /* 0x09a */ OPT_EXTRACT, + /* 0x09b */ OPT_NUMBER, + /* 0x09c */ OPT_SECTIONS, + /* 0x09d */ 0,0,0, /* 0x0a0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0b0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -724,94 +741,94 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[18] = // cmd #1 +static u8 option_allowed_cmd_VERSION[20] = // cmd #1 { - 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,1 + 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_HELP[18] = // cmd #2 +static u8 option_allowed_cmd_HELP[20] = // cmd #2 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[18] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[20] = // cmd #3 { - 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[18] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[20] = // cmd #4 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[18] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[20] = // cmd #5 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_TEST[18] = // cmd #6 +static u8 option_allowed_cmd_TEST[20] = // cmd #6 { - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[18] = // cmd #7 +static u8 option_allowed_cmd_COLORS[20] = // cmd #7 { - 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[18] = // cmd #8 +static u8 option_allowed_cmd_ERROR[20] = // cmd #8 { - 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,1 + 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[18] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[20] = // cmd #9 { - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0 + 0,0,1,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[18] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[20] = // cmd #10 { - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[18] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[20] = // cmd #11 { - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[18] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[20] = // cmd #12 { - 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[18] = // cmd #13 +static u8 option_allowed_cmd_CALCULATE[20] = // cmd #13 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[18] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[20] = // cmd #14 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[18] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[20] = // cmd #15 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_CAT[18] = // cmd #16 +static u8 option_allowed_cmd_CAT[20] = // cmd #16 { - 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, 0,1,0 + 0,0,0,1,1, 1,1,0,1,1, 0,0,0,0,0, 0,0,0,1,0 }; -static u8 option_allowed_cmd_DECODE[18] = // cmd #17 +static u8 option_allowed_cmd_DECODE[20] = // cmd #17 { - 0,0,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,1,1, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,0 }; -static u8 option_allowed_cmd_ENCODE[18] = // cmd #18 +static u8 option_allowed_cmd_ENCODE[20] = // cmd #18 { - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,0 }; @@ -922,8 +939,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -973,7 +992,12 @@ static const InfoOption_t * option_tab_cmd_EXPORT[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -984,6 +1008,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_DECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -996,7 +1026,6 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_ECHO, @@ -1007,6 +1036,12 @@ static const InfoOption_t * option_tab_cmd_DECODE[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -1021,7 +1056,6 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_PRESERVE, OptionInfo + OPT_NO_ECHO, OptionInfo + OPT_NO_CHECK, - OptionInfo + OPT_IGNORE, 0 }; @@ -1126,10 +1160,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -1191,9 +1222,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wpatt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -1307,10 +1340,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wpatt CAT [source]...", "Read the entered PAT files (text or binary) and print them as decoded" - " text files to standard output (stdout). The output of all source" - " files is concatenated.", + " text files to standard output (stdout). Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The output of all source files is concatenated.", 0, - 5, + 7, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -1323,9 +1357,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DEC", "wpatt DECODE [source]...", "Read the entered PAT files (text or binary) and decode them to text" - " files. The default destination is '%P/%N.txt'.", + " files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.txt'.", 0, - 14, + 16, option_tab_cmd_DECODE, option_allowed_cmd_DECODE }, @@ -1338,9 +1374,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ENC", "wpatt ENCODE [source]...", "Read the entered PAT files (text or binary) and encode (compile) them" - " to binary files. The default destination is '%P/%N.pat'.", + " to binary files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. The default" + " destination is '%P/%N.pat'.", 0, - 12, + 14, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, diff --git a/project/src/ui/ui-wpatt.h b/project/src/ui/ui-wpatt.h index 9df0853..1f08393 100644 --- a/project/src/ui/ui-wpatt.h +++ b/project/src/ui/ui-wpatt.h @@ -60,6 +60,8 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_NO_PARAM, OPT_NO_ECHO, OPT_NO_CHECK, @@ -74,7 +76,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 18 + OPT__N_SPECIFIC, // == 20 //----- global options ----- @@ -114,7 +116,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 53 + OPT__N_TOTAL // == 55 } enumOptions; @@ -133,6 +135,8 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_NO_PARAM = 1llu << OPT_NO_PARAM, // OB_NO_ECHO = 1llu << OPT_NO_ECHO, // OB_NO_CHECK = 1llu << OPT_NO_CHECK, @@ -185,8 +189,10 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -202,21 +208,27 @@ typedef enum enumOptions // // OB_CMD_EXPORT = 0, // -// OB_CMD_CAT = OB_GRP_TEXTOUT +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_TEXTOUT // | OB_NO_ECHO -// | OB_NO_CHECK -// | OB_IGNORE, +// | OB_NO_CHECK, // -// OB_CMD_DECODE = OB_GRP_DEST +// OB_CMD_DECODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_TEXTOUT // | OB_NO_ECHO -// | OB_NO_CHECK -// | OB_IGNORE, +// | OB_NO_CHECK, // -// OB_CMD_ENCODE = OB_GRP_DEST +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_NO_ECHO -// | OB_NO_CHECK -// | OB_IGNORE, +// | OB_NO_CHECK, // //} enumOptionsBit; @@ -304,6 +316,8 @@ typedef enum enumGetOpt GO_LE_CODE, GO_CHDIR, GO_ROUND, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_NO_ECHO, GO_PAT, GO_UTF_8, diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c index 2c606ed..543ee0f 100644 --- a/project/src/ui/ui-wstrt.c +++ b/project/src/ui/ui-wstrt.c @@ -64,6 +64,17 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "List only the track file names and suppress table header and footer." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_NO_HEADER, false, false, false, false, false, 'H', "no-header", 0, "Suppress the syntax information section in BMG text files." @@ -80,11 +91,9 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "file", "Each option call adds the filename to an internal list. Each file" " must be of type GCT and is added to the internal wcode stock.\n" - " If parameter FILE contains at least one wildcard (e.g. '*.gct')," + " If parameter FILE contains at least one wildcard (e.g. \"*.gct\")," " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed in" - " single or double quotes.\n" + " Quote FILE for this purpose. \n" " If a single file is not found and the filename (not path) contains" " at least 1 '@' character, then all '@' characters of it are replaced" " by the region code (one of P,E,J,K) for a second try." @@ -184,11 +193,9 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " and VBI hooks are optionally initialized. Use option --force to" " allow overlapped sections. Use option --verbose up to 2 times for a" " log.\n" - " If parameter FILE contains at least one wildcard (e.g. '*.gct')," + " If parameter FILE contains at least one wildcard (e.g. \"*.GCT\")," " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed in" - " single or double quotes.\n" + " Quote FILE for this purpose. \n" " If a single file is not found and the filename (not path) contains" " at least 1 '@' character, then all '@' characters of it are replaced" " by the region code (one of P,E,J,K) for a second try.\n" @@ -292,11 +299,9 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Each option call adds the filename to an internal list. Each file" " must be of type WPF (Wiimms Patch File) and defines a list of" " conditionals and patches for staticr.rel and main.dol.\n" - " If parameter FILE contains at least one wildcard (e.g. '*.wpf')," + " If parameter FILE contains at least one wildcard (e.g. \"*.wpf\")," " then FILE is used as search pattern and all found files are added." - " In order to use this variant, the calling shell must not interpret" - " the wildcards. Therefore, the parameter must usually be enclosed in" - " single or double quotes." + " Quote FILE for this purpose. " }, { OPT_SECTIONS, false, false, false, false, true, 0, "sections", @@ -501,7 +506,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " dependent (multiple of format size)." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 66 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 68 //----- global options ----- @@ -919,7 +924,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " directory." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 121 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 123 }; @@ -1167,6 +1172,10 @@ static const struct option OptionLong[] = { "const", 1, 0, 'c' }, { "long", 0, 0, 'l' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "tracks", 1, 0, 'T' }, @@ -1377,87 +1386,88 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x08b */ OPT_CT_CODE, /* 0x08c */ OPT_LE_CODE, /* 0x08d */ OPT_CHDIR, - /* 0x08e */ OPT_VS_REGION, - /* 0x08f */ OPT_BT_REGION, - /* 0x090 */ OPT_ALL_RANKS, - /* 0x091 */ OPT_POINTS, - /* 0x092 */ OPT_CHEAT, - /* 0x093 */ OPT_HTTPS, - /* 0x094 */ OPT_DOMAIN, - /* 0x095 */ OPT_WIIMMFI, - /* 0x096 */ OPT_TWIIMMFI, - /* 0x097 */ OPT_WC24, - /* 0x098 */ OPT_WCODE, - /* 0x099 */ OPT_ADD_WCODE, - /* 0x09a */ OPT_PB_MODE, - /* 0x09b */ OPT_PATCHED_BY, - /* 0x09c */ OPT_VS, - /* 0x09d */ OPT_VS2, - /* 0x09e */ OPT_BT, - /* 0x09f */ OPT_BT2, - /* 0x0a0 */ OPT_CANNON, - /* 0x0a1 */ OPT_MENO, - /* 0x0a2 */ OPT_UTF_8, - /* 0x0a3 */ OPT_NO_UTF_8, - /* 0x0a4 */ OPT_FORCE, - /* 0x0a5 */ OPT_REPAIR_MAGICS, - /* 0x0a6 */ OPT_OLD, - /* 0x0a7 */ OPT_STD, - /* 0x0a8 */ OPT_NEW, - /* 0x0a9 */ OPT_EXTRACT, - /* 0x0aa */ OPT_NUMBER, - /* 0x0ab */ OPT_CLEAN_DOL, - /* 0x0ac */ OPT_ADD_LECODE, - /* 0x0ad */ OPT_ADD_CTCODE, - /* 0x0ae */ OPT_CT_DIR, - /* 0x0af */ OPT_MOVE_D8, - /* 0x0b0 */ OPT_ADD_SECTION, - /* 0x0b1 */ OPT_FULL_GCH, - /* 0x0b2 */ OPT_GCT_NO_SEP, - /* 0x0b3 */ OPT_GCT_SEP, - /* 0x0b4 */ OPT_GCT_ASM_SEP, - /* 0x0b5 */ OPT_GCT_LIST, - /* 0x0b6 */ OPT_GCT_MOVE, - /* 0x0b7 */ OPT_GCT_ADDR, - /* 0x0b8 */ OPT_GCT_SPACE, - /* 0x0b9 */ OPT_ALLOW_USER_GCH, - /* 0x0ba */ OPT_CREATE_SECT, - /* 0x0bb */ OPT_WPF, - /* 0x0bc */ OPT_SECTIONS, - /* 0x0bd */ OPT_PORT_DB, - /* 0x0be */ OPT_ORDER, - /* 0x0bf */ OPT_VADDR, - /* 0x0c0 */ OPT_FADDR, - /* 0x0c1 */ OPT_SNAME, - /* 0x0c2 */ OPT_INT1, - /* 0x0c3 */ OPT_INT2, - /* 0x0c4 */ OPT_INT3, - /* 0x0c5 */ OPT_INT4, - /* 0x0c6 */ OPT_INT5, - /* 0x0c7 */ OPT_INT6, - /* 0x0c8 */ OPT_INT7, - /* 0x0c9 */ OPT_INT8, - /* 0x0ca */ OPT_FLOAT, - /* 0x0cb */ OPT_DOUBLE, - /* 0x0cc */ OPT_LE, - /* 0x0cd */ OPT_BE, - /* 0x0ce */ OPT_ZEROS, - /* 0x0cf */ OPT_HEX, - /* 0x0d0 */ OPT_DEC, - /* 0x0d1 */ OPT_C_SYNTAX, - /* 0x0d2 */ OPT_ADDR, - /* 0x0d3 */ OPT_ALIGN, - /* 0x0d4 */ OPT_TRIGGER, - /* 0x0d5 */ OPT_NO_ADDR, - /* 0x0d6 */ OPT_NO_NUMBERS, - /* 0x0d7 */ OPT_NO_TEXT, - /* 0x0d8 */ OPT_FORMAT, - /* 0x0d9 */ OPT_NO_NULL, - /* 0x0da */ OPT_NARROW, - /* 0x0db */ OPT_SMALL, - /* 0x0dc */ OPT_WIDE, - /* 0x0dd */ OPT_BYTES, - /* 0x0de */ 0,0, + /* 0x08e */ OPT_NO_WILDCARDS, + /* 0x08f */ OPT_IN_ORDER, + /* 0x090 */ OPT_VS_REGION, + /* 0x091 */ OPT_BT_REGION, + /* 0x092 */ OPT_ALL_RANKS, + /* 0x093 */ OPT_POINTS, + /* 0x094 */ OPT_CHEAT, + /* 0x095 */ OPT_HTTPS, + /* 0x096 */ OPT_DOMAIN, + /* 0x097 */ OPT_WIIMMFI, + /* 0x098 */ OPT_TWIIMMFI, + /* 0x099 */ OPT_WC24, + /* 0x09a */ OPT_WCODE, + /* 0x09b */ OPT_ADD_WCODE, + /* 0x09c */ OPT_PB_MODE, + /* 0x09d */ OPT_PATCHED_BY, + /* 0x09e */ OPT_VS, + /* 0x09f */ OPT_VS2, + /* 0x0a0 */ OPT_BT, + /* 0x0a1 */ OPT_BT2, + /* 0x0a2 */ OPT_CANNON, + /* 0x0a3 */ OPT_MENO, + /* 0x0a4 */ OPT_UTF_8, + /* 0x0a5 */ OPT_NO_UTF_8, + /* 0x0a6 */ OPT_FORCE, + /* 0x0a7 */ OPT_REPAIR_MAGICS, + /* 0x0a8 */ OPT_OLD, + /* 0x0a9 */ OPT_STD, + /* 0x0aa */ OPT_NEW, + /* 0x0ab */ OPT_EXTRACT, + /* 0x0ac */ OPT_NUMBER, + /* 0x0ad */ OPT_CLEAN_DOL, + /* 0x0ae */ OPT_ADD_LECODE, + /* 0x0af */ OPT_ADD_CTCODE, + /* 0x0b0 */ OPT_CT_DIR, + /* 0x0b1 */ OPT_MOVE_D8, + /* 0x0b2 */ OPT_ADD_SECTION, + /* 0x0b3 */ OPT_FULL_GCH, + /* 0x0b4 */ OPT_GCT_NO_SEP, + /* 0x0b5 */ OPT_GCT_SEP, + /* 0x0b6 */ OPT_GCT_ASM_SEP, + /* 0x0b7 */ OPT_GCT_LIST, + /* 0x0b8 */ OPT_GCT_MOVE, + /* 0x0b9 */ OPT_GCT_ADDR, + /* 0x0ba */ OPT_GCT_SPACE, + /* 0x0bb */ OPT_ALLOW_USER_GCH, + /* 0x0bc */ OPT_CREATE_SECT, + /* 0x0bd */ OPT_WPF, + /* 0x0be */ OPT_SECTIONS, + /* 0x0bf */ OPT_PORT_DB, + /* 0x0c0 */ OPT_ORDER, + /* 0x0c1 */ OPT_VADDR, + /* 0x0c2 */ OPT_FADDR, + /* 0x0c3 */ OPT_SNAME, + /* 0x0c4 */ OPT_INT1, + /* 0x0c5 */ OPT_INT2, + /* 0x0c6 */ OPT_INT3, + /* 0x0c7 */ OPT_INT4, + /* 0x0c8 */ OPT_INT5, + /* 0x0c9 */ OPT_INT6, + /* 0x0ca */ OPT_INT7, + /* 0x0cb */ OPT_INT8, + /* 0x0cc */ OPT_FLOAT, + /* 0x0cd */ OPT_DOUBLE, + /* 0x0ce */ OPT_LE, + /* 0x0cf */ OPT_BE, + /* 0x0d0 */ OPT_ZEROS, + /* 0x0d1 */ OPT_HEX, + /* 0x0d2 */ OPT_DEC, + /* 0x0d3 */ OPT_C_SYNTAX, + /* 0x0d4 */ OPT_ADDR, + /* 0x0d5 */ OPT_ALIGN, + /* 0x0d6 */ OPT_TRIGGER, + /* 0x0d7 */ OPT_NO_ADDR, + /* 0x0d8 */ OPT_NO_NUMBERS, + /* 0x0d9 */ OPT_NO_TEXT, + /* 0x0da */ OPT_FORMAT, + /* 0x0db */ OPT_NO_NULL, + /* 0x0dc */ OPT_NARROW, + /* 0x0dd */ OPT_SMALL, + /* 0x0de */ OPT_WIDE, + /* 0x0df */ OPT_BYTES, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0f0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1471,179 +1481,179 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[66] = // cmd #1 +static u8 option_allowed_cmd_VERSION[68] = // cmd #1 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_HELP[66] = // cmd #2 +static u8 option_allowed_cmd_HELP[68] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_CONFIG[66] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[68] = // cmd #3 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[66] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[68] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_EXPAND[66] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[68] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_TEST[66] = // cmd #6 +static u8 option_allowed_cmd_TEST[68] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1 + 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_COLORS[66] = // cmd #7 +static u8 option_allowed_cmd_COLORS[68] = // cmd #7 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ERROR[66] = // cmd #8 +static u8 option_allowed_cmd_ERROR[68] = // cmd #8 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FILETYPE[66] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[68] = // cmd #9 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[66] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[68] = // cmd #10 { - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_RAWDUMP[66] = // cmd #11 +static u8 option_allowed_cmd_RAWDUMP[68] = // cmd #11 { - 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_DUMP[66] = // cmd #12 +static u8 option_allowed_cmd_DUMP[68] = // cmd #12 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_CDUMP[66] = // cmd #13 +static u8 option_allowed_cmd_CDUMP[68] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_HEXDUMP[66] = // cmd #14 +static u8 option_allowed_cmd_HEXDUMP[68] = // cmd #14 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1 + 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,1, 1,1,1 }; -static u8 option_allowed_cmd_PORT[66] = // cmd #15 +static u8 option_allowed_cmd_PORT[68] = // cmd #15 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_WHERE[66] = // cmd #16 +static u8 option_allowed_cmd_WHERE[68] = // cmd #16 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_HTTPS[66] = // cmd #17 +static u8 option_allowed_cmd_HTTPS[68] = // cmd #17 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_EXTRACT[66] = // cmd #18 +static u8 option_allowed_cmd_EXTRACT[68] = // cmd #18 { - 0,0,0,0,0, 0,1,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,1,1, 0,0,0,1,1, 0,1,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_TRACKS[66] = // cmd #19 +static u8 option_allowed_cmd_TRACKS[68] = // cmd #19 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ARENAS[66] = // cmd #20 +static u8 option_allowed_cmd_ARENAS[68] = // cmd #20 { - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FILES[66] = // cmd #21 +static u8 option_allowed_cmd_FILES[68] = // cmd #21 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FIND[66] = // cmd #22 +static u8 option_allowed_cmd_FIND[68] = // cmd #22 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_POINTS[66] = // cmd #23 +static u8 option_allowed_cmd_POINTS[68] = // cmd #23 { - 0,1,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,1,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ANALYZE[66] = // cmd #24 +static u8 option_allowed_cmd_ANALYZE[68] = // cmd #24 { - 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_PATCH[66] = // cmd #25 +static u8 option_allowed_cmd_PATCH[68] = // cmd #25 { - 0,0,0,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0 + 0,0,0,1,1, 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0 }; @@ -1773,8 +1783,10 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { - &option_cmd_FILETYPE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_FILETYPE_LONG, 0 }; @@ -1796,6 +1808,12 @@ static const InfoOption_t * option_tab_cmd_RAWDUMP[] = static const InfoOption_t * option_tab_cmd_DUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_DUMP_LONG, 0 @@ -1809,6 +1827,12 @@ static const InfoOption_t * option_tab_cmd_CDUMP[] = static const InfoOption_t * option_tab_cmd_HEXDUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_VADDR, OptionInfo + OPT_FADDR, OptionInfo + OPT_SNAME, @@ -1877,6 +1901,12 @@ static const InfoOption_t * option_tab_cmd_WHERE[] = static const InfoOption_t * option_tab_cmd_HTTPS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_HTTPS_LONG, &option_cmd_HTTPS_VERBOSE, @@ -1885,6 +1915,12 @@ static const InfoOption_t * option_tab_cmd_HTTPS[] = static const InfoOption_t * option_tab_cmd_EXTRACT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_OVERWRITE, @@ -1997,6 +2033,12 @@ static const InfoOption_t * option_tab_cmd_POINTS[] = static const InfoOption_t * option_tab_cmd_ANALYZE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_CLEAN_DOL, OptionInfo + OPT_TRACKS, OptionInfo + OPT_ARENAS, @@ -2020,6 +2062,12 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = static const InfoOption_t * option_tab_cmd_PATCH[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -2031,7 +2079,6 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NONE, // separator @@ -2165,10 +2212,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -2230,9 +2274,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wstrt FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 2, + 4, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -2278,9 +2324,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wstrt DUMP file...", "Dump the structure of REL files (e.g. StaticR.rel) and of DOL files" - " (e.g. main.dol) as text.", + " (e.g. main.dol) as text. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.", 0, - 1, + 4, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -2307,10 +2354,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "XDUMP", "wstrt HEXDUMP file...", "Dump the content of DOL files as hex dump and use virtual addresses." - " Select parts by --vaddr, --faddr and --sname. Without selectors, the" - " whole file is dumped.", + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. Select parts by" + " --vaddr, --faddr and --sname. Without selectors, the whole file is" + " dumped.", 0, - 34, + 37, option_tab_cmd_HEXDUMP, option_allowed_cmd_HEXDUMP }, @@ -2366,9 +2415,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wstrt _HTTPS file...", "Collect data about https-requests and print a total summary for all" - " accepted files.", + " accepted files. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 2, + 5, option_tab_cmd_HTTPS, option_allowed_cmd_HTTPS }, @@ -2380,9 +2430,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "EXTRACT", "X", "wstrt EXTRACT dol...", - "Extract the sections of a DOL or a REL file into a directory.", + "Extract the sections of DOL and REL file into a directory. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 3, + 6, option_tab_cmd_EXTRACT, option_allowed_cmd_EXTRACT }, @@ -2477,10 +2529,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ANALYZE", "ANA", "wstrt ANALYZE [file]...", - "Open 'StaticR.rel' and DOL files and analyze them. The files will be" - " classified using SHA1 checksums.", + "Open 'StaticR.rel' and DOL files and analyze them. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The files will be classified using SHA1 checksums.", 0, - 17, + 20, option_tab_cmd_ANALYZE, option_allowed_cmd_ANALYZE }, @@ -2492,10 +2545,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "PATCH", 0, "wstrt PATCH [file]...", - "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii. No backup" - " is made.", + "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. No backup is made.", 0, - 34, + 36, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, diff --git a/project/src/ui/ui-wstrt.h b/project/src/ui/ui-wstrt.h index b3f1ad8..d7985da 100644 --- a/project/src/ui/ui-wstrt.h +++ b/project/src/ui/ui-wstrt.h @@ -58,6 +58,8 @@ typedef enum enumOptions OPT_LONG, OPT_BRIEF, + OPT_NO_WILDCARDS, + OPT_IN_ORDER, OPT_NO_HEADER, OPT_CHEAT, OPT_ADD_WCODE, @@ -122,7 +124,7 @@ typedef enum enumOptions OPT_WIDE, OPT_BYTES, - OPT__N_SPECIFIC, // == 66 + OPT__N_SPECIFIC, // == 68 //----- global options ----- @@ -182,7 +184,7 @@ typedef enum enumOptions OPT_CLEAN_DOL, OPT_CT_DIR, - OPT__N_TOTAL // == 121 + OPT__N_TOTAL // == 123 } enumOptions; @@ -199,6 +201,8 @@ typedef enum enumOptions // // OB_LONG = 1llu << OPT_LONG, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_CHEAT = 1llu << OPT_CHEAT, // OB_ADD_WCODE = 1llu << OPT_ADD_WCODE, @@ -328,19 +332,27 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // // OB_CMD_RAWDUMP = OB_DEST // | OB_DEST2, // -// OB_CMD_DUMP = OB_LONG, +// OB_CMD_DUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // // OB_CMD_CDUMP = 0, // -// OB_CMD_HEXDUMP = OB_VADDR +// OB_CMD_HEXDUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_VADDR // | OB_FADDR // | OB_SNAME // | OB_GRP_HEXDUMP, @@ -360,9 +372,15 @@ typedef enum enumOptions // | OB_BRIEF // | OB_LONG, // -// OB_CMD_HTTPS = OB_LONG, +// OB_CMD_HTTPS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG, // -// OB_CMD_EXTRACT = OB_DEST +// OB_CMD_EXTRACT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_DEST // | OB_DEST2 // | OB_OVERWRITE, // @@ -382,11 +400,16 @@ typedef enum enumOptions // | OB_LONG // | OB_CHEAT, // -// OB_CMD_ANALYZE = OB_GRP_PATCH +// OB_CMD_ANALYZE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_PATCH // | OB_LONG, // -// OB_CMD_PATCH = OB_GRP_DEST +// OB_CMD_PATCH = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_PATCH // | OB_ADD_LECODE // | OB_ADD_CTCODE @@ -502,6 +525,8 @@ typedef enum enumGetOpt GO_CT_CODE, GO_LE_CODE, GO_CHDIR, + GO_NO_WILDCARDS, + GO_IN_ORDER, GO_VS_REGION, GO_BT_REGION, GO_ALL_RANKS, diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c index da13aa2..3f48fee 100644 --- a/project/src/ui/ui-wszst.c +++ b/project/src/ui/ui-wszst.c @@ -477,6 +477,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " from more than 8 cups." }, + { OPT_9LAPS, false, false, false, false, false, 0, "9laps", + 0, + "Patch RACE*.szs files from directory .../Scene/UI/ to support 9 laps." + " See https://wiki.tockdom.com/wiki/Lap_Texture_Fix for details." + }, + { OPT_TITLE_SCREEN, false, false, false, false, false, 0, "title-screen", "dir", "Specify a directory from which to search and replace title screens." @@ -559,6 +565,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " unneeded sections is also suppressed." }, + { OPT_NO_WILDCARDS, false, false, false, false, false, 0, "no-wildcards", + 0, + "Disable wildcard parsing and use each filename exactly as specified." + }, + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", 0, "Process the input files in order of the command line and don't delete" @@ -1189,7 +1200,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 142 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 144 //----- global options ----- @@ -1467,11 +1478,18 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " The other allowed keywords are: FORCE, NEW, RM-SPCITEM, LEFT, RIGHT," " WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH, FIX-CKNEXT," " FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE, PURGE-GOBJ," - " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ... 9LAPS," - " MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT and LOG. See" + " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP .. 9LAPS," + " MAX-LAPS, RM-EMPTY, TINY-0 .. TINY-7, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kmp for details." }, + { OPT_N_LAPS, false, true, false, false, false, 0, "n-laps", + "laps", + "If LAPS is a number between 1 and 9, then ignore laps settings of" + " option --kmp (1LAP..9LAPS) and patch KMP:STGI to this number of" + " laps." + }, + { OPT_SPEED_MOD, false, false, false, false, false, 0, "speed-mod", "factor", "The speed modifier is a user extensions to change the basic speed of" @@ -1577,13 +1595,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LT_CLEAR, false, false, false, false, false, 0, "lt-clear", 0, - "Clear the LEX/TEST section and remove the section and course.lex if" - " empty. This option is executed before all other --lt-* options." + "Clear LEX sections TEST and DEV1 and remove the section and" + " course.lex if empty. This option is executed before all other --lt-*" + " options." }, { OPT_LT_ONLINE, false, false, false, false, false, 0, "lt-online", "mode", - "Set LEX/TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" + "Set LEX:TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" " AUTO (default), NEVER or ALWAYS. Only track.szs files are modified." " If needed, file course.lex and section TEST are created or removed" " if empty." @@ -1591,14 +1610,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LT_N_PLAYERS, false, false, false, false, false, 0, "lt-n-players", "offline,online", - "Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer" + "Set LEX:TEST parameters N-OFFLINE and N-ONLINE to these integer" " values. Only track.szs files are modified. If needed, file" " course.lex and section TEST are created or removed if empty." }, { OPT_LT_COND_BIT, false, false, false, false, false, 0, "lt-cond-bit", "bitnum", - "Set LEX/TEST parameter COND-BIT to this integer value. Use -1 to" + "Set LEX:TEST parameter COND-BIT to this integer value. Use -1 to" " deactivate this COND-BIT. Only track.szs files are modified. If" " needed, file course.lex and section TEST are created or removed if" " empty." @@ -1606,7 +1625,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LT_GAME_MODE, false, false, false, false, false, 0, "lt-game-mode", "mode", - "Set LEX/TEST parameter GAME-MODE to this MODE. MODE is one of AUTO" + "Set LEX:TEST parameter GAME-MODE to this MODE. MODE is one of AUTO" " (default), BALLOON, COIN, VERSUS or ITEMRAIN. Only track.szs files" " are modified. If needed, file course.lex and section TEST are" " created or removed if empty." @@ -1614,7 +1633,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LT_ENGINE, false, false, false, false, false, 0, "lt-engine", "mode", - "Set LEX/TEST parameter ENGINE to this MODE. MODE is one of AUTO" + "Set LEX:TEST parameter ENGINE to this MODE. MODE is one of AUTO" " (default), BATTLE, 50CC, 100CC, 150CC, 200CC, 150M or 200M. Only" " track.szs files are modified. If needed, file course.lex and section" " TEST are created or removed if empty." @@ -1871,7 +1890,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 225 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 228 }; @@ -2288,25 +2307,25 @@ static const InfoOption_t option_cmd_STGI_IGNORE = " too." }; -static const InfoOption_t option_cmd_ISARENA_BRIEF = +static const InfoOption_t option_cmd_IS_ARENA_IGNORE = + { OPT_IGNORE, false, false, false, false, false, 'i', "ignore", + 0, + "If set, ignore non existing source files and files without KMP" + " without warning." + }; + +static const InfoOption_t option_cmd_IS_ARENA_BRIEF = { OPT_BRIEF, false, false, false, false, false, 'B', "brief", 0, "If set, suppress the output of header and filenames." }; -static const InfoOption_t option_cmd_ISARENA_QUIET = +static const InfoOption_t option_cmd_IS_ARENA_QUIET = { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "If set, print nothing and set only the exit status." }; -static const InfoOption_t option_cmd_ISARENA_IGNORE = - { OPT_IGNORE, false, false, false, false, false, 'i', "ignore", - 0, - "If set, ignore non existing source files and files without KMP" - " without warning." - }; - static const InfoOption_t option_cmd_MINIMAP_LONG = { OPT_LONG, false, false, false, false, false, 'l', "long", 0, @@ -2456,7 +2475,7 @@ static const KeywordTab_t CommandTab[] = { CMD_CHECK, "CHECK", 0, 0 }, { CMD_SLOTS, "SLOTS", 0, 0 }, { CMD_STGI, "STGI", 0, 0 }, - { CMD_ISARENA, "ISARENA", 0, 0 }, + { CMD_IS_ARENA, "IS-ARENA", "ISARENA", 0 }, { CMD_NORMALIZE, "NORMALIZE", "NORM", 0 }, { CMD_PATCH, "PATCH", 0, 0 }, { CMD_COPY, "COPY", "CP", 0 }, @@ -2601,6 +2620,8 @@ static const struct option OptionLong[] = { "xtridata", 2, 0, GO_XTRIDATA }, { "xtri", 2, 0, GO_XTRIDATA }, { "kmp", 1, 0, GO_KMP }, + { "n-laps", 1, 0, GO_N_LAPS }, + { "nlaps", 1, 0, GO_N_LAPS }, { "speed-mod", 1, 0, GO_SPEED_MOD }, { "speedmod", 1, 0, GO_SPEED_MOD }, { "ktpt2", 1, 0, GO_KTPT2 }, @@ -2658,6 +2679,7 @@ static const struct option OptionLong[] = { "msg", 1, 0, GO_FILTER_BMG }, { "le-menu", 0, 0, GO_LE_MENU }, { "lemenu", 0, 0, GO_LE_MENU }, + { "9laps", 0, 0, GO_9LAPS }, { "title-screen", 1, 0, GO_TITLE_SCREEN }, { "titlescreen", 1, 0, GO_TITLE_SCREEN }, { "cup-icons", 1, 0, GO_CUP_ICONS }, @@ -2679,6 +2701,8 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "no-wildcards", 0, 0, GO_NO_WILDCARDS }, + { "nowildcards", 0, 0, GO_NO_WILDCARDS }, { "in-order", 0, 0, GO_IN_ORDER }, { "inorder", 0, 0, GO_IN_ORDER }, { "pipe", 0, 0, GO_PIPE }, @@ -3000,133 +3024,135 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x0bc */ OPT_FLAG_FILE, /* 0x0bd */ OPT_XTRIDATA, /* 0x0be */ OPT_KMP, - /* 0x0bf */ OPT_SPEED_MOD, - /* 0x0c0 */ OPT_KTPT2, - /* 0x0c1 */ OPT_TFORM_KMP, - /* 0x0c2 */ OPT_REPAIR_XPF, - /* 0x0c3 */ OPT_GAMEMODES, - /* 0x0c4 */ OPT_MDL, - /* 0x0c5 */ OPT_PAT, - /* 0x0c6 */ OPT_PATCH_FILE, - /* 0x0c7 */ OPT_KMG_LIMIT, - /* 0x0c8 */ OPT_KMG_COPY, - /* 0x0c9 */ OPT_LT_CLEAR, - /* 0x0ca */ OPT_LT_ONLINE, - /* 0x0cb */ OPT_LT_N_PLAYERS, - /* 0x0cc */ OPT_LT_COND_BIT, - /* 0x0cd */ OPT_LT_GAME_MODE, - /* 0x0ce */ OPT_LT_ENGINE, - /* 0x0cf */ OPT_LT_RANDOM, - /* 0x0d0 */ OPT_LEX_PURGE, - /* 0x0d1 */ OPT_LEX_FEATURES, - /* 0x0d2 */ OPT_LEX_RM_FEAT, - /* 0x0d3 */ OPT_LOAD_BMG, - /* 0x0d4 */ OPT_PATCH_BMG, - /* 0x0d5 */ OPT_MACRO_BMG, - /* 0x0d6 */ OPT_FILTER_BMG, - /* 0x0d7 */ OPT_LE_MENU, - /* 0x0d8 */ OPT_TITLE_SCREEN, - /* 0x0d9 */ OPT_CUP_ICONS, - /* 0x0da */ OPT_NO_COPY, - /* 0x0db */ OPT_CACHE, - /* 0x0dc */ OPT_CNAME, - /* 0x0dd */ OPT_LOG_CACHE, - /* 0x0de */ OPT_PARALLEL, - /* 0x0df */ OPT_ID, - /* 0x0e0 */ OPT_BASE64, - /* 0x0e1 */ OPT_DB64, - /* 0x0e2 */ OPT_CODING, - /* 0x0e3 */ OPT_VERIFY, - /* 0x0e4 */ OPT_ROUND, - /* 0x0e5 */ OPT_IN_ORDER, - /* 0x0e6 */ OPT_PIPE, - /* 0x0e7 */ OPT_DELTA, - /* 0x0e8 */ OPT_DIFF, - /* 0x0e9 */ OPT_EPSILON, - /* 0x0ea */ OPT_BMG_ENDIAN, - /* 0x0eb */ OPT_BMG_ENCODING, - /* 0x0ec */ OPT_BMG_INF_SIZE, - /* 0x0ed */ OPT_BMG_MID, - /* 0x0ee */ OPT_FORCE_ATTRIB, - /* 0x0ef */ OPT_DEF_ATTRIB, - /* 0x0f0 */ OPT_NO_ATTRIB, - /* 0x0f1 */ OPT_X_ESCAPES, - /* 0x0f2 */ OPT_OLD_ESCAPES, - /* 0x0f3 */ OPT_NO_BMG_COLORS, - /* 0x0f4 */ OPT_BMG_COLORS, - /* 0x0f5 */ OPT_NO_BMG_INLINE, - /* 0x0f6 */ OPT_AUTOADD_PATH, - /* 0x0f7 */ OPT_STRIP, - /* 0x0f8 */ OPT_UTF_8, - /* 0x0f9 */ OPT_NO_UTF_8, - /* 0x0fa */ OPT_FORCE, - /* 0x0fb */ OPT_REPAIR_MAGICS, - /* 0x0fc */ OPT_TINY, - /* 0x0fd */ OPT_YAZ0, - /* 0x0fe */ OPT_YAZ1, - /* 0x0ff */ OPT_XYZ, - /* 0x100 */ OPT_BZ, - /* 0x101 */ OPT_SH, - /* 0x102 */ OPT_BASH, - /* 0x103 */ OPT_JSON, - /* 0x104 */ OPT_PHP, - /* 0x105 */ OPT_MAKEDOC, - /* 0x106 */ OPT_VAR, - /* 0x107 */ OPT_ARRAY, - /* 0x108 */ OPT_AVAR, - /* 0x109 */ OPT_CASE, - /* 0x10a */ OPT_FMODES, - /* 0x10b */ OPT_INSTALL, - /* 0x10c */ OPT_ANALYZE, - /* 0x10d */ OPT_ANALYZE_MODE, - /* 0x10e */ OPT_OLD, - /* 0x10f */ OPT_STD, - /* 0x110 */ OPT_NEW, - /* 0x111 */ OPT_EXTRACT, - /* 0x112 */ OPT_REFERENCE, - /* 0x113 */ OPT_NUMBER, - /* 0x114 */ OPT_REMOVE_SRC, - /* 0x115 */ OPT_IGNORE_SETUP, - /* 0x116 */ OPT_PURGE, - /* 0x117 */ OPT_ALIGN_U8, - /* 0x118 */ OPT_ALIGN_PACK, - /* 0x119 */ OPT_ALIGN_BRRES, - /* 0x11a */ OPT_ALIGN_BREFF, - /* 0x11b */ OPT_ALIGN_BREFT, - /* 0x11c */ OPT_ALIGN, - /* 0x11d */ OPT_ENCODE_ALL, - /* 0x11e */ OPT_ENCODE_IMG, - /* 0x11f */ OPT_NO_ENCODE, - /* 0x120 */ OPT_NO_RECURSE, - /* 0x121 */ OPT_AUTO_ADD, - /* 0x122 */ OPT_NO_ECHO, - /* 0x123 */ OPT_PT_DIR, - /* 0x124 */ OPT_RM_AIPARAM, - /* 0x125 */ OPT_U8, - /* 0x126 */ OPT_SZS, - /* 0x127 */ OPT_WU8, - /* 0x128 */ OPT_XWU8, - /* 0x129 */ OPT_WBZ, - /* 0x12a */ OPT_PACK, - /* 0x12b */ OPT_BRRES, - /* 0x12c */ OPT_BREFF, - /* 0x12d */ OPT_BREFT, - /* 0x12e */ OPT_NO_COMPRESS, - /* 0x12f */ OPT_FAST, - /* 0x130 */ OPT_LINKS, - /* 0x131 */ OPT_BASEDIR, - /* 0x132 */ OPT_DECODE, - /* 0x133 */ OPT_MIPMAPS, - /* 0x134 */ OPT_NO_MIPMAPS, - /* 0x135 */ OPT_N_MIPMAPS, - /* 0x136 */ OPT_MAX_MIPMAPS, - /* 0x137 */ OPT_MIPMAP_SIZE, - /* 0x138 */ OPT_FAST_MIPMAPS, - /* 0x139 */ OPT_CMPR_DEFAULT, - /* 0x13a */ OPT_CUT, - /* 0x13b */ OPT_RAW, - /* 0x13c */ OPT_SECTIONS, - /* 0x13d */ 0,0,0, + /* 0x0bf */ OPT_N_LAPS, + /* 0x0c0 */ OPT_SPEED_MOD, + /* 0x0c1 */ OPT_KTPT2, + /* 0x0c2 */ OPT_TFORM_KMP, + /* 0x0c3 */ OPT_REPAIR_XPF, + /* 0x0c4 */ OPT_GAMEMODES, + /* 0x0c5 */ OPT_MDL, + /* 0x0c6 */ OPT_PAT, + /* 0x0c7 */ OPT_PATCH_FILE, + /* 0x0c8 */ OPT_KMG_LIMIT, + /* 0x0c9 */ OPT_KMG_COPY, + /* 0x0ca */ OPT_LT_CLEAR, + /* 0x0cb */ OPT_LT_ONLINE, + /* 0x0cc */ OPT_LT_N_PLAYERS, + /* 0x0cd */ OPT_LT_COND_BIT, + /* 0x0ce */ OPT_LT_GAME_MODE, + /* 0x0cf */ OPT_LT_ENGINE, + /* 0x0d0 */ OPT_LT_RANDOM, + /* 0x0d1 */ OPT_LEX_PURGE, + /* 0x0d2 */ OPT_LEX_FEATURES, + /* 0x0d3 */ OPT_LEX_RM_FEAT, + /* 0x0d4 */ OPT_LOAD_BMG, + /* 0x0d5 */ OPT_PATCH_BMG, + /* 0x0d6 */ OPT_MACRO_BMG, + /* 0x0d7 */ OPT_FILTER_BMG, + /* 0x0d8 */ OPT_LE_MENU, + /* 0x0d9 */ OPT_9LAPS, + /* 0x0da */ OPT_TITLE_SCREEN, + /* 0x0db */ OPT_CUP_ICONS, + /* 0x0dc */ OPT_NO_COPY, + /* 0x0dd */ OPT_CACHE, + /* 0x0de */ OPT_CNAME, + /* 0x0df */ OPT_LOG_CACHE, + /* 0x0e0 */ OPT_PARALLEL, + /* 0x0e1 */ OPT_ID, + /* 0x0e2 */ OPT_BASE64, + /* 0x0e3 */ OPT_DB64, + /* 0x0e4 */ OPT_CODING, + /* 0x0e5 */ OPT_VERIFY, + /* 0x0e6 */ OPT_ROUND, + /* 0x0e7 */ OPT_NO_WILDCARDS, + /* 0x0e8 */ OPT_IN_ORDER, + /* 0x0e9 */ OPT_PIPE, + /* 0x0ea */ OPT_DELTA, + /* 0x0eb */ OPT_DIFF, + /* 0x0ec */ OPT_EPSILON, + /* 0x0ed */ OPT_BMG_ENDIAN, + /* 0x0ee */ OPT_BMG_ENCODING, + /* 0x0ef */ OPT_BMG_INF_SIZE, + /* 0x0f0 */ OPT_BMG_MID, + /* 0x0f1 */ OPT_FORCE_ATTRIB, + /* 0x0f2 */ OPT_DEF_ATTRIB, + /* 0x0f3 */ OPT_NO_ATTRIB, + /* 0x0f4 */ OPT_X_ESCAPES, + /* 0x0f5 */ OPT_OLD_ESCAPES, + /* 0x0f6 */ OPT_NO_BMG_COLORS, + /* 0x0f7 */ OPT_BMG_COLORS, + /* 0x0f8 */ OPT_NO_BMG_INLINE, + /* 0x0f9 */ OPT_AUTOADD_PATH, + /* 0x0fa */ OPT_STRIP, + /* 0x0fb */ OPT_UTF_8, + /* 0x0fc */ OPT_NO_UTF_8, + /* 0x0fd */ OPT_FORCE, + /* 0x0fe */ OPT_REPAIR_MAGICS, + /* 0x0ff */ OPT_TINY, + /* 0x100 */ OPT_YAZ0, + /* 0x101 */ OPT_YAZ1, + /* 0x102 */ OPT_XYZ, + /* 0x103 */ OPT_BZ, + /* 0x104 */ OPT_SH, + /* 0x105 */ OPT_BASH, + /* 0x106 */ OPT_JSON, + /* 0x107 */ OPT_PHP, + /* 0x108 */ OPT_MAKEDOC, + /* 0x109 */ OPT_VAR, + /* 0x10a */ OPT_ARRAY, + /* 0x10b */ OPT_AVAR, + /* 0x10c */ OPT_CASE, + /* 0x10d */ OPT_FMODES, + /* 0x10e */ OPT_INSTALL, + /* 0x10f */ OPT_ANALYZE, + /* 0x110 */ OPT_ANALYZE_MODE, + /* 0x111 */ OPT_OLD, + /* 0x112 */ OPT_STD, + /* 0x113 */ OPT_NEW, + /* 0x114 */ OPT_EXTRACT, + /* 0x115 */ OPT_REFERENCE, + /* 0x116 */ OPT_NUMBER, + /* 0x117 */ OPT_REMOVE_SRC, + /* 0x118 */ OPT_IGNORE_SETUP, + /* 0x119 */ OPT_PURGE, + /* 0x11a */ OPT_ALIGN_U8, + /* 0x11b */ OPT_ALIGN_PACK, + /* 0x11c */ OPT_ALIGN_BRRES, + /* 0x11d */ OPT_ALIGN_BREFF, + /* 0x11e */ OPT_ALIGN_BREFT, + /* 0x11f */ OPT_ALIGN, + /* 0x120 */ OPT_ENCODE_ALL, + /* 0x121 */ OPT_ENCODE_IMG, + /* 0x122 */ OPT_NO_ENCODE, + /* 0x123 */ OPT_NO_RECURSE, + /* 0x124 */ OPT_AUTO_ADD, + /* 0x125 */ OPT_NO_ECHO, + /* 0x126 */ OPT_PT_DIR, + /* 0x127 */ OPT_RM_AIPARAM, + /* 0x128 */ OPT_U8, + /* 0x129 */ OPT_SZS, + /* 0x12a */ OPT_WU8, + /* 0x12b */ OPT_XWU8, + /* 0x12c */ OPT_WBZ, + /* 0x12d */ OPT_PACK, + /* 0x12e */ OPT_BRRES, + /* 0x12f */ OPT_BREFF, + /* 0x130 */ OPT_BREFT, + /* 0x131 */ OPT_NO_COMPRESS, + /* 0x132 */ OPT_FAST, + /* 0x133 */ OPT_LINKS, + /* 0x134 */ OPT_BASEDIR, + /* 0x135 */ OPT_DECODE, + /* 0x136 */ OPT_MIPMAPS, + /* 0x137 */ OPT_NO_MIPMAPS, + /* 0x138 */ OPT_N_MIPMAPS, + /* 0x139 */ OPT_MAX_MIPMAPS, + /* 0x13a */ OPT_MIPMAP_SIZE, + /* 0x13b */ OPT_FAST_MIPMAPS, + /* 0x13c */ OPT_CMPR_DEFAULT, + /* 0x13d */ OPT_CUT, + /* 0x13e */ OPT_RAW, + /* 0x13f */ OPT_SECTIONS, }; // @@ -3134,742 +3160,742 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[142] = // cmd #1 +static u8 option_allowed_cmd_VERSION[144] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_HELP[142] = // cmd #2 +static u8 option_allowed_cmd_HELP[144] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[142] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[144] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_INSTALL[142] = // cmd #4 +static u8 option_allowed_cmd_INSTALL[144] = // cmd #4 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[142] = // cmd #5 +static u8 option_allowed_cmd_ARGTEST[144] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_EXPAND[142] = // cmd #6 +static u8 option_allowed_cmd_EXPAND[144] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_WILDCARDS[142] = // cmd #7 +static u8 option_allowed_cmd_WILDCARDS[144] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_TEST[142] = // cmd #8 +static u8 option_allowed_cmd_TEST[144] = // cmd #8 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[142] = // cmd #9 +static u8 option_allowed_cmd_COLORS[144] = // cmd #9 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[142] = // cmd #10 +static u8 option_allowed_cmd_ERROR[144] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[142] = // cmd #11 +static u8 option_allowed_cmd_FILETYPE[144] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_UI_CHECK[142] = // cmd #12 +static u8 option_allowed_cmd_UI_CHECK[144] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[142] = // cmd #13 +static u8 option_allowed_cmd_FILEATTRIB[144] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_BRSUB[142] = // cmd #14 +static u8 option_allowed_cmd_BRSUB[144] = // cmd #14 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[142] = // cmd #15 +static u8 option_allowed_cmd_SYMBOLS[144] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[142] = // cmd #16 +static u8 option_allowed_cmd_FUNCTIONS[144] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[142] = // cmd #17 +static u8 option_allowed_cmd_CALCULATE[144] = // cmd #17 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_MATRIX[142] = // cmd #18 +static u8 option_allowed_cmd_MATRIX[144] = // cmd #18 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[142] = // cmd #19 +static u8 option_allowed_cmd_FLOAT[144] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_VR_CALC[142] = // cmd #20 +static u8 option_allowed_cmd_VR_CALC[144] = // cmd #20 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_VR_RACE[142] = // cmd #21 +static u8 option_allowed_cmd_VR_RACE[144] = // cmd #21 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_AUTOADD[142] = // cmd #22 +static u8 option_allowed_cmd_AUTOADD[144] = // cmd #22 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,1, - 0,0,1,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,0,0,1, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_TRACKS[142] = // cmd #23 +static u8 option_allowed_cmd_TRACKS[144] = // cmd #23 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0 }; -static u8 option_allowed_cmd_SCANCACHE[142] = // cmd #24 +static u8 option_allowed_cmd_SCANCACHE[144] = // cmd #24 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[142] = // cmd #25 +static u8 option_allowed_cmd_EXPORT[144] = // cmd #25 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SIZEOF[142] = // cmd #26 +static u8 option_allowed_cmd_SIZEOF[144] = // cmd #26 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CODE[142] = // cmd #27 +static u8 option_allowed_cmd_CODE[144] = // cmd #27 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_RECODE[142] = // cmd #28 +static u8 option_allowed_cmd_RECODE[144] = // cmd #28 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SUBFILE[142] = // cmd #29 +static u8 option_allowed_cmd_SUBFILE[144] = // cmd #29 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_TESTNORM[142] = // cmd #30 +static u8 option_allowed_cmd_TESTNORM[144] = // cmd #30 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_LIST[142] = // cmd #31 +static u8 option_allowed_cmd_LIST[144] = // cmd #31 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_LIST_L[142] = // cmd #32 +static u8 option_allowed_cmd_LIST_L[144] = // cmd #32 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LL[142] = // cmd #33 +static u8 option_allowed_cmd_LIST_LL[144] = // cmd #33 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LLL[142] = // cmd #34 +static u8 option_allowed_cmd_LIST_LLL[144] = // cmd #34 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_LIST_A[142] = // cmd #35 +static u8 option_allowed_cmd_LIST_A[144] = // cmd #35 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LA[142] = // cmd #36 +static u8 option_allowed_cmd_LIST_LA[144] = // cmd #36 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_NAME_REF[142] = // cmd #37 +static u8 option_allowed_cmd_NAME_REF[144] = // cmd #37 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ILIST[142] = // cmd #38 +static u8 option_allowed_cmd_ILIST[144] = // cmd #38 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_L[142] = // cmd #39 +static u8 option_allowed_cmd_ILIST_L[144] = // cmd #39 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_LL[142] = // cmd #40 +static u8 option_allowed_cmd_ILIST_LL[144] = // cmd #40 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_A[142] = // cmd #41 +static u8 option_allowed_cmd_ILIST_A[144] = // cmd #41 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_LA[142] = // cmd #42 +static u8 option_allowed_cmd_ILIST_LA[144] = // cmd #42 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_MEMORY[142] = // cmd #43 +static u8 option_allowed_cmd_MEMORY[144] = // cmd #43 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_MEMORY_A[142] = // cmd #44 +static u8 option_allowed_cmd_MEMORY_A[144] = // cmd #44 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0 }; -static u8 option_allowed_cmd_DUMP[142] = // cmd #45 +static u8 option_allowed_cmd_DUMP[144] = // cmd #45 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_SHA1[142] = // cmd #46 +static u8 option_allowed_cmd_SHA1[144] = // cmd #46 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_ANALYZE[142] = // cmd #47 +static u8 option_allowed_cmd_ANALYZE[144] = // cmd #47 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_SPLIT[142] = // cmd #48 +static u8 option_allowed_cmd_SPLIT[144] = // cmd #48 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_IS_TEXTURE[142] = // cmd #49 +static u8 option_allowed_cmd_IS_TEXTURE[144] = // cmd #49 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FEATURES[142] = // cmd #50 +static u8 option_allowed_cmd_FEATURES[144] = // cmd #50 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,1,1,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_DISTRIBUTION[142] = // cmd #51 +static u8 option_allowed_cmd_DISTRIBUTION[144] = // cmd #51 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,1,1,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_DIFF[142] = // cmd #52 +static u8 option_allowed_cmd_DIFF[144] = // cmd #52 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,1,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 1,1,0,0 }; -static u8 option_allowed_cmd_CHECK[142] = // cmd #53 +static u8 option_allowed_cmd_CHECK[144] = // cmd #53 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,1, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 1,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,0,1,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_SLOTS[142] = // cmd #54 +static u8 option_allowed_cmd_SLOTS[144] = // cmd #54 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,0, 0,0,0,1,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_STGI[142] = // cmd #55 +static u8 option_allowed_cmd_STGI[144] = // cmd #55 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ISARENA[142] = // cmd #56 +static u8 option_allowed_cmd_IS_ARENA[144] = // cmd #56 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_NORMALIZE[142] = // cmd #57 +static u8 option_allowed_cmd_NORMALIZE[144] = // cmd #57 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, - 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, + 0,0,0,0,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_PATCH[142] = // cmd #58 +static u8 option_allowed_cmd_PATCH[144] = // cmd #58 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, - 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, + 0,0,0,0,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_COPY[142] = // cmd #59 +static u8 option_allowed_cmd_COPY[144] = // cmd #59 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, - 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, + 0,0,0,0,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DUPLICATE[142] = // cmd #60 +static u8 option_allowed_cmd_DUPLICATE[144] = // cmd #60 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, - 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, + 0,0,0,0,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_MINIMAP[142] = // cmd #61 +static u8 option_allowed_cmd_MINIMAP[144] = // cmd #61 { 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,0,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,1, 0,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 0,0,0,0,0, + 0,0,0,0,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_COMPRESS[142] = // cmd #62 +static u8 option_allowed_cmd_COMPRESS[144] = // cmd #62 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, - 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, + 0,0,0,0,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DECOMPRESS[142] = // cmd #63 +static u8 option_allowed_cmd_DECOMPRESS[144] = // cmd #63 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,0, 1,0,0,0,0, - 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,1,1, 1,1,1,0,0, 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ENCODE[142] = // cmd #64 +static u8 option_allowed_cmd_ENCODE[144] = // cmd #64 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,0,1,1, 1,1,1,1,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_CREATE[142] = // cmd #65 +static u8 option_allowed_cmd_CREATE[144] = // cmd #65 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 0,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,1,1,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,1, 1,1,0,1,0, 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 }; -static u8 option_allowed_cmd_UPDATE[142] = // cmd #66 +static u8 option_allowed_cmd_UPDATE[144] = // cmd #66 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,1,1,1, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,1,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 0,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,1, 1,1,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,1,0,0 }; -static u8 option_allowed_cmd_EXTRACT[142] = // cmd #67 +static u8 option_allowed_cmd_EXTRACT[144] = // cmd #67 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,1, 1,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_XDECODE[142] = // cmd #68 +static u8 option_allowed_cmd_XDECODE[144] = // cmd #68 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,1, 1,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_XEXPORT[142] = // cmd #69 +static u8 option_allowed_cmd_XEXPORT[144] = // cmd #69 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,1, 1,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_XALL[142] = // cmd #70 +static u8 option_allowed_cmd_XALL[144] = // cmd #70 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,1, 1,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_XCOMMON[142] = // cmd #71 +static u8 option_allowed_cmd_XCOMMON[144] = // cmd #71 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_BINARY[142] = // cmd #72 +static u8 option_allowed_cmd_BINARY[144] = // cmd #72 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_TEXT[142] = // cmd #73 +static u8 option_allowed_cmd_TEXT[144] = // cmd #73 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1, - 1,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CAT[142] = // cmd #74 +static u8 option_allowed_cmd_CAT[144] = // cmd #74 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1, - 1,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_BMG[142] = // cmd #75 +static u8 option_allowed_cmd_BMG[144] = // cmd #75 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, - 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_KCL[142] = // cmd #76 +static u8 option_allowed_cmd_KCL[144] = // cmd #76 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_KMP[142] = // cmd #77 +static u8 option_allowed_cmd_KMP[144] = // cmd #77 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_LEX[142] = // cmd #78 +static u8 option_allowed_cmd_LEX[144] = // cmd #78 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_INFO[142] = // cmd #79 +static u8 option_allowed_cmd_INFO[144] = // cmd #79 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_GHOST[142] = // cmd #80 +static u8 option_allowed_cmd_GHOST[144] = // cmd #80 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_YAZDUMP[142] = // cmd #81 +static u8 option_allowed_cmd_YAZDUMP[144] = // cmd #81 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, - 1,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 1,1,1,0,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_VEHICLE[142] = // cmd #82 +static u8 option_allowed_cmd_VEHICLE[144] = // cmd #82 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,0,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,1, + 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; @@ -4009,6 +4035,9 @@ static const InfoOption_t * option_tab_cmd_CONFIG[] = static const InfoOption_t * option_tab_cmd_INSTALL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, 0 }; @@ -4027,8 +4056,9 @@ static const InfoOption_t * option_tab_cmd_EXPAND[] = static const InfoOption_t * option_tab_cmd_WILDCARDS[] = { - OptionInfo + OPT_IGNORE, + OptionInfo + OPT_NO_WILDCARDS, OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, 0 }; @@ -4062,19 +4092,22 @@ static const InfoOption_t * option_tab_cmd_ERROR[] = static const InfoOption_t * option_tab_cmd_FILETYPE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, &option_cmd_FILETYPE_LONG, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_UI_CHECK[] = { - &option_cmd_UI_CHECK_LONG, - OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_NO_WILDCARDS, OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + &option_cmd_UI_CHECK_LONG, + OptionInfo + OPT_NO_HEADER, 0 }; @@ -4171,7 +4204,12 @@ static const InfoOption_t * option_tab_cmd_VR_RACE[] = static const InfoOption_t * option_tab_cmd_AUTOADD[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_AUTOADD_QUIET, &option_cmd_AUTOADD_VERBOSE, &option_cmd_AUTOADD_DEST, @@ -4223,6 +4261,9 @@ static const InfoOption_t * option_tab_cmd_SIZEOF[] = static const InfoOption_t * option_tab_cmd_CODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, 0 }; @@ -4258,14 +4299,19 @@ static const InfoOption_t * option_tab_cmd_TESTNORM[] = static const InfoOption_t * option_tab_cmd_LIST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4315,7 +4361,6 @@ static const InfoOption_t * option_tab_cmd_LIST[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4324,14 +4369,19 @@ static const InfoOption_t * option_tab_cmd_LIST[] = static const InfoOption_t * option_tab_cmd_LIST_L[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4381,7 +4431,6 @@ static const InfoOption_t * option_tab_cmd_LIST_L[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4390,14 +4439,19 @@ static const InfoOption_t * option_tab_cmd_LIST_L[] = static const InfoOption_t * option_tab_cmd_LIST_LL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4447,7 +4501,6 @@ static const InfoOption_t * option_tab_cmd_LIST_LL[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4456,14 +4509,19 @@ static const InfoOption_t * option_tab_cmd_LIST_LL[] = static const InfoOption_t * option_tab_cmd_LIST_LLL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4513,7 +4571,6 @@ static const InfoOption_t * option_tab_cmd_LIST_LLL[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4522,14 +4579,19 @@ static const InfoOption_t * option_tab_cmd_LIST_LLL[] = static const InfoOption_t * option_tab_cmd_LIST_A[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4579,7 +4641,6 @@ static const InfoOption_t * option_tab_cmd_LIST_A[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4588,14 +4649,19 @@ static const InfoOption_t * option_tab_cmd_LIST_A[] = static const InfoOption_t * option_tab_cmd_LIST_LA[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, - OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4645,7 +4711,6 @@ static const InfoOption_t * option_tab_cmd_LIST_LA[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -4663,7 +4728,13 @@ static const InfoOption_t * option_tab_cmd_NAME_REF[] = static const InfoOption_t * option_tab_cmd_ILIST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ALL, &option_cmd_ILIST_LONG, OptionInfo + OPT_SORT, @@ -4717,7 +4788,6 @@ static const InfoOption_t * option_tab_cmd_ILIST[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -4725,7 +4795,13 @@ static const InfoOption_t * option_tab_cmd_ILIST[] = static const InfoOption_t * option_tab_cmd_ILIST_L[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ALL, &option_cmd_ILIST_LONG, OptionInfo + OPT_SORT, @@ -4779,7 +4855,6 @@ static const InfoOption_t * option_tab_cmd_ILIST_L[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -4787,7 +4862,13 @@ static const InfoOption_t * option_tab_cmd_ILIST_L[] = static const InfoOption_t * option_tab_cmd_ILIST_LL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ALL, &option_cmd_ILIST_LONG, OptionInfo + OPT_SORT, @@ -4841,7 +4922,6 @@ static const InfoOption_t * option_tab_cmd_ILIST_LL[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -4849,7 +4929,13 @@ static const InfoOption_t * option_tab_cmd_ILIST_LL[] = static const InfoOption_t * option_tab_cmd_ILIST_A[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ALL, &option_cmd_ILIST_LONG, OptionInfo + OPT_SORT, @@ -4903,7 +4989,6 @@ static const InfoOption_t * option_tab_cmd_ILIST_A[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -4911,7 +4996,13 @@ static const InfoOption_t * option_tab_cmd_ILIST_A[] = static const InfoOption_t * option_tab_cmd_ILIST_LA[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ALL, &option_cmd_ILIST_LONG, OptionInfo + OPT_SORT, @@ -4965,7 +5056,6 @@ static const InfoOption_t * option_tab_cmd_ILIST_LA[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -4973,7 +5063,13 @@ static const InfoOption_t * option_tab_cmd_ILIST_LA[] = static const InfoOption_t * option_tab_cmd_MEMORY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, &option_cmd_MEMORY_DECODE, &option_cmd_MEMORY_MIPMAPS, @@ -5031,7 +5127,6 @@ static const InfoOption_t * option_tab_cmd_MEMORY[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -5040,7 +5135,13 @@ static const InfoOption_t * option_tab_cmd_MEMORY[] = static const InfoOption_t * option_tab_cmd_MEMORY_A[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_RECURSE, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_EXT, &option_cmd_MEMORY_DECODE, &option_cmd_MEMORY_MIPMAPS, @@ -5098,7 +5199,6 @@ static const InfoOption_t * option_tab_cmd_MEMORY_A[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_SLOT, @@ -5107,6 +5207,12 @@ static const InfoOption_t * option_tab_cmd_MEMORY_A[] = static const InfoOption_t * option_tab_cmd_DUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -5157,7 +5263,6 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = OptionInfo + OPT_MIPMAP_SIZE, OptionInfo + OPT_FAST_MIPMAPS, OptionInfo + OPT_CMPR_DEFAULT, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, 0 @@ -5165,7 +5270,13 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = static const InfoOption_t * option_tab_cmd_SHA1[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_RECURSE, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, OptionInfo + OPT_IGNORE_SETUP, @@ -5230,8 +5341,13 @@ static const InfoOption_t * option_tab_cmd_SHA1[] = static const InfoOption_t * option_tab_cmd_ANALYZE[] = { - &option_cmd_ANALYZE_LONG, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + + &option_cmd_ANALYZE_LONG, &option_cmd_ANALYZE_QUIET, OptionInfo + OPT_NONE, // separator @@ -5258,6 +5374,12 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = static const InfoOption_t * option_tab_cmd_SPLIT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LOAD_PREFIX, OptionInfo + OPT_LOAD_CATEGORY, OptionInfo + OPT_PLUS, @@ -5266,10 +5388,6 @@ static const InfoOption_t * option_tab_cmd_SPLIT[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, - - OptionInfo + OPT_NONE, // separator - &option_grp_SCRIPT_SECTIONS, OptionInfo + OPT_SH, OptionInfo + OPT_BASH, @@ -5291,7 +5409,12 @@ static const InfoOption_t * option_tab_cmd_SPLIT[] = static const InfoOption_t * option_tab_cmd_IS_TEXTURE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_REFERENCE, OptionInfo + OPT_BATTLE, &option_cmd_IS_TEXTURE_LONG, @@ -5301,9 +5424,14 @@ static const InfoOption_t * option_tab_cmd_IS_TEXTURE[] = static const InfoOption_t * option_tab_cmd_FEATURES[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_FEATURES_BRIEF, &option_cmd_FEATURES_LONG, - OptionInfo + OPT_IGNORE, &option_cmd_FEATURES_QUIET, OptionInfo + OPT_NONE, // separator @@ -5330,7 +5458,12 @@ static const InfoOption_t * option_tab_cmd_FEATURES[] = static const InfoOption_t * option_tab_cmd_DISTRIBUTION[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, OptionInfo + OPT_IGNORE_SETUP, @@ -5404,8 +5537,13 @@ static const InfoOption_t * option_tab_cmd_DIFF[] = static const InfoOption_t * option_tab_cmd_CHECK[] = { - &option_cmd_CHECK_NO_CHECK, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + + &option_cmd_CHECK_NO_CHECK, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, &option_cmd_CHECK_BRIEF, @@ -5511,6 +5649,7 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -5519,7 +5658,12 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = static const InfoOption_t * option_tab_cmd_SLOTS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_SLOTS_BRIEF, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, @@ -5622,6 +5766,7 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -5630,28 +5775,44 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = static const InfoOption_t * option_tab_cmd_STGI[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + &option_cmd_STGI_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_NO_HEADER, - &option_cmd_STGI_IGNORE, 0 }; -static const InfoOption_t * option_tab_cmd_ISARENA[] = +static const InfoOption_t * option_tab_cmd_IS_ARENA[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + &option_cmd_IS_ARENA_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_NO_HEADER, - &option_cmd_ISARENA_BRIEF, - &option_cmd_ISARENA_QUIET, - &option_cmd_ISARENA_IGNORE, + &option_cmd_IS_ARENA_BRIEF, + &option_cmd_IS_ARENA_QUIET, 0 }; static const InfoOption_t * option_tab_cmd_NORMALIZE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -5677,7 +5838,6 @@ static const InfoOption_t * option_tab_cmd_NORMALIZE[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, OptionInfo + OPT_ALIGN_U8, @@ -5741,6 +5901,7 @@ static const InfoOption_t * option_tab_cmd_NORMALIZE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -5749,6 +5910,12 @@ static const InfoOption_t * option_tab_cmd_NORMALIZE[] = static const InfoOption_t * option_tab_cmd_PATCH[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -5775,7 +5942,6 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, OptionInfo + OPT_COMPRESS, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, @@ -5840,6 +6006,7 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -5848,6 +6015,12 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = static const InfoOption_t * option_tab_cmd_COPY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -5874,7 +6047,6 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, OptionInfo + OPT_COMPRESS, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, @@ -5939,6 +6111,7 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -5948,6 +6121,12 @@ static const InfoOption_t * option_tab_cmd_COPY[] = static const InfoOption_t * option_tab_cmd_DUPLICATE[] = { OptionInfo + OPT_GAMEMODES, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -5974,7 +6153,6 @@ static const InfoOption_t * option_tab_cmd_DUPLICATE[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, OptionInfo + OPT_COMPRESS, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, @@ -6039,6 +6217,7 @@ static const InfoOption_t * option_tab_cmd_DUPLICATE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6047,10 +6226,15 @@ static const InfoOption_t * option_tab_cmd_DUPLICATE[] = static const InfoOption_t * option_tab_cmd_MINIMAP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_MINIMAP_LONG, OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_PRESERVE, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_COMPRESS, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, @@ -6102,6 +6286,12 @@ static const InfoOption_t * option_tab_cmd_MINIMAP[] = static const InfoOption_t * option_tab_cmd_COMPRESS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6127,7 +6317,6 @@ static const InfoOption_t * option_tab_cmd_COMPRESS[] = OptionInfo + OPT_NONE, // separator - OptionInfo + OPT_IGNORE, OptionInfo + OPT_COMPRESS, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, @@ -6192,6 +6381,7 @@ static const InfoOption_t * option_tab_cmd_COMPRESS[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6200,6 +6390,12 @@ static const InfoOption_t * option_tab_cmd_COMPRESS[] = static const InfoOption_t * option_tab_cmd_DECOMPRESS[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6217,7 +6413,6 @@ static const InfoOption_t * option_tab_cmd_DECOMPRESS[] = OptionInfo + OPT_U8, OptionInfo + OPT_WU8, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_NORM, OptionInfo + OPT_LINKS, OptionInfo + OPT_ALIGN_U8, @@ -6280,6 +6475,7 @@ static const InfoOption_t * option_tab_cmd_DECOMPRESS[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6288,6 +6484,12 @@ static const InfoOption_t * option_tab_cmd_DECOMPRESS[] = static const InfoOption_t * option_tab_cmd_ENCODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_ALIGN_U8, OptionInfo + OPT_ALIGN_PACK, @@ -6371,6 +6573,7 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6379,6 +6582,12 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = static const InfoOption_t * option_tab_cmd_CREATE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6494,6 +6703,7 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6502,8 +6712,13 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = static const InfoOption_t * option_tab_cmd_UPDATE[] = { - OptionInfo + OPT_SOURCE, + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_SOURCE, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6585,6 +6800,7 @@ static const InfoOption_t * option_tab_cmd_UPDATE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6593,6 +6809,12 @@ static const InfoOption_t * option_tab_cmd_UPDATE[] = static const InfoOption_t * option_tab_cmd_EXTRACT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6615,7 +6837,6 @@ static const InfoOption_t * option_tab_cmd_EXTRACT[] = OptionInfo + OPT_CMPR_DEFAULT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_DELTA, @@ -6675,6 +6896,7 @@ static const InfoOption_t * option_tab_cmd_EXTRACT[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6683,6 +6905,12 @@ static const InfoOption_t * option_tab_cmd_EXTRACT[] = static const InfoOption_t * option_tab_cmd_XDECODE[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6705,7 +6933,6 @@ static const InfoOption_t * option_tab_cmd_XDECODE[] = OptionInfo + OPT_CMPR_DEFAULT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_DELTA, @@ -6765,6 +6992,7 @@ static const InfoOption_t * option_tab_cmd_XDECODE[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6773,6 +7001,12 @@ static const InfoOption_t * option_tab_cmd_XDECODE[] = static const InfoOption_t * option_tab_cmd_XEXPORT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6795,7 +7029,6 @@ static const InfoOption_t * option_tab_cmd_XEXPORT[] = OptionInfo + OPT_CMPR_DEFAULT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_DELTA, @@ -6855,6 +7088,7 @@ static const InfoOption_t * option_tab_cmd_XEXPORT[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6863,6 +7097,12 @@ static const InfoOption_t * option_tab_cmd_XEXPORT[] = static const InfoOption_t * option_tab_cmd_XALL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6885,7 +7125,6 @@ static const InfoOption_t * option_tab_cmd_XALL[] = OptionInfo + OPT_CMPR_DEFAULT, OptionInfo + OPT_CUT, OptionInfo + OPT_ALL, - OptionInfo + OPT_IGNORE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_DELTA, @@ -6945,6 +7184,7 @@ static const InfoOption_t * option_tab_cmd_XALL[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -6953,6 +7193,12 @@ static const InfoOption_t * option_tab_cmd_XALL[] = static const InfoOption_t * option_tab_cmd_XCOMMON[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6964,16 +7210,20 @@ static const InfoOption_t * option_tab_cmd_XCOMMON[] = OptionInfo + OPT_OVERWRITE, OptionInfo + OPT_NUMBER, OptionInfo + OPT_REMOVE_DEST, - OptionInfo + OPT_IGNORE, 0 }; static const InfoOption_t * option_tab_cmd_BINARY[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_KMG_LIMIT, OptionInfo + OPT_KMG_COPY, - OptionInfo + OPT_IGNORE, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -6991,7 +7241,12 @@ static const InfoOption_t * option_tab_cmd_BINARY[] = static const InfoOption_t * option_tab_cmd_TEXT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DECODE, OptionInfo + OPT_KMG_LIMIT, OptionInfo + OPT_KMG_COPY, @@ -7035,7 +7290,12 @@ static const InfoOption_t * option_tab_cmd_TEXT[] = static const InfoOption_t * option_tab_cmd_CAT[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DECODE, &option_grp_TEXTOUT_NO_HEADER, OptionInfo + OPT_BRIEF, @@ -7063,7 +7323,12 @@ static const InfoOption_t * option_tab_cmd_CAT[] = static const InfoOption_t * option_tab_cmd_BMG[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_BMG_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_BMG_ENDIAN, @@ -7087,7 +7352,12 @@ static const InfoOption_t * option_tab_cmd_BMG[] = static const InfoOption_t * option_tab_cmd_KCL[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_KCL_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_NO_PARAM, @@ -7143,6 +7413,7 @@ static const InfoOption_t * option_tab_cmd_KCL[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -7151,7 +7422,12 @@ static const InfoOption_t * option_tab_cmd_KCL[] = static const InfoOption_t * option_tab_cmd_KMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_KMP_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -7208,6 +7484,7 @@ static const InfoOption_t * option_tab_cmd_KMP[] = OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_9LAPS, OptionInfo + OPT_TITLE_SCREEN, OptionInfo + OPT_CUP_ICONS, @@ -7216,7 +7493,12 @@ static const InfoOption_t * option_tab_cmd_KMP[] = static const InfoOption_t * option_tab_cmd_LEX[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_LEX_NO_HEADER, OptionInfo + OPT_BRIEF, OptionInfo + OPT_EXPORT, @@ -7226,6 +7508,8 @@ static const InfoOption_t * option_tab_cmd_LEX[] = static const InfoOption_t * option_tab_cmd_INFO[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, &option_cmd_INFO_NO_HEADER, @@ -7234,7 +7518,12 @@ static const InfoOption_t * option_tab_cmd_INFO[] = static const InfoOption_t * option_tab_cmd_GHOST[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + &option_cmd_GHOST_NO_HEADER, OptionInfo + OPT_NONE, // separator @@ -7260,6 +7549,12 @@ static const InfoOption_t * option_tab_cmd_GHOST[] = static const InfoOption_t * option_tab_cmd_YAZDUMP[] = { + OptionInfo + OPT_NO_WILDCARDS, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, OptionInfo + OPT_ESC, @@ -7374,10 +7669,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "INSTALL", 0, "wszst INSTALL [file]...", - "Install files to the shared directory. Use 'wszst CONFIG' to list" - " related pathes.", - 0, + "Install files to the shared directory. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details. Use" + " 'wszst CONFIG' to list related pathes.", 0, + 3, option_tab_cmd_INSTALL, option_allowed_cmd_INSTALL }, @@ -7407,10 +7703,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This debug command accepts (like ARGTEST) all kinds of parameters and" " prints one line for each parameter. After that, the parameter is" " treated as a filename with wildcards and all matching files are" - " searched. The special parameters '+h' and '_h' enable or disable the" - " search for hidden directories and files (files beginning with a" - " point) for the following parameters. All tools know the EXPAND" - " command.", + " searched. All tools know the EXPAND command.", 0, 0, option_tab_cmd_EXPAND, @@ -7424,15 +7717,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "WILDCARDS", 0, "wszst WILDCARDS pattern...", - " Each parameter is treated as a filename. Wildcards are accepted, see" - " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" - " wildcards, all input files are sorted according to their path and" - " duplicates are deleted. The special parameters '+h' and '_h' enable" - " or disable the search for hidden directories and files (files" - " beginning with a point) for the following parameters. Finally, one" - " line is printed for each file name of the list.", + " Each parameter is treated as a filename. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details. The special parameters '|+' and '|-' enable or disable the" + " search for hidden directories and files (files beginning with a" + " point) for the following parameters. Finally, one line is printed" + " for each file name of the list.", 0, - 2, + 3, option_tab_cmd_WILDCARDS, option_allowed_cmd_WILDCARDS }, @@ -7492,9 +7784,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FT", "wszst FILETYPE file...", "Scan the header of the entered files and print file type and path for" - " each file as list. All tools know the FILETYPE command.", + " each file as list. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. All tools know the" + " FILETYPE command.", 0, - 3, + 5, option_tab_cmd_FILETYPE, option_allowed_cmd_FILETYPE }, @@ -7507,12 +7801,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "UC", "wszst UI-CHECK file...", "Classify SZS files from directory .../Scene/UI/. For the analysis," - " the filename is ignored and only the content is examined.Wildcards" - " are accepted, see https://szs.wiimm.de/doc/wildcards for details." - " After evaluating the wildcards, all input files are sorted according" - " to their path and duplicates are deleted.", + " the filename is ignored and only the content is examined. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 4, + 5, option_tab_cmd_UI_CHECK, option_allowed_cmd_UI_CHECK }, @@ -7541,11 +7834,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, "BRSUB", 0, - "wszst BRSUB [file]...", + "wszst BRSUB [source]...", " If no file is defined, print a table with known BRRES sub files" " consisting of file format, version, number of sections and warn" " level. Otherwise analyse the version numbers of each BRRES sub file" - " of each source and print warnings about invalid versions.", + " of each source and print warnings about invalid versions. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, 3, option_tab_cmd_BRSUB, @@ -7688,12 +7983,15 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Manage the auto-add library. Primarily add files to the main auto-add" " archive for future use of option --auto-add or to convert WU8 files." " If SOURCE is a directory, all standard track and arena file names" - " are searched for the missed auto-add files. Without source files," - " the status of the auto-add archive is printed.\n" + " are searched for the missed auto-add files. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.\n" + " Without source files, the status of the auto-add archive is" + " printed.\n" " Try 'wszst AUTOADD ./path_to/Race/Course/' to add all supported" " files.", 0, - 8, + 10, option_tab_cmd_AUTOADD, option_allowed_cmd_AUTOADD }, @@ -7773,9 +8071,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst _CODE [files]", "All bytes of all input files are xor'ed with 0xDC and copied to" - " stdout. If no source file is given, standard input is read.", - 0, + " stdout. If no source file is given, standard input is read." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, + 3, option_tab_cmd_CODE, option_allowed_cmd_CODE }, @@ -7833,12 +8133,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst LIST [source]...", "List all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" " archives. If listing a directory, then a virtual SZS file is created" - " (like CREATE does it) and listed. Wildcards are accepted, see" - " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" - " wildcards, all input files are sorted according to their path and" - " duplicates are deleted.", + " (like CREATE does it) and listed. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -7851,12 +8149,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LL", "wszst LIST-L [source]...", "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" - " 'LIST --long'. Wildcards are accepted, see" - " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" - " wildcards, all input files are sorted according to their path and" - " duplicates are deleted.", + " 'LIST --long'. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST_L, option_allowed_cmd_LIST_L }, @@ -7869,12 +8165,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LLL", "wszst LIST-LL [source]...", "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" - " short cuts for 'LIST --long --long'. Wildcards are accepted, see" - " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" - " wildcards, all input files are sorted according to their path and" - " duplicates are deleted.", + " short cuts for 'LIST --long --long'. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST_LL, option_allowed_cmd_LIST_LL }, @@ -7888,11 +8182,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst LIST-LLL [source]...", "List all sub files with offset and size in debugging mode. 'LIST-LLL'" " and 'LLLL' are short cuts for 'LIST --long --long --long'. Wildcards" - " are accepted, see https://szs.wiimm.de/doc/wildcards for details." - " After evaluating the wildcards, all input files are sorted according" - " to their path and duplicates are deleted.", + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST_LLL, option_allowed_cmd_LIST_LLL }, @@ -7905,12 +8198,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LA", "wszst LIST-A [source]...", "List recursive all sub files with size. 'LIST-A' and 'LA' are short" - " cuts for 'LIST --long --all --all'. Wildcards are accepted, see" - " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" - " wildcards, all input files are sorted according to their path and" - " duplicates are deleted.", + " cuts for 'LIST --long --all --all'. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST_A, option_allowed_cmd_LIST_A }, @@ -7924,11 +8215,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst LIST-LA [source]...", "List recursive all sub files with offset and size. 'LIST-LA' and" " 'LLA' are short cuts for 'LIST --long --long --all --all'. Wildcards" - " are accepted, see https://szs.wiimm.de/doc/wildcards for details." - " After evaluating the wildcards, all input files are sorted according" - " to their path and duplicates are deleted.", + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 51, + 52, option_tab_cmd_LIST_LA, option_allowed_cmd_LIST_LA }, @@ -7943,7 +8233,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "For each BRRES file or subfile, create a name based cross reference" " and print the result as list ordered by names in BRRES order. For U8" " archives (e.g. track SZS files), sub file course_model.brres is" - " analysed.", + " analysed. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, 3, option_tab_cmd_NAME_REF, @@ -7960,9 +8251,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List the images files of all sub files of SZS, U8, PACK, BRRES," " BREFF, BREFT and RARC archives; non image files are ignored. If" " listing a directory, then a virtual SZS file is created (like CREATE" - " does it) and listed.", + " does it) and listed. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 47, + 49, option_tab_cmd_ILIST, option_allowed_cmd_ILIST }, @@ -7977,7 +8269,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List all image files with geometry data. 'ILIST-L' and 'ILL' are" " short cuts for 'ILIST --long'.", 0, - 47, + 49, option_tab_cmd_ILIST_L, option_allowed_cmd_ILIST_L }, @@ -7992,7 +8284,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List all sub files with advanced geometry data. 'ILIST-LL' and 'ILLL'" " are short cuts for 'ILIST --long --long'.", 0, - 47, + 49, option_tab_cmd_ILIST_LL, option_allowed_cmd_ILIST_LL }, @@ -8007,7 +8299,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List recursive all image files. 'ILIST-A' and 'ILA' are short cuts" " for 'ILIST --all'.", 0, - 47, + 49, option_tab_cmd_ILIST_A, option_allowed_cmd_ILIST_A }, @@ -8022,7 +8314,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List recursive all image files with geometry data. 'ILIST-LA' and" " 'ILLA' are short cuts for 'ILIST --long --all'.", 0, - 47, + 49, option_tab_cmd_ILIST_LA, option_allowed_cmd_ILIST_LA }, @@ -8035,9 +8327,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "MEM", "wszst MEMORY [source]...", "Dump a memory map of each source file. Virtual images (extracted" - " directories) are also supported.", + " directories) are also supported. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 49, + 51, option_tab_cmd_MEMORY, option_allowed_cmd_MEMORY }, @@ -8052,7 +8345,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Dump recursive a memory map of each source file. 'MEMORY-A' and" " 'MEMA' are short cuts for 'MEMORY --all --all'.", 0, - 49, + 51, option_tab_cmd_MEMORY_A, option_allowed_cmd_MEMORY_A }, @@ -8067,9 +8360,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Dump the internal structure of a BRRES files, compressed or not." " Other archives are ignored. The main goal is to verify string" " relocation. Virtual images (extracted directories) are also" - " supported.", + " supported. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 43, + 45, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -8082,9 +8376,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst SHA1 [source]...", "Print a SHA1 checksum for each source. The checksum is calculated by" - " using the uncompressed data and after patching.", + " using the uncompressed data and after patching. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 50, + 53, option_tab_cmd_SHA1, option_allowed_cmd_SHA1 }, @@ -8097,9 +8393,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ANA", "wszst ANALYZE [source]...", "Analyse track files and LE-CODE binaries. Print the results in" - " machine-readable form. The output format is selected by options.", + " machine-readable form. The output format is selected by options." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 16, + 18, option_tab_cmd_ANALYZE, option_allowed_cmd_ANALYZE }, @@ -8112,9 +8410,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst SPLIT [source]...", "Analyse (file) names and split them into the different parts. Print" - " the results in machine readable format.", + " the results in machine readable format. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 18, + 20, option_tab_cmd_SPLIT, option_allowed_cmd_SPLIT }, @@ -8129,12 +8429,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Test each source to see if it's a texture hack versus a reference" " file. For each source, one human and machine readable status line is" " printed. It is either »-1=err« on error, »1=yes« for a texture" - " hack, or »0=no LIST« with a comma separated list of reasons.\n" + " hack, or »0=no LIST« with a comma separated list of reasons." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.\n" " At the moment KCL, KMP (see notes) and LEX are checked. KMP section" " CAME has been intentionally left out. Section ENPT is only checked" " if KCL contains a least one face of type force-recalculation.", 0, - 4, + 6, option_tab_cmd_IS_TEXTURE, option_allowed_cmd_IS_TEXTURE }, @@ -8148,9 +8450,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst FEATURES [source]...", "Analyse track files and create a feature list for each source in" " machine readable format. CTGP uses the feature lists to manage" - " ghosts. See option --lex-features for details.", + " ghosts. See option --lex-features for details. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 17, + 19, option_tab_cmd_FEATURES, option_allowed_cmd_FEATURES }, @@ -8167,7 +8471,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " the uncompressed data. If SOURCE is a directory, scan it for SZS," " WBZ, U8 and WU8 files. If a source directory starts with \"arena\"," " all tracks of the directory are assumed to be battle arenas. Finally" - " print the results into file RESULT.\n" + " print the results into file RESULT. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.\n" " The default name for RESULT is \"distribution.txt\". Extension .txt" " is appended to the filename if not defined. If RESULT is a" " directory, it is used as first source too.\n" @@ -8177,7 +8482,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " See »welect DISTRIBUTION« for a new and alternative implementation" " of this.", 0, - 47, + 49, option_tab_cmd_DISTRIBUTION, option_allowed_cmd_DISTRIBUTION }, @@ -8211,9 +8516,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " check both) and find unknown, modified, needed and unneeded files." " Also analyse cannons and make slot proposals. This command uses an" " internal object and file database. The source can be a SZS, U8, WU8" - " or WBZ file, or an U8 like directory.", + " or WBZ file, or an U8 like directory. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 97, + 100, option_tab_cmd_CHECK, option_allowed_cmd_CHECK }, @@ -8229,9 +8535,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " a SZS, U8, WU8 or WBZ file, or an U8 like directory. For each source" " one status line is printed. The status line contains either a" " positive or a negative slot list, whatever is shorter. For battle" - " arenas, the keyword ARENA is printed.", + " arenas, the keyword ARENA is printed. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 93, + 96, option_tab_cmd_SLOTS, option_allowed_cmd_SLOTS }, @@ -8246,32 +8553,35 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Find the first KMP:STGI of each file and print an analysis of it as" " single line statistic. Additional the number of lap counter check" " points ('LC') is printed. Track and KMP (binary and text) files are" - " accepted as input.", + " accepted as input. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 4, + 6, option_tab_cmd_STGI, option_allowed_cmd_STGI }, - { CMD_ISARENA, + { CMD_IS_ARENA, false, false, false, + "IS-ARENA", "ISARENA", - 0, - "wszst ISARENA [source]...", + "wszst IS_ARENA [source]...", "Analyse each track for its arena status and print a line with a" - " status code and the track name. The status code is: »-RACE« for a" - " racing track, »?MAYBE« for likely an arena, »+ARENA« for an" - " arena, »+DISPATCH« for an arena with dispatch points or any error" - " hint beginning with an »!«. So the very first character (one of" - " »!-?+«) can be used to distinguish the status class.\n" + " status code and the track name. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details. The" + " status code is: »-RACE« for a racing track, »?MAYBE« for likely" + " an arena, »+ARENA« for an arena, »+DISPATCH« for an arena with" + " dispatch points or any error hint beginning with an »!«. So the" + " very first character (one of »!-?+«) can be used to distinguish" + " the status class.\n" " The exit status is >2 on error, 2 (DIFFER), if at least one file is" " a racing track, or 0 (OK), if all sources are arenas.", 0, - 6, - option_tab_cmd_ISARENA, - option_allowed_cmd_ISARENA + 8, + option_tab_cmd_IS_ARENA, + option_allowed_cmd_IS_ARENA }, { CMD_NORMALIZE, @@ -8286,10 +8596,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " directory '.' is available it becomes the root directory for all" " others. Compressed sources are compressed again with maximum" " compression (level 9). The destination is only written if any data" - " changed.\n" + " changed. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.\n" " 'wszst NORMALIZE' is the same as 'wszst PATCH --norm'.", 0, - 79, + 82, option_tab_cmd_NORMALIZE, option_allowed_cmd_NORMALIZE }, @@ -8305,9 +8616,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " patching and transforming options and store the file again." " Compressed sources are compressed again. The destination is only" " written if any data changed or if stored in another file. Wildcards" - " are accepted, see https://szs.wiimm.de/doc/wildcards for details.", + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 81, + 84, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, @@ -8323,12 +8635,15 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "COPY is an alternative command for copying and patching files. It" " uses the same internal procedure as command PATCH, but has another" " command line syntax.\n" - " The command copies all source files to the destination. If more than" - " 1 source is defined, the destination must be either a directory or a" - " destination filename with escapes. Patching is also possible and" - " option --overwrite is set implicitly.", + " The command copies all source files to the destination. If no" + " destination is defined by options --dest or --DEST, then the last" + " parameter is used as destination. If more than 1 source is defined," + " the destination must be either a directory or a destination filename" + " with escapes. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details. Patching is also" + " possible and option --overwrite is set implicitly.", 0, - 81, + 84, option_tab_cmd_COPY, option_allowed_cmd_COPY }, @@ -8353,7 +8668,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Use command 'wkmpt GAMEMODES' to list all variants and to check them" " beforehand.", 0, - 82, + 85, option_tab_cmd_DUPLICATE, option_allowed_cmd_DUPLICATE }, @@ -8369,9 +8684,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " SZS, U8, BRRES or MDL file. If patching options are used, modify the" " data and write back the file using its original file format. Only" " the translation vector is modified and new translation and inverse" - " matrices are calculated.", + " matrices are calculated. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.", 0, - 46, + 48, option_tab_cmd_MINIMAP, option_allowed_cmd_MINIMAP }, @@ -8385,9 +8701,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst COMPRESS [source]...", "Compress and create a SZS archives. If the source is already" " compressed, then decompress and compress it again. The default" - " destination is '%P/%N.szs'.", + " destination is '%P/%N.szs'. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 80, + 83, option_tab_cmd_COMPRESS, option_allowed_cmd_COMPRESS }, @@ -8399,9 +8716,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "DECOMPRESS", "DEC", "wszst DECOMPRESS [szs]...", - "Decompress SZS files. The default destination is '%P/%N.u8'.", + "Decompress SZS files. The default destination is '%P/%N.u8'." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 73, + 76, option_tab_cmd_DECOMPRESS, option_allowed_cmd_DECOMPRESS }, @@ -8414,9 +8733,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "E", "wszst ENCODE [source_dir]...", " Create and/or encode sub files if necessary. It works like command" - " CREATE, but without creating a new first level archive file.", + " CREATE, but without creating a new first level archive file." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 76, + 80, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -8430,9 +8751,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst CREATE [source_dir]...", "Create SZS, U8, PACK, BRRES, BREFF or BREFT archives by adding all" " not hidden files of the directory structure. Create and/or encode" - " sub files if necessary. The default destination is '%P/%N%T'.", + " sub files if necessary. The default destination is '%P/%N%T'." + " Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 102, + 106, option_tab_cmd_CREATE, option_allowed_cmd_CREATE }, @@ -8449,9 +8772,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " instead of extracting, source files are searched in a prior" " extracted archive. Only files with the same size are updated. The" " secondary source is used to find the source sub files. The default" - " secondary source is '%P/%N.d/'.", + " secondary source is '%P/%N.d/'. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 73, + 76, option_tab_cmd_UPDATE, option_allowed_cmd_UPDATE }, @@ -8464,9 +8788,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "X", "wszst EXTRACT [source]...", "Extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" - " archives. The default destination is '%P/%N.d/'.", + " archives. The default destination is '%P/%N.d/'. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 78, + 81, option_tab_cmd_EXTRACT, option_allowed_cmd_EXTRACT }, @@ -8481,9 +8807,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Command XDECODE is a short cut for 'EXTRACT --decode'. It extract all" " sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives" " and decodes all supported files. The default destination is" - " '%P/%N.d/'.", + " '%P/%N.d/'. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 78, + 81, option_tab_cmd_XDECODE, option_allowed_cmd_XDECODE }, @@ -8498,9 +8825,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Command XEXPORT is a short cut for 'EXTRACT --decode --export'. It" " extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" " archives and decodes all supported files with enabled export mode." - " The default destination is '%P/%N.d/'.", + " The default destination is '%P/%N.d/'. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 78, + 81, option_tab_cmd_XEXPORT, option_allowed_cmd_XEXPORT }, @@ -8515,9 +8843,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Command XALL is a short cut for 'EXTRACT --all'. It extract all sub" " files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives" " recursively and decodes all supported files. The default destination" - " is '%P/%N.d/'.", + " is '%P/%N.d/'. Wildcards and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 78, + 81, option_tab_cmd_XALL, option_allowed_cmd_XALL }, @@ -8531,9 +8860,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst XCOMMON [source]...", "Command XCOMMON is a short cut for 'EXTRACT --basedir=common'. Scan" " archives and extract files from archives, that are below directory" - " 'common'. The default destination is '%P/%N.d/'.", + " 'common'. The default destination is '%P/%N.d/'. Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 9, + 11, option_tab_cmd_XCOMMON, option_allowed_cmd_XCOMMON }, @@ -8546,12 +8877,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "BIN", "wszst BINARY [source]...", "Read each source file (binary or text, but never archives) and write" - " the content as binary file. The file extension of the new file" - " depends on the file type, but is usually .bin. Currently supported" - " file formats are BMG, GEOHIT, ITEMSLOT, KCL, KMG, KMP, LEX, OBJFLOW," - " PAT and the related text formats.", + " the content as binary file. Wildcards and pipe characters are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details.\n" + " The file extension of the new file depends on the file type, but is" + " usually .bin. Currently supported file formats are BMG, GEOHIT," + " ITEMSLOT, KCL, KMG, KMP, LEX, OBJFLOW, PAT and the related text" + " formats.", 0, - 11, + 13, option_tab_cmd_BINARY, option_allowed_cmd_BINARY }, @@ -8564,12 +8897,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "TXT", "wszst TEXT [source]...", "Read each source file (binary or text, but never archives) and write" - " the content as text file. The file extension of the new file is" - " usually .txt. Currently supported file formats are BMG, GEOHIT," - " ITEMSLOT, KCL, KMG, KMP, LEX, OBJFLOW, PAT and the related text" - " formats.", + " the content as text file. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.\n" + " The file extension of the new file is usually .txt. Currently" + " supported file formats are BMG, GEOHIT, ITEMSLOT, KCL, KMG, KMP," + " LEX, OBJFLOW, PAT and the related text formats.", 0, - 32, + 34, option_tab_cmd_TEXT, option_allowed_cmd_TEXT }, @@ -8582,10 +8916,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst CAT [source/subfile]...", "Extract one or more sub files of SZS, U8, PACK, BRRES, BREFF, BREFT" - " and RARC archives. The output of all source files is concatenated" - " and written to stdout.", + " and RARC archives. Wildcards, pipe characters and sub-files are" + " parsed, see https://szs.wiimm.de/doc/wildcards for details. The" + " output of all source files is concatenated and written to stdout.", 0, - 22, + 24, option_tab_cmd_CAT, option_allowed_cmd_CAT }, @@ -8599,9 +8934,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst BMG [source]...", "For each archive all BMG sub files are searched and, if found," " decoded and printed as combined BMG text file. The command works" - " exactly like 'wbmgt MIX'.", + " exactly like 'wbmgt MIX'. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.", 0, - 18, + 20, option_tab_cmd_BMG, option_allowed_cmd_BMG }, @@ -8614,11 +8950,14 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst KCL [source]...", "For each archive the KCL sub file course.kcl is searched and, if" - " found, decoded and printed (copied to stdout).\n" + " found, decoded and printed (copied to stdout). Wildcards, pipe" + " characters and sub-files are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.\n" " Automated dropping of bad KCL triangles is enabled if no other drop" - " option is specified by option --kcl.", + " option is specified by option --kcl. Wildcards and pipe characters" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 55, + 58, option_tab_cmd_KCL, option_allowed_cmd_KCL }, @@ -8631,9 +8970,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst KMP [source]...", "For each archive the KMP sub file course.kmp is searched and, if" - " found, decoded and printed (copied to stdout).", + " found, decoded and printed (copied to stdout). Wildcards, pipe" + " characters and sub-files are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 56, + 59, option_tab_cmd_KMP, option_allowed_cmd_KMP }, @@ -8646,9 +8987,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst LEX [source]...", "For each archive the LEX sub file course.lex is searched and, if" - " found, decoded and printed (copied to stdout).", + " found, decoded and printed (copied to stdout). Wildcards and pipe" + " characters are parsed, see https://szs.wiimm.de/doc/wildcards for" + " details.", 0, - 4, + 6, option_tab_cmd_LEX, option_allowed_cmd_LEX }, @@ -8662,9 +9005,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst INFO [source]...", "For each archive a file named info.txt and, if not found, credits.txt" " is searched, ignoring case. The first found file of each archive is" - " printed (copied to stdout).", + " printed (copied to stdout). Wildcards, pipe characters and sub-files" + " are parsed, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 2, + 4, option_tab_cmd_INFO, option_allowed_cmd_INFO }, @@ -8676,9 +9020,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "GHOSTS", 0, "wszst GHOST [source]...", - "Analyse each file and print a summary about the ghost data.", + "Analyse each file and print a summary about the ghost data. Wildcards" + " and pipe characters are parsed, see" + " https://szs.wiimm.de/doc/wildcards for details.", 0, - 14, + 16, option_tab_cmd_GHOST, option_allowed_cmd_GHOST }, @@ -8691,9 +9037,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "YD", "wszst YAZDUMP [szs]...", "Analyze YAZ compression and print a dump to stdout. Ignore files" - " without YAZ compression.", + " without YAZ compression. Wildcards and pipe characters are parsed," + " see https://szs.wiimm.de/doc/wildcards for details.", 0, - 8, + 11, option_tab_cmd_YAZDUMP, option_allowed_cmd_YAZDUMP }, diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h index 2db44e8..fa0dc15 100644 --- a/project/src/ui/ui-wszst.h +++ b/project/src/ui/ui-wszst.h @@ -100,6 +100,7 @@ typedef enum enumOptions OPT_MACRO_BMG, OPT_FILTER_BMG, OPT_LE_MENU, + OPT_9LAPS, OPT_TITLE_SCREEN, OPT_CUP_ICONS, OPT_NO_COPY, @@ -112,6 +113,7 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_NO_WILDCARDS, OPT_IN_ORDER, OPT_PIPE, OPT_DELTA, @@ -198,7 +200,7 @@ typedef enum enumOptions OPT_RAW, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 142 + OPT__N_SPECIFIC, // == 144 //----- global options ----- @@ -236,6 +238,7 @@ typedef enum enumOptions OPT_TRI_HEIGHT, OPT_XTRIDATA, OPT_KMP, + OPT_N_LAPS, OPT_SPEED_MOD, OPT_KTPT2, OPT_TFORM_KMP, @@ -286,7 +289,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 225 + OPT__N_TOTAL // == 228 } enumOptions; @@ -345,6 +348,7 @@ typedef enum enumOptions // OB_MACRO_BMG = 1llu << OPT_MACRO_BMG, // OB_FILTER_BMG = 1llu << OPT_FILTER_BMG, // OB_LE_MENU = 1llu << OPT_LE_MENU, +// OB_9LAPS = 1llu << OPT_9LAPS, // OB_TITLE_SCREEN = 1llu << OPT_TITLE_SCREEN, // OB_CUP_ICONS = 1llu << OPT_CUP_ICONS, // OB_NO_COPY = 1llu << OPT_NO_COPY, @@ -357,6 +361,7 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_NO_WILDCARDS = 1llu << OPT_NO_WILDCARDS, // OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_PIPE = 1llu << OPT_PIPE, // OB_DELTA = 1llu << OPT_DELTA, @@ -473,6 +478,7 @@ typedef enum enumOptions // | OB_MACRO_BMG // | OB_FILTER_BMG // | OB_LE_MENU +// | OB_9LAPS // | OB_TITLE_SCREEN // | OB_CUP_ICONS, // @@ -544,7 +550,9 @@ typedef enum enumOptions // | OB_TRANSFORM // | OB_STRIP, // -// OB_GRP_CREATE = OB_IGNORE_SETUP +// OB_GRP_CREATE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE_SETUP // | OB_GRP_FFORMAT2 // | OB_PT_DIR // | OB_LINKS @@ -593,14 +601,17 @@ typedef enum enumOptions // | OB_LONG // | OB_GRP_SCRIPT, // -// OB_CMD_INSTALL = 0, +// OB_CMD_INSTALL = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE, // // OB_CMD_ARGTEST = ~(u64)0, // // OB_CMD_EXPAND = ~(u64)0, // -// OB_CMD_WILDCARDS = OB_IGNORE -// | OB_IN_ORDER, +// OB_CMD_WILDCARDS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE, // // OB_CMD_TEST = ~(u64)0, // @@ -612,14 +623,17 @@ typedef enum enumOptions // | OB_LONG // | OB_BRIEF, // -// OB_CMD_FILETYPE = OB_LONG -// | OB_NO_HEADER -// | OB_IGNORE, +// OB_CMD_FILETYPE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG +// | OB_NO_HEADER, // -// OB_CMD_UI_CHECK = OB_LONG -// | OB_NO_HEADER +// OB_CMD_UI_CHECK = OB_NO_WILDCARDS // | OB_IN_ORDER -// | OB_IGNORE, +// | OB_IGNORE +// | OB_LONG +// | OB_NO_HEADER, // // OB_CMD_FILEATTRIB = OB_NO_HEADER, // @@ -646,7 +660,9 @@ typedef enum enumOptions // // OB_CMD_VR_RACE = OB_LONG, // -// OB_CMD_AUTOADD = OB_IGNORE +// OB_CMD_AUTOADD = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_DEST // | OB_DEST2 // | OB_OVERWRITE @@ -666,22 +682,25 @@ typedef enum enumOptions // OB_CMD_SIZEOF = OB_SORT // | OB_BRIEF, // -// OB_CMD_CODE = 0, +// OB_CMD_CODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE, // // OB_CMD_RECODE = 0, // // OB_CMD_SUBFILE = OB_GRP_DEST, // -// OB_CMD_LIST = OB_RECURSE +// OB_CMD_LIST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_RECURSE +// | OB_IGNORE // | OB_EXT // | OB_CUT // | OB_ALL // | OB_LONG // | OB_SORT // | OB_NO_HEADER -// | OB_IN_ORDER // | OB_GRP_CREATE -// | OB_IGNORE // | OB_NORM // | OB_LINKS // | OB_RM_AIPARAM @@ -701,13 +720,15 @@ typedef enum enumOptions // | OB_BRIEF // | OB_LONG, // -// OB_CMD_ILIST = OB_RECURSE +// OB_CMD_ILIST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_RECURSE +// | OB_IGNORE // | OB_ALL // | OB_LONG // | OB_SORT // | OB_NO_HEADER // | OB_GRP_CREATE -// | OB_IGNORE // | OB_NORM // | OB_LINKS, // @@ -719,7 +740,10 @@ typedef enum enumOptions // // OB_CMD_ILIST_LA = OB_CMD_ILIST_A, // -// OB_CMD_MEMORY = OB_RECURSE +// OB_CMD_MEMORY = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_RECURSE +// | OB_IGNORE // | OB_EXT // | OB_DECODE // | OB_MIPMAPS @@ -727,7 +751,6 @@ typedef enum enumOptions // | OB_ALL // | OB_LONG // | OB_GRP_CREATE -// | OB_IGNORE // | OB_NORM // | OB_LINKS // | OB_RM_AIPARAM @@ -735,12 +758,17 @@ typedef enum enumOptions // // OB_CMD_MEMORY_A = OB_CMD_MEMORY, // -// OB_CMD_DUMP = OB_GRP_CREATE +// OB_CMD_DUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_CREATE // | OB_NORM // | OB_LINKS, // -// OB_CMD_SHA1 = OB_IGNORE +// OB_CMD_SHA1 = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_RECURSE +// | OB_IGNORE // | OB_NORM // | OB_LINKS // | OB_GRP_CREATE @@ -752,34 +780,44 @@ typedef enum enumOptions // | OB_BRIEF // | OB_LONG, // -// OB_CMD_ANALYZE = OB_LONG +// OB_CMD_ANALYZE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_LONG // | OB_GRP_SCRIPT // | OB_REFERENCE // | OB_DEST // | OB_DEST2, // -// OB_CMD_SPLIT = OB_PLUS +// OB_CMD_SPLIT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_PLUS // | OB_SPLIT // | OB_PRINTF -// | OB_IGNORE // | OB_GRP_SCRIPT // | OB_DEST // | OB_DEST2, // -// OB_CMD_IS_TEXTURE = OB_IGNORE +// OB_CMD_IS_TEXTURE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_REFERENCE // | OB_LONG, // -// OB_CMD_FEATURES = OB_BRIEF -// | OB_LONG +// OB_CMD_FEATURES = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_BRIEF +// | OB_LONG // | OB_GRP_SCRIPT // | OB_FMODES // | OB_DEST // | OB_DEST2, // -// OB_CMD_DISTRIBUTION = OB_IGNORE +// OB_CMD_DISTRIBUTION = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NORM // | OB_LINKS // | OB_GRP_CREATE @@ -794,38 +832,50 @@ typedef enum enumOptions // | OB_DEST // | OB_ESC, // -// OB_CMD_CHECK = OB_NO_CHECK +// OB_CMD_CHECK = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_NO_CHECK // | OB_BRIEF // | OB_LONG // | OB_GRP_CREATE // | OB_GRP_TRANSFORM2, // -// OB_CMD_SLOTS = OB_IGNORE +// OB_CMD_SLOTS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_BRIEF // | OB_GRP_CREATE // | OB_GRP_TRANSFORM2, // -// OB_CMD_STGI = OB_NO_HEADER -// | OB_IGNORE, +// OB_CMD_STGI = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_NO_HEADER, // -// OB_CMD_ISARENA = OB_NO_HEADER -// | OB_BRIEF -// | OB_IGNORE, +// OB_CMD_IS_ARENA = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_NO_HEADER +// | OB_BRIEF, // -// OB_CMD_NORMALIZE = OB_GRP_DEST +// OB_CMD_NORMALIZE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_REMOVE_SRC // | OB_GRP_FFORMAT1 -// | OB_IGNORE // | OB_GRP_NORM // | OB_FAST // | OB_GRP_TRANSFORM2, // -// OB_CMD_PATCH = OB_GRP_DEST +// OB_CMD_PATCH = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_REMOVE_SRC // | OB_NO_COPY // | OB_GRP_FFORMAT1 -// | OB_IGNORE // | OB_COMPRESS // | OB_GRP_NORM // | OB_FAST @@ -836,10 +886,12 @@ typedef enum enumOptions // OB_CMD_DUPLICATE = OB_GAMEMODES // | OB_CMD_PATCH, // -// OB_CMD_MINIMAP = OB_LONG +// OB_CMD_MINIMAP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_LONG // | OB_REMOVE_DEST // | OB_PRESERVE -// | OB_IGNORE // | OB_COMPRESS // | OB_GRP_NORM // | OB_FAST @@ -857,24 +909,31 @@ typedef enum enumOptions // | OB_CENTER // | OB_GRP_TRANSFORM, // -// OB_CMD_COMPRESS = OB_GRP_DEST +// OB_CMD_COMPRESS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_REMOVE_SRC // | OB_GRP_FFORMAT1 -// | OB_IGNORE // | OB_COMPRESS // | OB_GRP_NORM // | OB_FAST // | OB_GRP_TRANSFORM2, // -// OB_CMD_DECOMPRESS = OB_GRP_DEST +// OB_CMD_DECOMPRESS = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_REMOVE_SRC // | OB_U8 // | OB_WU8 -// | OB_IGNORE // | OB_GRP_NORM // | OB_GRP_TRANSFORM2, // -// OB_CMD_ENCODE = OB_IGNORE_SETUP +// OB_CMD_ENCODE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_IGNORE_SETUP // | OB_GRP_ALIGN // | OB_GRP_ENCODE // | OB_MIPMAPS @@ -886,15 +945,20 @@ typedef enum enumOptions // | OB_CMPR_DEFAULT // | OB_GRP_TRANSFORM2, // -// OB_CMD_CREATE = OB_GRP_DEST +// OB_CMD_CREATE = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST // | OB_GRP_CREATE // | OB_NO_COMPRESS // | OB_COMPRESS // | OB_FAST // | OB_GRP_TRANSFORM2, // -// OB_CMD_UPDATE = OB_SOURCE +// OB_CMD_UPDATE = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_SOURCE // | OB_GRP_DEST // | OB_ESC // | OB_NO_COMPRESS @@ -905,9 +969,11 @@ typedef enum enumOptions // | OB_GRP_ENCODE // | OB_GRP_TRANSFORM2, // -// OB_CMD_EXTRACT = OB_GRP_DEST -// | OB_GRP_EXTRACT +// OB_CMD_EXTRACT = OB_NO_WILDCARDS +// | OB_IN_ORDER // | OB_IGNORE +// | OB_GRP_DEST +// | OB_GRP_EXTRACT // | OB_ANALYZE // | OB_ANALYZE_MODE // | OB_GRP_TRANSFORM2, @@ -918,36 +984,50 @@ typedef enum enumOptions // // OB_CMD_XALL = OB_CMD_EXTRACT, // -// OB_CMD_XCOMMON = OB_GRP_DEST -// | OB_IGNORE, +// OB_CMD_XCOMMON = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST, // -// OB_CMD_BINARY = OB_IGNORE +// OB_CMD_BINARY = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_GRP_DEST, // -// OB_CMD_TEXT = OB_IGNORE +// OB_CMD_TEXT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_DECODE // | OB_GRP_TEXTOUT // | OB_GRP_BMG // | OB_GRP_DEST, // -// OB_CMD_CAT = OB_IGNORE +// OB_CMD_CAT = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_DECODE // | OB_GRP_TEXTOUT // | OB_GRP_BMG, // -// OB_CMD_BMG = OB_IGNORE +// OB_CMD_BMG = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_BRIEF // | OB_GRP_BMG, // -// OB_CMD_KCL = OB_IGNORE +// OB_CMD_KCL = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_BRIEF // | OB_NO_PARAM // | OB_NO_CHECK // | OB_GRP_TRANSFORM2, // -// OB_CMD_KMP = OB_IGNORE +// OB_CMD_KMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_BRIEF // | OB_EXPORT @@ -955,21 +1035,30 @@ typedef enum enumOptions // | OB_NO_CHECK // | OB_GRP_TRANSFORM2, // -// OB_CMD_LEX = OB_IGNORE +// OB_CMD_LEX = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_BRIEF // | OB_EXPORT, // -// OB_CMD_INFO = OB_IGNORE +// OB_CMD_INFO = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER, // -// OB_CMD_GHOST = OB_IGNORE +// OB_CMD_GHOST = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE // | OB_NO_HEADER // | OB_GRP_SCRIPT // | OB_DEST // | OB_DEST2, // -// OB_CMD_YAZDUMP = OB_GRP_DEST, +// OB_CMD_YAZDUMP = OB_NO_WILDCARDS +// | OB_IN_ORDER +// | OB_IGNORE +// | OB_GRP_DEST, // // OB_CMD_VEHICLE = OB_SOURCE // | OB_DEST @@ -1049,7 +1138,7 @@ typedef enum enumCommands CMD_CHECK, CMD_SLOTS, CMD_STGI, - CMD_ISARENA, + CMD_IS_ARENA, CMD_NORMALIZE, CMD_PATCH, CMD_COPY, @@ -1193,6 +1282,7 @@ typedef enum enumGetOpt GO_FLAG_FILE, GO_XTRIDATA, GO_KMP, + GO_N_LAPS, GO_SPEED_MOD, GO_KTPT2, GO_TFORM_KMP, @@ -1218,6 +1308,7 @@ typedef enum enumGetOpt GO_MACRO_BMG, GO_FILTER_BMG, GO_LE_MENU, + GO_9LAPS, GO_TITLE_SCREEN, GO_CUP_ICONS, GO_NO_COPY, @@ -1231,6 +1322,7 @@ typedef enum enumGetOpt GO_CODING, GO_VERIFY, GO_ROUND, + GO_NO_WILDCARDS, GO_IN_ORDER, GO_PIPE, GO_DELTA, diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def index fe9833c..e249318 100644 --- a/project/src/ui/ui.def +++ b/project/src/ui/ui.def @@ -37,8 +37,8 @@ #:def_cmd( "INSTALL", "INSTALL", \ "wszst INSTALL [file]...", \ - "Install files to the shared directory. Use {wszst CONFIG} to list" \ - " related pathes." ) + "Install files to the shared directory. $Wildcards$ and pipe" \ + " characters are parsed. Use {wszst CONFIG} to list related pathes." ) #:def_cmd( "ARGTEST", "ARGTEST", \ "wszst ARGTEST ...", \ @@ -50,20 +50,15 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "WILDCARDS", "WILDCARDS", \ "wszst WILDCARDS pattern...", \ - " Each parameter is treated as a filename. $Wildcards$ are accepted." \ - " After evaluating the wildcards, all input files are sorted according" \ - " to their path and duplicates are deleted. The special parameters" \ - " '+h' and '_h' enable or disable the search for hidden directories" \ - " and files (files beginning with a point) for the following" \ - " parameters. Finally, one line is printed for each file name of the" \ - " list." ) + " Each parameter is treated as a filename. $Wildcards$ and pipe" \ + " characters are parsed. The special parameters '|+' and '|-' enable" \ + " or disable the search for hidden directories and files (files" \ + " beginning with a point) for the following parameters. Finally, one" \ + " line is printed for each file name of the list." ) #:def_cmd( "TEST", "TEST", \ "wszst TEST [options]... [ignored]...", \ @@ -85,14 +80,14 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wszst FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "UI_CHECK", "UI-CHECK|UC|UICHECK", \ "wszst UI-CHECK file...", \ "Classify SZS files from directory .../Scene/UI/. For the analysis," \ - " the filename is ignored and only the content is examined.$Wildcards$" \ - " are accepted. After evaluating the wildcards, all input files are" \ - " sorted according to their path and duplicates are deleted." ) + " the filename is ignored and only the content is examined." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wszst FILEATTRIB [keyword]...", \ @@ -103,11 +98,12 @@ " FILEATTRIB command." ) #:def_cmd( "BRSUB", "BRSUB", \ - "wszst BRSUB [file]...", \ + "wszst BRSUB [source]...", \ " If no file is defined, print a table with known BRRES sub files" \ " consisting of file format, version, number of sections and warn" \ " level. Otherwise analyse the version numbers of each BRRES sub file" \ - " of each source and print warnings about invalid versions." ) + " of each source and print warnings about invalid versions." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wszst SYMBOLS", \ @@ -171,8 +167,10 @@ "Manage the auto-add library. Primarily add files to the main auto-add" \ " archive for future use of option {--auto-add} or to convert WU8" \ " files. If @SOURCE@ is a directory, all standard track and arena file" \ - " names are searched for the missed auto-add files. Without source" \ - " files, the status of the auto-add archive is printed.\n" \ + " names are searched for the missed auto-add files. $Wildcards$ and" \ + " pipe characters are parsed.\n" \ + " Without source files, the status of the auto-add archive is" \ + " printed.\n" \ " Try {wszst AUTOADD ./path_to/Race/Course/} to add all supported" \ " files." ) @@ -197,58 +195,51 @@ "wszst LIST [source]...", \ "List all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \ " archives. If listing a directory, then a virtual SZS file is created" \ - " (like CREATE does it) and listed. $Wildcards$ are accepted. After" \ - " evaluating the wildcards, all input files are sorted according to" \ - " their path and duplicates are deleted." ) + " (like CREATE does it) and listed. $Wildcards$ and pipe characters" \ + " are parsed." ) #:def_cmd( "LIST_L", "LIST-L|LL|LISTL", \ "wszst LIST-L [source]...", \ "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" \ - " {LIST --long}. $Wildcards$ are accepted. After evaluating the" \ - " wildcards, all input files are sorted according to their path and" \ - " duplicates are deleted." ) + " {LIST --long}. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "LIST_LL", "LIST-LL|LLL|LISTLL", \ "wszst LIST-LL [source]...", \ "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" \ - " short cuts for {LIST --long --long}. $Wildcards$ are accepted. After" \ - " evaluating the wildcards, all input files are sorted according to" \ - " their path and duplicates are deleted." ) + " short cuts for {LIST --long --long}. $Wildcards$ and pipe characters" \ + " are parsed." ) #:def_cmd( "LIST_LLL", "LIST-LLL|LLLL|LISTLLL", \ "wszst LIST-LLL [source]...", \ "List all sub files with offset and size in debugging mode. 'LIST-LLL'" \ " and 'LLLL' are short cuts for {LIST --long --long --long}." \ - " $Wildcards$ are accepted. After evaluating the wildcards, all input" \ - " files are sorted according to their path and duplicates are deleted." ) + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "LIST_A", "LIST-A|LA|LISTA", \ "wszst LIST-A [source]...", \ "List recursive all sub files with size. 'LIST-A' and 'LA' are short" \ - " cuts for {LIST --long --all --all}. $Wildcards$ are accepted. After" \ - " evaluating the wildcards, all input files are sorted according to" \ - " their path and duplicates are deleted." ) + " cuts for {LIST --long --all --all}. $Wildcards$ and pipe characters" \ + " are parsed." ) #:def_cmd( "LIST_LA", "LIST-LA|LLA|LISTLA", \ "wszst LIST-LA [source]...", \ "List recursive all sub files with offset and size. 'LIST-LA' and" \ " 'LLA' are short cuts for {LIST --long --long --all --all}." \ - " $Wildcards$ are accepted. After evaluating the wildcards, all input" \ - " files are sorted according to their path and duplicates are deleted." ) + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "NAME_REF", "NAME-REF|NAMEREF", \ "wszst NAME-REF [source]...", \ "For each BRRES file or subfile, create a name based cross reference" \ " and print the result as list ordered by names in BRRES order. For U8" \ " archives (e.g. track SZS files), sub file @course_model.brres@ is" \ - " analysed." ) + " analysed. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "ILIST", "ILIST|IL", \ "wszst ILIST [source]...", \ "List the images files of all sub files of SZS, U8, PACK, BRRES," \ " BREFF, BREFT and RARC archives; non image files are ignored. If" \ " listing a directory, then a virtual SZS file is created (like CREATE" \ - " does it) and listed." ) + " does it) and listed. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "ILIST_L", "ILIST-L|ILL|ILISTL", \ "wit ILIST-L [source]...", \ @@ -273,7 +264,8 @@ #:def_cmd( "MEMORY", "MEMORY|MEM", \ "wszst MEMORY [source]...", \ "Dump a memory map of each source file. Virtual images (extracted" \ - " directories) are also supported." ) + " directories) are also supported. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "MEMORY_A", "MEMORY-A|MEMA", \ "wszst MEMORY-A [source]...", \ @@ -285,29 +277,33 @@ "Dump the internal structure of a BRRES files, compressed or not." \ " Other archives are ignored. The main goal is to verify string" \ " relocation. Virtual images (extracted directories) are also" \ - " supported." ) + " supported. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "SHA1", "SHA1", \ "wszst SHA1 [source]...", \ "Print a SHA1 checksum for each source. The checksum is calculated by" \ - " using the uncompressed data and after patching." ) + " using the uncompressed data and after patching. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "ANALYZE", "ANALYZE|ANA|ANALYSE", \ "wszst ANALYZE [source]...", \ "Analyse track files and LE-CODE binaries. Print the results in" \ - " machine-readable form. The output format is selected by options." ) + " machine-readable form. The output format is selected by options." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "SPLIT", "SPLIT", \ "wszst SPLIT [source]...", \ "Analyse (file) names and split them into the different parts. Print" \ - " the results in machine readable format." ) + " the results in machine readable format. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "IS_TEXTURE", "IS-TEXTURE|ISTEXTURE", \ "wszst IS-TEXTURE --reference reference [source]...", \ "Test each source to see if it's a texture hack versus a reference" \ " file. For each source, one human and machine readable status line is" \ " printed. It is either »-1=err« on error, »1=yes« for a texture" \ - " hack, or »0=no LIST« with a comma separated list of reasons.\n" \ + " hack, or »0=no LIST« with a comma separated list of reasons." \ + " $Wildcards$ and pipe characters are parsed.\n" \ " At the moment KCL, KMP (see notes) and LEX are checked. KMP section" \ " CAME has been intentionally left out. Section ENPT is only checked" \ " if KCL contains a least one face of type force-recalculation." ) @@ -316,7 +312,8 @@ "wszst FEATURES [source]...", \ "Analyse track files and create a feature list for each source in" \ " machine readable format. CTGP uses the feature lists to manage" \ - " ghosts. See option {--lex-features} for details." ) + " ghosts. See option {--lex-features} for details. $Wildcards$ and" \ + " pipe characters are parsed." ) #:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", \ "wszst DISTRIBUTION result source...\n" \ @@ -325,7 +322,8 @@ " the uncompressed data. If @SOURCE@ is a directory, scan it for SZS," \ " WBZ, U8 and WU8 files. If a source directory starts with \"arena\"," \ " all tracks of the directory are assumed to be battle arenas. Finally" \ - " print the results into file @RESULT@.\n" \ + " print the results into file @RESULT@. $Wildcards$ and pipe" \ + " characters are parsed.\n" \ " The default name for @RESULT@ is \"distribution.txt\". Extension" \ " .txt is appended to the filename if not defined. If @RESULT@ is a" \ " directory, it is used as first source too.\n" \ @@ -349,7 +347,8 @@ " check both) and find unknown, modified, needed and unneeded files." \ " Also analyse cannons and make slot proposals. This command uses an" \ " internal object and file database. The source can be a SZS, U8, WU8" \ - " or WBZ file, or an U8 like directory." ) + " or WBZ file, or an U8 like directory. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "SLOTS", "SLOTS", \ "wszst SLOTS [source]...", \ @@ -357,23 +356,25 @@ " a SZS, U8, WU8 or WBZ file, or an U8 like directory. For each source" \ " one status line is printed. The status line contains either a" \ " positive or a negative slot list, whatever is shorter. For battle" \ - " arenas, the keyword @ARENA@ is printed." ) + " arenas, the keyword @ARENA@ is printed. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "STGI", "STGI", \ "wszst STGI [source]...", \ "Find the first KMP:STGI of each file and print an analysis of it as" \ " single line statistic. Additional the number of lap counter check" \ " points ('LC') is printed. Track and KMP (binary and text) files are" \ - " accepted as input." ) + " accepted as input. $Wildcards$ and pipe characters are parsed." ) -#:def_cmd( "ISARENA", "ISARENA", \ - "wszst ISARENA [source]...", \ +#:def_cmd( "IS_ARENA", "IS-ARENA|ISARENA", \ + "wszst IS_ARENA [source]...", \ "Analyse each track for its arena status and print a line with a" \ - " status code and the track name. The status code is: »-RACE« for a" \ - " racing track, »?MAYBE« for likely an arena, »+ARENA« for an" \ - " arena, »+DISPATCH« for an arena with dispatch points or any error" \ - " hint beginning with an »!«. So the very first character (one of" \ - " »!-?+«) can be used to distinguish the status class.\n" \ + " status code and the track name. $Wildcards$ and pipe characters are" \ + " parsed. The status code is: »-RACE« for a racing track, »?MAYBE«" \ + " for likely an arena, »+ARENA« for an arena, »+DISPATCH« for an" \ + " arena with dispatch points or any error hint beginning with an" \ + " »!«. So the very first character (one of »!-?+«) can be used to" \ + " distinguish the status class.\n" \ " The exit status is >2 on error, 2 (DIFFER), if at least one file is" \ " a racing track, or 0 (OK), if all sources are arenas." ) @@ -384,7 +385,7 @@ " directory '.' is available it becomes the root directory for all" \ " others. Compressed sources are compressed again with maximum" \ " compression (level 9). The destination is only written if any data" \ - " changed.\n" \ + " changed. $Wildcards$ and pipe characters are parsed.\n" \ " {wszst NORMALIZE} is the same as {wszst PATCH --norm}." ) #:def_cmd( "PATCH", "PATCH", \ @@ -393,7 +394,7 @@ " patching and transforming options and store the file again." \ " Compressed sources are compressed again. The destination is only" \ " written if any data changed or if stored in another file." \ - " $Wildcards$ are accepted." ) + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "COPY", "COPY|CP", \ "wszst COPY source dest\n" \ @@ -401,10 +402,12 @@ "COPY is an alternative command for copying and patching files. It" \ " uses the same internal procedure as command PATCH, but has another" \ " command line syntax.\n" \ - " The command copies all source files to the destination. If more than" \ - " 1 source is defined, the destination must be either a directory or a" \ - " destination filename with escapes. Patching is also possible and" \ - " option --overwrite is set implicitly." ) + " The command copies all source files to the destination. If no" \ + " destination is defined by options {--dest} or {--DEST}, then the" \ + " last parameter is used as destination. If more than 1 source is" \ + " defined, the destination must be either a directory or a destination" \ + " filename with escapes. $Wildcards$ and pipe characters are parsed." \ + " Patching is also possible and option --overwrite is set implicitly." ) #:def_cmd( "DUPLICATE", "DUPLICATE|DUP", \ "wszst DUPLICATE source [-d|-D] dest", \ @@ -427,28 +430,32 @@ " SZS, U8, BRRES or MDL file. If patching options are used, modify the" \ " data and write back the file using its original file format. Only" \ " the translation vector is modified and new translation and inverse" \ - " matrices are calculated." ) + " matrices are calculated. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "COMPRESS", "COMPRESS|COM", \ "wszst COMPRESS [source]...", \ "Compress and create a SZS archives. If the source is already" \ " compressed, then decompress and compress it again. The default" \ - " destination is @'%P/%N.szs'@." ) + " destination is @'%P/%N.szs'@. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "DECOMPRESS", "DECOMPRESS|DEC", \ "wszst DECOMPRESS [szs]...", \ - "Decompress SZS files. The default destination is @'%P/%N.u8'@." ) + "Decompress SZS files. The default destination is @'%P/%N.u8'@." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "ENCODE", "ENCODE|E", \ "wszst ENCODE [source_dir]...", \ " Create and/or encode sub files if necessary. It works like command" \ - " CREATE, but without creating a new first level archive file." ) + " CREATE, but without creating a new first level archive file." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "CREATE", "CREATE|C", \ "wszst CREATE [source_dir]...", \ "Create SZS, U8, PACK, BRRES, BREFF or BREFT archives by adding all" \ " not hidden files of the directory structure. Create and/or encode" \ - " sub files if necessary. The default destination is @'%P/%N%T'@." ) + " sub files if necessary. The default destination is @'%P/%N%T'@." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "UPDATE", "UPDATE|U", \ "wszst UPDATE [source]... [--source=] [--dest=]", \ @@ -457,95 +464,109 @@ " but instead of extracting, source files are searched in a prior" \ " extracted archive. Only files with the same size are updated. The" \ " secondary source is used to find the source sub files. The default" \ - " secondary source is @'%P/%N.d/'@." ) + " secondary source is @'%P/%N.d/'@. $Wildcards$ and pipe characters" \ + " are parsed." ) #:def_cmd( "EXTRACT", "EXTRACT|X", \ "wszst EXTRACT [source]...", \ "Extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \ - " archives. The default destination is @'%P/%N.d/'@." ) + " archives. The default destination is @'%P/%N.d/'@. $Wildcards$ and" \ + " pipe characters are parsed." ) #:def_cmd( "XDECODE", "XDECODE|XD", \ "wszst XDECODE [source]...", \ "Command @XDECODE@ is a short cut for {EXTRACT --decode}. It extract" \ " all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \ " archives and decodes all supported files. The default destination is" \ - " @'%P/%N.d/'@." ) + " @'%P/%N.d/'@. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "XEXPORT", "XEXPORT|XX", \ "wszst XEXPORT [source]...", \ "Command @XEXPORT@ is a short cut for {EXTRACT --decode --export}. It" \ " extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \ " archives and decodes all supported files with enabled export mode." \ - " The default destination is @'%P/%N.d/'@." ) + " The default destination is @'%P/%N.d/'@. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "XALL", "XALL|XA", \ "wszst XALL [source]...", \ "Command @XALL@ is a short cut for {EXTRACT --all}. It extract all sub" \ " files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives" \ " recursively and decodes all supported files. The default destination" \ - " is @'%P/%N.d/'@." ) + " is @'%P/%N.d/'@. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "XCOMMON", "XCOMMON", \ "wszst XCOMMON [source]...", \ "Command @XCOMMON@ is a short cut for {EXTRACT --basedir=common}. Scan" \ " archives and extract files from archives, that are below directory" \ - " @'common'@. The default destination is @'%P/%N.d/'@." ) + " @'common'@. The default destination is @'%P/%N.d/'@. $Wildcards$ and" \ + " pipe characters are parsed." ) #:def_cmd( "BINARY", "BINARY|BIN", \ "wszst BINARY [source]...", \ "Read each source file (binary or text, but never archives) and write" \ - " the content as binary file. The file extension of the new file" \ - " depends on the file type, but is usually @.bin@. Currently supported" \ - " file formats are @BMG@, @GEOHIT@, @ITEMSLOT@, @KCL@, @KMG@, @KMP@," \ - " @LEX@, @OBJFLOW@, @PAT@ and the related text formats." ) + " the content as binary file. $Wildcards$ and pipe characters are" \ + " parsed.\n" \ + " The file extension of the new file depends on the file type, but is" \ + " usually @.bin@. Currently supported file formats are @BMG@," \ + " @GEOHIT@, @ITEMSLOT@, @KCL@, @KMG@, @KMP@, @LEX@, @OBJFLOW@, @PAT@" \ + " and the related text formats." ) #:def_cmd( "TEXT", "TEXT|TXT", \ "wszst TEXT [source]...", \ "Read each source file (binary or text, but never archives) and write" \ - " the content as text file. The file extension of the new file is" \ - " usually @.txt@. Currently supported file formats are @BMG@," \ - " @GEOHIT@, @ITEMSLOT@, @KCL@, @KMG@, @KMP@, @LEX@, @OBJFLOW@, @PAT@" \ - " and the related text formats." ) + " the content as text file. $Wildcards$ and pipe characters are" \ + " parsed.\n" \ + " The file extension of the new file is usually @.txt@. Currently" \ + " supported file formats are @BMG@, @GEOHIT@, @ITEMSLOT@, @KCL@," \ + " @KMG@, @KMP@, @LEX@, @OBJFLOW@, @PAT@ and the related text formats." ) #:def_cmd( "CAT", "CAT", \ "wszst CAT [source/subfile]...", \ "Extract one or more sub files of SZS, U8, PACK, BRRES, BREFF, BREFT" \ - " and RARC archives. The output of all source files is concatenated" \ - " and written to stdout." ) + " and RARC archives. $Wildcards$, pipe characters and sub-files are" \ + " parsed. The output of all source files is concatenated and written" \ + " to stdout." ) #:def_cmd( "BMG", "BMG", \ "wszst BMG [source]...", \ "For each archive all BMG sub files are searched and, if found," \ " decoded and printed as combined BMG text file. The command works" \ - " exactly like {wbmgt MIX}." ) + " exactly like {wbmgt MIX}. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "KCL", "KCL", \ "wszst KCL [source]...", \ "For each archive the KCL sub file @course.kcl@ is searched and, if" \ - " found, decoded and printed (copied to stdout).\n" \ + " found, decoded and printed (copied to stdout). $Wildcards$, pipe" \ + " characters and sub-files are parsed.\n" \ " Automated dropping of bad KCL triangles is enabled if no other drop" \ - " option is specified by option {--kcl}." ) + " option is specified by option {--kcl}. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "KMP", "KMP", \ "wszst KMP [source]...", \ "For each archive the KMP sub file @course.kmp@ is searched and, if" \ - " found, decoded and printed (copied to stdout)." ) + " found, decoded and printed (copied to stdout). $Wildcards$, pipe" \ + " characters and sub-files are parsed." ) #:def_cmd( "LEX", "LEX", \ "wszst LEX [source]...", \ "For each archive the LEX sub file @course.lex@ is searched and, if" \ - " found, decoded and printed (copied to stdout)." ) + " found, decoded and printed (copied to stdout). $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "INFO", "INFO", \ "wszst INFO [source]...", \ "For each archive a file named @info.txt@ and, if not found," \ " @credits.txt@ is searched, ignoring case. The first found file of" \ - " each archive is printed (copied to stdout)." ) + " each archive is printed (copied to stdout). $Wildcards$, pipe" \ + " characters and sub-files are parsed." ) #:def_cmd( "YAZDUMP", "YAZDUMP|YD", \ "wszst YAZDUMP [szs]...", \ "Analyze YAZ compression and print a dump to stdout. Ignore files" \ - " without YAZ compression." ) + " without YAZ compression. $Wildcards$ and pipe characters are parsed." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -1088,8 +1109,8 @@ " all. The other allowed keywords are: @FORCE, NEW, RM-SPCITEM, LEFT," \ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \ - " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \ - " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT@ and" \ + " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP .." \ + " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 .. TINY-7, INPLACE, SILENT@ and" \ " @LOG@." ) #:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \ @@ -1213,39 +1234,40 @@ #:def_opt( "LT_CLEAR", "lt-clear|ltclear", "G", \ "", \ - "Clear the LEX/TEST section and remove the section and course.lex if" \ - " empty. This option is executed before all other --lt-* options." ) + "Clear LEX sections TEST and DEV1 and remove the section and" \ + " course.lex if empty. This option is executed before all other --lt-*" \ + " options." ) #:def_opt( "LT_ONLINE", "lt-online|ltonline", "GP", \ "mode", \ - "Set LEX/TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" \ + "Set LEX:TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" \ " @AUTO@ (default), @NEVER@ or @ALWAYS@. Only track.szs files are" \ " modified. If needed, file course.lex and section TEST are created or" \ " removed if empty." ) #:def_opt( "LT_N_PLAYERS", "lt-n-players|lt-nplayers|ltnplayers", "GP", \ "offline,online", \ - "Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer" \ + "Set LEX:TEST parameters N-OFFLINE and N-ONLINE to these integer" \ " values. Only track.szs files are modified. If needed, file" \ " course.lex and section TEST are created or removed if empty." ) #:def_opt( "LT_COND_BIT", "lt-cond-bit|lt-condbit|ltcondbit", "GP", \ "bitnum", \ - "Set LEX/TEST parameter COND-BIT to this integer value. Use -1 to" \ + "Set LEX:TEST parameter COND-BIT to this integer value. Use -1 to" \ " deactivate this COND-BIT. Only track.szs files are modified. If" \ " needed, file course.lex and section TEST are created or removed if" \ " empty." ) #:def_opt( "LT_GAME_MODE", "lt-game-mode|lt-gamemode|ltgamemode", "GP", \ "mode", \ - "Set LEX/TEST parameter GAME-MODE to this MODE. MODE is one of @AUTO@" \ + "Set LEX:TEST parameter GAME-MODE to this MODE. MODE is one of @AUTO@" \ " (default), @BALLOON, COIN, VERSUS@ or @ITEMRAIN@. Only track.szs" \ " files are modified. If needed, file course.lex and section TEST are" \ " created or removed if empty." ) #:def_opt( "LT_ENGINE", "lt-engine|ltengine", "GP", \ "mode", \ - "Set LEX/TEST parameter ENGINE to this MODE. MODE is one of @AUTO@" \ + "Set LEX:TEST parameter ENGINE to this MODE. MODE is one of @AUTO@" \ " (default), @BATTLE, 50CC, 100CC, 150CC, 200CC, 150M@ or @200M@. Only" \ " track.szs files are modified. If needed, file course.lex and section" \ " TEST are created or removed if empty." ) @@ -1333,6 +1355,11 @@ " change the menu as required by LE-CODE to be able to select tracks" \ " from more than 8 cups." ) +#:def_opt( "9LAPS", "9laps", "C", \ + "", \ + "Patch RACE*.szs files from directory .../Scene/UI/ to support 9 laps." \ + " See https://wiki.tockdom.com/wiki/Lap_Texture_Fix for details." ) + #:def_opt( "TITLE_SCREEN", "title-screen|titlescreen", "CP", \ "dir", \ "Specify a directory from which to search and replace title screens." \ @@ -1434,7 +1461,11 @@ " syntax information ({--no-header}). If set twice, the output of" \ " unneeded sections is also suppressed." ) -#:def_opt( "IN_ORDER", "in-order|inorder", "CM", \ +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ "", \ "Process the input files in order of the command line and don't delete" \ " duplicates." ) @@ -2160,7 +2191,19 @@ "", \ "" ) -#:def_cmd_opt( "WILDCARDS", "IGNORE", \ +#:def_cmd_opt( "INSTALL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "INSTALL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "INSTALL", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "WILDCARDS", "NO_WILDCARDS", \ "", \ "" ) @@ -2168,6 +2211,10 @@ "", \ "" ) +#:def_cmd_opt( "WILDCARDS", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "TEST", "VERBOSE", \ "", \ "Print the matrices of transformations." ) @@ -2206,12 +2253,11 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) -#:def_cmd_opt( "FILETYPE", "NO_HEADER", \ +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ "", \ "" ) @@ -2219,11 +2265,16 @@ "", \ "" ) -#:def_cmd_opt( "UI_CHECK", "LONG", \ +#:def_cmd_opt( "FILETYPE", "LONG", \ "", \ - "Print the result as technical list." ) + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) -#:def_cmd_opt( "UI_CHECK", "NO_HEADER", \ +#:def_cmd_opt( "FILETYPE", "NO_HEADER", \ + "", \ + "" ) + +#:def_cmd_opt( "UI_CHECK", "NO_WILDCARDS", \ "", \ "" ) @@ -2235,6 +2286,14 @@ "", \ "" ) +#:def_cmd_opt( "UI_CHECK", "LONG", \ + "", \ + "Print the result as technical list." ) + +#:def_cmd_opt( "UI_CHECK", "NO_HEADER", \ + "", \ + "" ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -2376,6 +2435,14 @@ "", \ "Print full matrix of delta values." ) +#:def_cmd_opt( "AUTOADD", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "AUTOADD", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "AUTOADD", "IGNORE", \ "", \ "" ) @@ -2474,6 +2541,18 @@ "", \ "" ) +#:def_cmd_opt( "CODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "SUBFILE", "DEST", \ "", \ "" ) @@ -2506,10 +2585,22 @@ "", \ "" ) +#:def_cmd_opt( "LIST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "RECURSE", \ "", \ "" ) +#:def_cmd_opt( "LIST", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "EXT", \ "", \ "" ) @@ -2535,10 +2626,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST", "IGNORE_SETUP", \ "", \ "" ) @@ -2699,15 +2786,19 @@ "", \ "" ) -#:def_cmd_opt( "LIST", "IGNORE", \ +#:def_cmd_opt( "LIST", "NORM", \ "", \ "" ) -#:def_cmd_opt( "LIST", "NORM", \ +#:def_cmd_opt( "LIST", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "LIST", "SLOT", \ +#:def_cmd_opt( "LIST_L", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_L", "IN_ORDER", \ "", \ "" ) @@ -2715,6 +2806,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_L", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_L", "EXT", \ "", \ "" ) @@ -2740,10 +2835,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_L", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_L", "IGNORE_SETUP", \ "", \ "" ) @@ -2904,15 +2995,19 @@ "", \ "" ) -#:def_cmd_opt( "LIST_L", "IGNORE", \ +#:def_cmd_opt( "LIST_L", "NORM", \ "", \ "" ) -#:def_cmd_opt( "LIST_L", "NORM", \ +#:def_cmd_opt( "LIST_L", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "LIST_L", "SLOT", \ +#:def_cmd_opt( "LIST_LL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_LL", "IN_ORDER", \ "", \ "" ) @@ -2920,6 +3015,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LL", "EXT", \ "", \ "" ) @@ -2945,10 +3044,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LL", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_LL", "IGNORE_SETUP", \ "", \ "" ) @@ -3109,15 +3204,19 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LL", "IGNORE", \ +#:def_cmd_opt( "LIST_LL", "NORM", \ "", \ "" ) -#:def_cmd_opt( "LIST_LL", "NORM", \ +#:def_cmd_opt( "LIST_LL", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "LIST_LL", "SLOT", \ +#:def_cmd_opt( "LIST_LLL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_LLL", "IN_ORDER", \ "", \ "" ) @@ -3125,6 +3224,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LLL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LLL", "EXT", \ "", \ "" ) @@ -3150,10 +3253,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LLL", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_LLL", "IGNORE_SETUP", \ "", \ "" ) @@ -3314,15 +3413,19 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LLL", "IGNORE", \ +#:def_cmd_opt( "LIST_LLL", "NORM", \ "", \ "" ) -#:def_cmd_opt( "LIST_LLL", "NORM", \ +#:def_cmd_opt( "LIST_LLL", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "LIST_LLL", "SLOT", \ +#:def_cmd_opt( "LIST_A", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_A", "IN_ORDER", \ "", \ "" ) @@ -3330,6 +3433,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_A", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_A", "EXT", \ "", \ "" ) @@ -3355,10 +3462,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_A", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_A", "IGNORE_SETUP", \ "", \ "" ) @@ -3519,15 +3622,19 @@ "", \ "" ) -#:def_cmd_opt( "LIST_A", "IGNORE", \ +#:def_cmd_opt( "LIST_A", "NORM", \ "", \ "" ) -#:def_cmd_opt( "LIST_A", "NORM", \ +#:def_cmd_opt( "LIST_A", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "LIST_A", "SLOT", \ +#:def_cmd_opt( "LIST_LA", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_LA", "IN_ORDER", \ "", \ "" ) @@ -3535,6 +3642,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LA", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LA", "EXT", \ "", \ "" ) @@ -3560,10 +3671,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LA", "IN_ORDER", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_LA", "IGNORE_SETUP", \ "", \ "" ) @@ -3724,10 +3831,6 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LA", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "LIST_LA", "NORM", \ "", \ "" ) @@ -3755,10 +3858,22 @@ " list ordered by @OFFSET@ is printed. If set twice, a third list with" \ " order @NONE@ is appended." ) +#:def_cmd_opt( "ILIST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ILIST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST", "RECURSE", \ "", \ "" ) +#:def_cmd_opt( "ILIST", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST", "ALL", \ "", \ "" ) @@ -3936,11 +4051,15 @@ "", \ "" ) -#:def_cmd_opt( "ILIST", "IGNORE", \ +#:def_cmd_opt( "ILIST", "NORM", \ "", \ "" ) -#:def_cmd_opt( "ILIST", "NORM", \ +#:def_cmd_opt( "ILIST_L", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ILIST_L", "IN_ORDER", \ "", \ "" ) @@ -3948,6 +4067,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_L", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_L", "ALL", \ "", \ "" ) @@ -4125,11 +4248,15 @@ "", \ "" ) -#:def_cmd_opt( "ILIST_L", "IGNORE", \ +#:def_cmd_opt( "ILIST_L", "NORM", \ "", \ "" ) -#:def_cmd_opt( "ILIST_L", "NORM", \ +#:def_cmd_opt( "ILIST_LL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ILIST_LL", "IN_ORDER", \ "", \ "" ) @@ -4137,6 +4264,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_LL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_LL", "ALL", \ "", \ "" ) @@ -4314,11 +4445,15 @@ "", \ "" ) -#:def_cmd_opt( "ILIST_LL", "IGNORE", \ +#:def_cmd_opt( "ILIST_LL", "NORM", \ "", \ "" ) -#:def_cmd_opt( "ILIST_LL", "NORM", \ +#:def_cmd_opt( "ILIST_A", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ILIST_A", "IN_ORDER", \ "", \ "" ) @@ -4326,6 +4461,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_A", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_A", "ALL", \ "", \ "" ) @@ -4503,11 +4642,15 @@ "", \ "" ) -#:def_cmd_opt( "ILIST_A", "IGNORE", \ +#:def_cmd_opt( "ILIST_A", "NORM", \ "", \ "" ) -#:def_cmd_opt( "ILIST_A", "NORM", \ +#:def_cmd_opt( "ILIST_LA", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ILIST_LA", "IN_ORDER", \ "", \ "" ) @@ -4515,6 +4658,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_LA", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_LA", "ALL", \ "", \ "" ) @@ -4692,11 +4839,15 @@ "", \ "" ) -#:def_cmd_opt( "ILIST_LA", "IGNORE", \ +#:def_cmd_opt( "ILIST_LA", "NORM", \ "", \ "" ) -#:def_cmd_opt( "ILIST_LA", "NORM", \ +#:def_cmd_opt( "MEMORY", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "MEMORY", "IN_ORDER", \ "", \ "" ) @@ -4704,6 +4855,10 @@ "", \ "" ) +#:def_cmd_opt( "MEMORY", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "MEMORY", "EXT", \ "", \ "" ) @@ -4885,15 +5040,19 @@ "", \ "" ) -#:def_cmd_opt( "MEMORY", "IGNORE", \ +#:def_cmd_opt( "MEMORY", "NORM", \ "", \ "" ) -#:def_cmd_opt( "MEMORY", "NORM", \ +#:def_cmd_opt( "MEMORY", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "MEMORY", "SLOT", \ +#:def_cmd_opt( "MEMORY_A", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "MEMORY_A", "IN_ORDER", \ "", \ "" ) @@ -4901,6 +5060,10 @@ "", \ "" ) +#:def_cmd_opt( "MEMORY_A", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "MEMORY_A", "EXT", \ "", \ "" ) @@ -5082,15 +5245,23 @@ "", \ "" ) -#:def_cmd_opt( "MEMORY_A", "IGNORE", \ +#:def_cmd_opt( "MEMORY_A", "NORM", \ "", \ "" ) -#:def_cmd_opt( "MEMORY_A", "NORM", \ +#:def_cmd_opt( "MEMORY_A", "SLOT", \ "", \ "" ) -#:def_cmd_opt( "MEMORY_A", "SLOT", \ +#:def_cmd_opt( "DUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IGNORE", \ "", \ "" ) @@ -5259,11 +5430,19 @@ "", \ "" ) -#:def_cmd_opt( "DUMP", "IGNORE", \ +#:def_cmd_opt( "DUMP", "NORM", \ "", \ "" ) -#:def_cmd_opt( "DUMP", "NORM", \ +#:def_cmd_opt( "SHA1", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "RECURSE", \ "", \ "" ) @@ -5474,14 +5653,22 @@ " counter, speed factor and slot info are inserted beteen checksum and" \ " filename. All columns are separated by one or two spaces." ) -#:def_cmd_opt( "ANALYZE", "LONG", \ +#:def_cmd_opt( "ANALYZE", "NO_WILDCARDS", \ "", \ - "Append a list of special files with size, SHA1 and file name." ) + "" ) + +#:def_cmd_opt( "ANALYZE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "ANALYZE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "ANALYZE", "LONG", \ + "", \ + "Append a list of special files with size, SHA1 and file name." ) + #:def_cmd_opt( "ANALYZE", "QUIET", \ "", \ "Suppress logging of input and output files." ) @@ -5539,6 +5726,18 @@ "", \ "" ) +#:def_cmd_opt( "SPLIT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "SPLIT", "LOAD_PREFIX", \ "", \ "" ) @@ -5559,10 +5758,6 @@ "", \ "" ) -#:def_cmd_opt( "SPLIT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "SPLIT", "SECTIONS", \ "", \ "Dump info using configuration or section syntax. Use {--var name} as" \ @@ -5612,6 +5807,14 @@ "", \ "" ) +#:def_cmd_opt( "IS_TEXTURE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_TEXTURE", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "IS_TEXTURE", "IGNORE", \ "", \ "" ) @@ -5628,6 +5831,18 @@ "", \ "Append a colon and the filename after each status." ) +#:def_cmd_opt( "FEATURES", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "FEATURES", "BRIEF", \ "", \ "Suppres comments at all. If set twice, suppress empty lines (for" \ @@ -5642,10 +5857,6 @@ " (visual impact), @B@ (battle impact), @R@ (racing impact), @T@ (time" \ " trial impact), @L@ (local=offline impact) and @O@ (online impact)." ) -#:def_cmd_opt( "FEATURES", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "FEATURES", "QUIET", \ "", \ "Suppress logging of input and output files." ) @@ -5703,6 +5914,14 @@ "", \ "" ) +#:def_cmd_opt( "DISTRIBUTION", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "DISTRIBUTION", "IGNORE", \ "", \ "" ) @@ -5923,14 +6142,22 @@ "", \ "" ) -#:def_cmd_opt( "CHECK", "NO_CHECK", \ +#:def_cmd_opt( "CHECK", "NO_WILDCARDS", \ "", \ - "Don't check the KCL and KMP files." ) + "" ) + +#:def_cmd_opt( "CHECK", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "CHECK", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "CHECK", "NO_CHECK", \ + "", \ + "Don't check the KCL and KMP files." ) + #:def_cmd_opt( "CHECK", "COLORS", \ "", \ "" ) @@ -6304,6 +6531,10 @@ "", \ "" ) +#:def_cmd_opt( "CHECK", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "CHECK", "TITLE_SCREEN", \ "", \ "" ) @@ -6312,6 +6543,14 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SLOTS", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "IGNORE", \ "", \ "" ) @@ -6677,6 +6916,10 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "TITLE_SCREEN", \ "", \ "" ) @@ -6685,6 +6928,20 @@ "", \ "" ) +#:def_cmd_opt( "STGI", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "STGI", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "STGI", "IGNORE", \ + "", \ + "If set, ignore non existing source files and files without KMP" \ + " without warning. If set twice, ignore files with standard settings" \ + " too." ) + #:def_cmd_opt( "STGI", "COLORS", \ "", \ "" ) @@ -6697,36 +6954,50 @@ "", \ "" ) -#:def_cmd_opt( "STGI", "IGNORE", \ +#:def_cmd_opt( "IS_ARENA", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_ARENA", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_ARENA", "IGNORE", \ "", \ "If set, ignore non existing source files and files without KMP" \ - " without warning. If set twice, ignore files with standard settings" \ - " too." ) + " without warning." ) -#:def_cmd_opt( "ISARENA", "COLORS", \ +#:def_cmd_opt( "IS_ARENA", "COLORS", \ "", \ "" ) -#:def_cmd_opt( "ISARENA", "NO_COLORS", \ +#:def_cmd_opt( "IS_ARENA", "NO_COLORS", \ "", \ "" ) -#:def_cmd_opt( "ISARENA", "NO_HEADER", \ +#:def_cmd_opt( "IS_ARENA", "NO_HEADER", \ "", \ "" ) -#:def_cmd_opt( "ISARENA", "BRIEF", \ +#:def_cmd_opt( "IS_ARENA", "BRIEF", \ "", \ "If set, suppress the output of header and filenames." ) -#:def_cmd_opt( "ISARENA", "QUIET", \ +#:def_cmd_opt( "IS_ARENA", "QUIET", \ "", \ "If set, print nothing and set only the exit status." ) -#:def_cmd_opt( "ISARENA", "IGNORE", \ +#:def_cmd_opt( "NORMALIZE", "NO_WILDCARDS", \ "", \ - "If set, ignore non existing source files and files without KMP" \ - " without warning." ) + "" ) + +#:def_cmd_opt( "NORMALIZE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "NORMALIZE", "IGNORE", \ + "", \ + "" ) #:def_cmd_opt( "NORMALIZE", "DEST", \ "", \ @@ -6792,10 +7063,6 @@ "", \ "" ) -#:def_cmd_opt( "NORMALIZE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "NORMALIZE", "NORM", \ "", \ "" ) @@ -7036,6 +7303,10 @@ "", \ "" ) +#:def_cmd_opt( "NORMALIZE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "NORMALIZE", "TITLE_SCREEN", \ "", \ "" ) @@ -7044,6 +7315,18 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "DEST", \ "", \ "" ) @@ -7112,10 +7395,6 @@ "", \ "" ) -#:def_cmd_opt( "PATCH", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "PATCH", "COMPRESS", \ "", \ "" ) @@ -7360,6 +7639,10 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "TITLE_SCREEN", \ "", \ "" ) @@ -7368,6 +7651,18 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "DEST", \ "", \ "" ) @@ -7436,10 +7731,6 @@ "", \ "" ) -#:def_cmd_opt( "COPY", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "COPY", "COMPRESS", \ "", \ "" ) @@ -7684,6 +7975,10 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "TITLE_SCREEN", \ "", \ "" ) @@ -7696,6 +7991,18 @@ "", \ "" ) +#:def_cmd_opt( "DUPLICATE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUPLICATE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DUPLICATE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DUPLICATE", "DEST", \ "", \ "" ) @@ -7764,10 +8071,6 @@ "", \ "" ) -#:def_cmd_opt( "DUPLICATE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DUPLICATE", "COMPRESS", \ "", \ "" ) @@ -8012,6 +8315,10 @@ "", \ "" ) +#:def_cmd_opt( "DUPLICATE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "DUPLICATE", "TITLE_SCREEN", \ "", \ "" ) @@ -8020,6 +8327,18 @@ "", \ "" ) +#:def_cmd_opt( "MINIMAP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "MINIMAP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "MINIMAP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "MINIMAP", "LONG", \ "", \ "If set, print the matrices too. If set twice, print minimum and" \ @@ -8033,10 +8352,6 @@ "", \ "" ) -#:def_cmd_opt( "MINIMAP", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "MINIMAP", "COMPRESS", \ "", \ "" ) @@ -8205,6 +8520,18 @@ "", \ "" ) +#:def_cmd_opt( "COMPRESS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "COMPRESS", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "COMPRESS", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "COMPRESS", "DEST", \ "", \ "" ) @@ -8269,10 +8596,6 @@ "", \ "" ) -#:def_cmd_opt( "COMPRESS", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "COMPRESS", "COMPRESS", \ "", \ "" ) @@ -8517,6 +8840,10 @@ "", \ "" ) +#:def_cmd_opt( "COMPRESS", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "COMPRESS", "TITLE_SCREEN", \ "", \ "" ) @@ -8525,6 +8852,18 @@ "", \ "" ) +#:def_cmd_opt( "DECOMPRESS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECOMPRESS", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECOMPRESS", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECOMPRESS", "DEST", \ "", \ "" ) @@ -8569,10 +8908,6 @@ "", \ "" ) -#:def_cmd_opt( "DECOMPRESS", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECOMPRESS", "NORM", \ "", \ "" ) @@ -8809,6 +9144,10 @@ "", \ "" ) +#:def_cmd_opt( "DECOMPRESS", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "DECOMPRESS", "TITLE_SCREEN", \ "", \ "" ) @@ -8817,6 +9156,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "IGNORE_SETUP", \ "", \ "" ) @@ -9114,6 +9465,10 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "TITLE_SCREEN", \ "", \ "" ) @@ -9122,6 +9477,18 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "DEST", \ "", \ "" ) @@ -9523,6 +9890,10 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "TITLE_SCREEN", \ "", \ "" ) @@ -9531,7 +9902,11 @@ "", \ "" ) -#:def_cmd_opt( "UPDATE", "SOURCE", \ +#:def_cmd_opt( "UPDATE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "UPDATE", "IN_ORDER", \ "", \ "" ) @@ -9539,6 +9914,10 @@ "", \ "" ) +#:def_cmd_opt( "UPDATE", "SOURCE", \ + "", \ + "" ) + #:def_cmd_opt( "UPDATE", "DEST", \ "", \ "" ) @@ -9815,6 +10194,10 @@ "", \ "" ) +#:def_cmd_opt( "UPDATE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "UPDATE", "TITLE_SCREEN", \ "", \ "" ) @@ -9823,6 +10206,18 @@ "", \ "" ) +#:def_cmd_opt( "EXTRACT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "EXTRACT", "DEST", \ "", \ "" ) @@ -9899,10 +10294,6 @@ "", \ "" ) -#:def_cmd_opt( "EXTRACT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "EXTRACT", "NO_HEADER", \ "", \ "Suppress the syntax information section in decoded text files." ) @@ -10127,6 +10518,10 @@ "", \ "" ) +#:def_cmd_opt( "EXTRACT", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "EXTRACT", "TITLE_SCREEN", \ "", \ "" ) @@ -10135,6 +10530,18 @@ "", \ "" ) +#:def_cmd_opt( "XDECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "XDECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "XDECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "XDECODE", "DEST", \ "", \ "" ) @@ -10211,10 +10618,6 @@ "", \ "" ) -#:def_cmd_opt( "XDECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "XDECODE", "NO_HEADER", \ "", \ "Suppress the syntax information section in decoded text files." ) @@ -10439,6 +10842,10 @@ "", \ "" ) +#:def_cmd_opt( "XDECODE", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "XDECODE", "TITLE_SCREEN", \ "", \ "" ) @@ -10447,6 +10854,18 @@ "", \ "" ) +#:def_cmd_opt( "XEXPORT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "XEXPORT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "XEXPORT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "XEXPORT", "DEST", \ "", \ "" ) @@ -10523,10 +10942,6 @@ "", \ "" ) -#:def_cmd_opt( "XEXPORT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "XEXPORT", "NO_HEADER", \ "", \ "Suppress the syntax information section in decoded text files." ) @@ -10751,6 +11166,10 @@ "", \ "" ) +#:def_cmd_opt( "XEXPORT", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "XEXPORT", "TITLE_SCREEN", \ "", \ "" ) @@ -10759,6 +11178,18 @@ "", \ "" ) +#:def_cmd_opt( "XALL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "XALL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "XALL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "XALL", "DEST", \ "", \ "" ) @@ -10835,10 +11266,6 @@ "", \ "" ) -#:def_cmd_opt( "XALL", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "XALL", "NO_HEADER", \ "", \ "Suppress the syntax information section in decoded text files." ) @@ -11063,6 +11490,10 @@ "", \ "" ) +#:def_cmd_opt( "XALL", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "XALL", "TITLE_SCREEN", \ "", \ "" ) @@ -11071,6 +11502,18 @@ "", \ "" ) +#:def_cmd_opt( "XCOMMON", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "XCOMMON", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "XCOMMON", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "XCOMMON", "DEST", \ "", \ "" ) @@ -11103,19 +11546,23 @@ "", \ "" ) -#:def_cmd_opt( "XCOMMON", "IGNORE", \ +#:def_cmd_opt( "BINARY", "NO_WILDCARDS", \ "", \ "" ) -#:def_cmd_opt( "BINARY", "KMG_LIMIT", \ +#:def_cmd_opt( "BINARY", "IN_ORDER", \ "", \ "" ) -#:def_cmd_opt( "BINARY", "KMG_COPY", \ +#:def_cmd_opt( "BINARY", "IGNORE", \ "", \ "" ) -#:def_cmd_opt( "BINARY", "IGNORE", \ +#:def_cmd_opt( "BINARY", "KMG_LIMIT", \ + "", \ + "" ) + +#:def_cmd_opt( "BINARY", "KMG_COPY", \ "", \ "" ) @@ -11151,6 +11598,14 @@ "", \ "" ) +#:def_cmd_opt( "TEXT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "TEXT", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "TEXT", "IGNORE", \ "", \ "" ) @@ -11280,6 +11735,14 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "IGNORE", \ "", \ "" ) @@ -11369,6 +11832,14 @@ "Print long numeric message IDs instead of alternative message names" \ " like Txx, Uxx or Mxx." ) +#:def_cmd_opt( "BMG", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "BMG", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "BMG", "IGNORE", \ "", \ "" ) @@ -11442,6 +11913,14 @@ "", \ "" ) +#:def_cmd_opt( "KCL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "KCL", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "KCL", "IGNORE", \ "", \ "" ) @@ -11654,6 +12133,10 @@ "", \ "" ) +#:def_cmd_opt( "KCL", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "KCL", "TITLE_SCREEN", \ "", \ "" ) @@ -11662,6 +12145,14 @@ "", \ "" ) +#:def_cmd_opt( "KMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "KMP", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "KMP", "IGNORE", \ "", \ "" ) @@ -11878,6 +12369,10 @@ "", \ "" ) +#:def_cmd_opt( "KMP", "9LAPS", \ + "", \ + "" ) + #:def_cmd_opt( "KMP", "TITLE_SCREEN", \ "", \ "" ) @@ -11886,6 +12381,14 @@ "", \ "" ) +#:def_cmd_opt( "LEX", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LEX", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LEX", "IGNORE", \ "", \ "" ) @@ -11902,6 +12405,14 @@ "", \ "" ) +#:def_cmd_opt( "INFO", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "INFO", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "INFO", "IGNORE", \ "", \ "" ) @@ -11910,6 +12421,14 @@ "", \ "Suppress output of the printed filename." ) +#:def_cmd_opt( "GHOST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "GHOST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "GHOST", "IGNORE", \ "", \ "" ) @@ -11967,6 +12486,18 @@ "", \ "" ) +#:def_cmd_opt( "YAZDUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "YAZDUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "YAZDUMP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "YAZDUMP", "DEST", \ "", \ "" ) @@ -12076,10 +12607,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wbmgt TEST [options]... [ignored]...", \ @@ -12101,7 +12629,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wbmgt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wbmgt FILEATTRIB [keyword]...", \ @@ -12131,17 +12660,20 @@ #:def_cmd( "SECTIONS", "SECTIONS", \ "wbmgt SECTIONS [source]...", \ "List all sections of each binary BMG file. Print offset, size, magic" \ - " and a short info. If known, print number and size of elements too." ) + " and a short info. If known, print number and size of elements too." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "LIST", "LIST|LS|LL", \ "wbmgt LIST [source]...", \ "List messages to proof the content. Patches are applied before" \ - " listing. The lines are cut to fit the terminal width." ) + " listing. The lines are cut to fit the terminal width. $Wildcards$" \ + " and pipe characters are parsed." ) #:def_cmd( "SLOTS", "SLOTS", \ "wbmgt SLOTS [source]...", \ "Print a slot ordered list with slot number, message id, delta and" \ - " attributes. Patches are applied before listing." ) + " attributes. Patches are applied before listing. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "DIFF", "DIFF|CMP", \ "wbmgt DIFF source1 source2\n" \ @@ -12156,7 +12688,8 @@ "Read the entered BMG files (text, binary or szs sub file) and print" \ " them as decoded text files to standard output. All BMG files of a" \ " single archive (SZS,...) are combined to 1 source. The output of all" \ - " source files is concatenated." ) + " source files is concatenated. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "MIX", "MIX", \ "wbmgt MIX [source]...", \ @@ -12164,7 +12697,7 @@ " them as decoded text files to standard output. All BMG files of all" \ " archives (SZS,...) are read. The output of all source files is" \ " combined and strings of later source files override prior defined" \ - " strings." ) + " strings. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "IDENTIFIER", "IDENTIFIER|ID|IDENTIFY", \ "wbmgt IDENTIFIER", \ @@ -12177,20 +12710,23 @@ "Read the entered message files and decode them to text files. All BMG" \ " files of a single archive (SZS,...) are concatenated to 1 source." \ " This command is similar to {PATCH}, but the result is always" \ - " decoded. The default destination is @'%P/%N.txt'@." ) + " decoded. The default destination is @'%P/%N.txt'@. $Wildcards$ and" \ + " pipe characters are parsed." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wbmgt ENCODE [source]...", \ "Read the entered message files and encode them to BMG files. All BMG" \ " files of a single archive (SZS,...) are concatenated to 1 source." \ " This command is similar to {PATCH}, but the result is always" \ - " encoded. The default destination is @'%P/%N.bmg'@." ) + " encoded. The default destination is @'%P/%N.bmg'@. $Wildcards$ and" \ + " pipe characters are parsed." ) #:def_cmd( "PATCH", "PATCH|PAT", \ "wbmgt PATCH [source]...", \ "Patch the entered files by using the patch list specified by option" \ " {--patch-bmg}. The coding of the source files is not changed. The" \ - " default destination is @'%P/%F'@.\n" \ + " default destination is @'%P/%F'@. $Wildcards$ and pipe characters" \ + " are parsed.\n" \ " Use {wszst patch --patch-bmg ...} to patch BMG files within a SZS" \ " file." ) @@ -12349,6 +12885,15 @@ " empty lines. If set 3 times, the @#BMG@ file indentification is also" \ " suppressed." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \ "size", \ "This security option defines the maximum file size for input files;" \ @@ -12668,15 +13213,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -12698,10 +13251,26 @@ "", \ "Exclude the section header from output." ) +#:def_cmd_opt( "SECTIONS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SECTIONS", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "SECTIONS", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "LIST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "IGNORE", \ "", \ "" ) @@ -12726,6 +13295,14 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SLOTS", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "IGNORE", \ "", \ "" ) @@ -12778,6 +13355,18 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "NO_HEADER", \ "", \ "" ) @@ -12846,10 +13435,6 @@ "", \ "" ) -#:def_cmd_opt( "CAT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "CAT", "PATCH_BMG", \ "", \ "" ) @@ -12862,6 +13447,18 @@ "", \ "" ) +#:def_cmd_opt( "MIX", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "MIX", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "MIX", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "MIX", "NO_HEADER", \ "", \ "" ) @@ -12930,10 +13527,6 @@ "", \ "" ) -#:def_cmd_opt( "MIX", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "MIX", "PATCH_BMG", \ "", \ "" ) @@ -13022,6 +13615,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "DEST", \ "", \ "" ) @@ -13122,10 +13727,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "PATCH_BMG", \ "", \ "" ) @@ -13138,6 +13739,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -13190,10 +13803,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "ENCODE", "PATCH_BMG", \ "", \ "" ) @@ -13210,6 +13819,18 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "DEST", \ "", \ "" ) @@ -13310,10 +13931,6 @@ "", \ "" ) -#:def_cmd_opt( "PATCH", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "PATCH", "PATCH_BMG", \ "", \ "" ) @@ -13375,10 +13992,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wctct TEST [options]... [ignored]...", \ @@ -13400,7 +14014,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wctct FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wctct FILEATTRIB [keyword]...", \ @@ -13441,14 +14056,15 @@ #:def_cmd( "DUMP", "D|DUMP", \ "wctct DUMP [source]...", \ "Print an information dump for the CT-CODE of each source file. BRRES," \ - " TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input." ) + " TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input. $Wildcards$" \ + " and pipe characters are parsed." ) #:def_cmd( "CAT", "CAT", \ "wctct CAT [source]...", \ "Read the source files and print the CT-CODE part them as decoded text" \ - " files to standard output. The output of all source files is" \ - " concatenated. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted" \ - " as input." ) + " files to standard output. $Wildcards$ and pipe characters are" \ + " parsed. The output of all source files is concatenated. BRRES, TEX0," \ + " CT-CODE, CT-TEXT and LE-BIN are accepted as input." ) #:def_cmd( "BMG", "BMG", \ "wctct BMG [source]...", \ @@ -13463,26 +14079,28 @@ #:def_cmd( "DECODE", "DECODE|DEC", \ "wctct DECODE [source]...", \ - "Read the source files and decode them to CT-TEXT files. The default" \ - " destination is @'%P/%N.txt'@. BRRES, TEX0, CT-CODE, CT-TEXT and" \ - " LE-BIN are accepted as input." ) + "Read the source files and decode them to CT-TEXT files. $Wildcards$" \ + " and pipe characters are parsed. The default destination is" \ + " @'%P/%N.txt'@. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted" \ + " as input." ) #:def_cmd( "CREATE", "CREATE|C", \ "wctct CREATE keyword [source]...", \ "Read the source files, scan the CT-CODE part and create an output" \ - " file controlled by the keyword. BRRES, TEX0, CT-CODE, CT-TEXT and" \ - " LE-BIN files are accepted as input. Possible keywords are: @CUP1," \ - " CRS1, r-MOD1, r-MOD2, r-OVR1, r-BAD1CODE, r-BAD1DATA (=r-CODE)," \ - " r-TEX0, r-BRRES, r-SZS, BMG, TRACKS, LIST, REF@ and @FULL@. 'r'" \ - " defines the region and is one of @EU, RMCP, US, RMCE, JP, RMCJ, KO@" \ - " or @RMCK@.\n" \ + " file controlled by the keyword. $Wildcards$ and pipe characters are" \ + " parsed. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN files are accepted" \ + " as input. Possible keywords are: @CUP1, CRS1, r-MOD1, r-MOD2," \ + " r-OVR1, r-BAD1CODE, r-BAD1DATA (=r-CODE), r-TEX0, r-BRRES, r-SZS," \ + " BMG, TRACKS, LIST, REF@ and @FULL@. 'r' defines the region and is" \ + " one of @EU, RMCP, US, RMCE, JP, RMCJ, KO@ or @RMCK@.\n" \ " The Korean support needs external CT-CODE files. Use option" \ " {--ct-dir} to define at least one search path." ) #:def_cmd( "PATCH", "PATCH|P", \ "wctct PATCH [source]...", \ "Read each source file, find and scan the CT-CODE part and patch it." \ - " BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input." ) + " $Wildcards$ and pipe characters are parsed. BRRES, TEX0, CT-CODE," \ + " CT-TEXT and LE-BIN are accepted as input." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -13649,6 +14267,15 @@ "", \ "Suppress cross reference comments." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "RAW", "raw", "C", \ "", \ "Print BMG messages as UTF-8 text without escape sequences." ) @@ -14048,15 +14675,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -14095,6 +14730,18 @@ "", \ "" ) +#:def_cmd_opt( "DUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DUMP", "LONG", \ "", \ "Print headers as hexdump." ) @@ -14127,6 +14774,14 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "IGNORE", \ "", \ "" ) @@ -14414,6 +15069,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "WRITE_TRACKS", \ "", \ "" ) @@ -14450,10 +15117,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "LIST", \ "", \ "" ) @@ -14518,6 +15181,18 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "WRITE_TRACKS", \ "", \ "" ) @@ -14554,10 +15229,6 @@ "", \ "" ) -#:def_cmd_opt( "CREATE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "CREATE", "HEX", \ "", \ "" ) @@ -14685,6 +15356,18 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "WRITE_TRACKS", \ "", \ "" ) @@ -14721,10 +15404,6 @@ "", \ "" ) -#:def_cmd_opt( "PATCH", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "PATCH", "NO_CHECK", \ "", \ "" ) @@ -14802,10 +15481,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wimgt TEST [options]... [ignored]...", \ @@ -14827,7 +15503,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wimgt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wimgt FILEATTRIB [keyword]...", \ @@ -14839,44 +15516,50 @@ #:def_cmd( "LIST", "LIST|LS", \ "wimgt LIST [source]...", \ - "List images files and print file and image type." ) + "List images files and print file and image type. $Wildcards$ and pipe" \ + " characters are parsed." ) #:def_cmd( "LIST_L", "LIST-L|LL|LISTL", \ "wit LIST-L [source]...", \ "List images files and print file and image type and geometry data." \ - " 'LIST-L' is a short cut for {LIST --long}." ) + " $Wildcards$ and pipe characters are parsed. 'LIST-L' is a short cut" \ + " for {LIST --long}." ) #:def_cmd( "LIST_LL", "LIST-LL|LLL|LISTLL", \ "wit LIST-LL [source]...", \ "List images files and print file and image type and advanced geometry" \ - " data. 'LIST-LL' is a short cut for {LIST --long --long}." ) + " data. $Wildcards$ and pipe characters are parsed. 'LIST-LL' is a" \ + " short cut for {LIST --long --long}." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wimgt DECODE [source]...", \ - "Decode (export) the entered image files into PNG files. The default" \ - " destination is @'%P/%F.png'@. If SOURCE starts with colon (@:@)," \ - " then it may be a generic image instead of a real file." ) + "Decode (export) the entered image files into PNG files. $Wildcards$" \ + " and pipe characters are parsed. The default destination is" \ + " @'%P/%F.png'@. If SOURCE starts with colon (@:@), then it may be a" \ + " generic image instead of a real file." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wimgt ENCODE [source]...", \ "Encode (import) the entered PNG files and convert them to to an" \ - " internal image format (TPL, TEX, BREFT). The default destination is" \ - " @'%P/%N'@ (removed extension). If SOURCE starts with colon (@:@)," \ - " then it may be a generic image instead of a real file." ) + " internal image format (TPL, TEX, BREFT, ...). $Wildcards$ and pipe" \ + " characters are parsed. The default destination is @'%P/%N'@ (removed" \ + " extension). If SOURCE starts with colon (@:@), then it may be a" \ + " generic image instead of a real file." ) #:def_cmd( "CONVERT", "CONVERT|CV", \ "wimgt CONVERT [source]...", \ - "Convert the entered image files into new file and image formats. The" \ - " old file is replaced by the new one. The difference to {ENCODE} is" \ - " only the default file name handling. If SOURCE starts with colon" \ - " (@:@), then it may be a generic image instead of a real file." ) + "Convert the entered image files into new file and image formats." \ + " $Wildcards$ and pipe characters are parsed. The old file is replaced" \ + " by the new one. The difference to {ENCODE} is only the default file" \ + " name handling. If SOURCE starts with colon (@:@), then it may be a" \ + " generic image instead of a real file." ) #:def_cmd( "COPY", "COPY|CP", \ "wimgt COPY source dest\n" \ "wimgt COPY source... [-d|-D] dest", \ "Copy and convert an image from 'source' to 'dest'. Multiple sources" \ " can be used, if 'dest' is a directory or contains at least one" \ - " %-pattern.\n" \ + " %-pattern. $Wildcards$ and pipe characters are parsed.\n" \ " This is an alternative for the ENCODE and DECODE commands. The" \ " default destination file format is selected by scanning the file" \ " extension of the destination. Option --transform may override this." \ @@ -15035,6 +15718,15 @@ "", \ "Create smaller output." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \ "size", \ "This security option defines the maximum file size for input files;" \ @@ -15303,16 +15995,36 @@ "", \ "Print message number instead of message name." ) +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "FILETYPE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "FILETYPE", "LONG", \ "", \ "Print an additional column with the decompressed file type and" \ " version. If entered twice, a validation status column is added." ) -#:def_cmd_opt( "FILETYPE", "IGNORE", \ +#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) -#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ +#:def_cmd_opt( "LIST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST", "IGNORE", \ "", \ "" ) @@ -15325,7 +16037,15 @@ "", \ "" ) -#:def_cmd_opt( "LIST", "IGNORE", \ +#:def_cmd_opt( "LIST_L", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_L", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_L", "IGNORE", \ "", \ "" ) @@ -15338,7 +16058,15 @@ "", \ "" ) -#:def_cmd_opt( "LIST_L", "IGNORE", \ +#:def_cmd_opt( "LIST_LL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_LL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST_LL", "IGNORE", \ "", \ "" ) @@ -15351,7 +16079,15 @@ "", \ "" ) -#:def_cmd_opt( "LIST_LL", "IGNORE", \ +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ "", \ "" ) @@ -15387,10 +16123,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "N_MIPMAPS", \ "", \ "" ) @@ -15435,6 +16167,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -15467,10 +16211,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "ENCODE", "ALL", \ "", \ "If source and destination file are the same, the file is only written" \ @@ -15521,6 +16261,18 @@ "", \ "" ) +#:def_cmd_opt( "CONVERT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CONVERT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CONVERT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CONVERT", "DEST", \ "", \ "" ) @@ -15553,10 +16305,6 @@ "", \ "" ) -#:def_cmd_opt( "CONVERT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "CONVERT", "ALL", \ "", \ "If source and destination file are the same, the file is only written" \ @@ -15607,6 +16355,18 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "DEST", \ "", \ "" ) @@ -15639,10 +16399,6 @@ "", \ "" ) -#:def_cmd_opt( "COPY", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "COPY", "ALL", \ "", \ "If source and destination file are the same, the file is only written" \ @@ -15738,10 +16494,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wkclt TEST [options]... [ignored]...", \ @@ -15763,7 +16516,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wkclt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wkclt FILEATTRIB [keyword]...", \ @@ -15820,21 +16574,24 @@ #:def_cmd( "CAT", "CAT", \ "wkclt CAT source...", \ "Read the entered KCL and OBJ files and print them as OBJ files to" \ - " standard output. The output of all source files is concatenated.\n" \ + " standard output. $Wildcards$ and pipe characters are parsed. The" \ + " output of all source files is concatenated.\n" \ " Automated dropping of bad KCL triangles is enabled if no other drop" \ " option is specified by option {--kcl}." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wkclt DECODE source...", \ - "Read the entered KCL and OBJ files and export them to OBJ files. The" \ - " default destination is @'%P/%N.txt'@.\n" \ + "Read the entered KCL and OBJ files and export them to OBJ files." \ + " $Wildcards$ and pipe characters are parsed. The default destination" \ + " is @'%P/%N.txt'@.\n" \ " Automated dropping of bad KCL triangles is enabled if no other drop" \ " option is specified by option {--kcl}." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wkclt ENCODE source...", \ "Read the entered KCL and OBJ files and encode (compile) them to" \ - " binary KCL files. The default destination is @'%P/%N.kcl'@.\n" \ + " binary KCL files. $Wildcards$ and pipe characters are parsed. The" \ + " default destination is @'%P/%N.kcl'@.\n" \ " See https://szs.wiimm.de/doc/kcl for encoding details." ) #:def_cmd( "COPY", "COPY|CP", \ @@ -15842,7 +16599,8 @@ "wkclt COPY source... [-d|-D] dest", \ "Copy and convert a collision file from 'source' to 'dest'. Multiple" \ " KCL and OBJ sources can be used, if 'dest' is a directory or" \ - " contains at least one %-pattern.\n" \ + " contains at least one %-pattern. $Wildcards$ and pipe characters are" \ + " parsed.\n" \ " This is an alternative for the DECODE and ENCODE commands. The" \ " default destination file format is selected by scanning the file" \ " extension of the destination. Is it '.kcl', a binary KCL file is" \ @@ -15854,20 +16612,21 @@ #:def_cmd( "CFF", "CFF", \ "wkclt CFF source...", \ "CFF is an abbreviation of 'create flag file' and will create a flag" \ - " file template for each entered source file. If the flag file already" \ - " exists, only missing group names are added at the end of file." ) + " file template for each entered source file. $Wildcards$ and pipe" \ + " characters are parsed. If the flag file already exists, only missing" \ + " group names are added at the end of file." ) #:def_cmd( "FLAGS", "FLAGS|F", \ "wkclt FLAGS source...", \ "Print a KCL type and flag usage statistic for each source to standard" \ - " output." ) + " output. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "DUMP", "DUMP|D", \ "wkclt DUMP source...", \ "This debugging command prints an information dump about the internal" \ " triangle data base and the octree in human and machine readable text" \ - " format. The output of all source files is concatenated and printed" \ - " to standard output." ) + " format. $Wildcards$ and pipe characters are parsed. The output of" \ + " all source files is concatenated and printed to standard output." ) #:def_cmd( "DBRIEF", "DBRIEF|DB", \ "wkclt DBRIEF source...", \ @@ -15879,14 +16638,16 @@ "wkclt LIST source...", \ "This debugging command prints a list of all triangles with metrics in" \ " human and machine readable text format. It is like DUMP, but reduced" \ - " to the list of triangles. The output of all source files is" \ - " concatenated and printed to standard output." ) + " to the list of triangles. $Wildcards$ and pipe characters are" \ + " parsed. The output of all source files is concatenated and printed" \ + " to standard output." ) #:def_cmd( "TRIANGLES", "TRIANGLES", \ "wkclt TRIANGLES source...", \ "This debugging commands prints one data line for each triangle. The" \ " goal is to compare data. Therefor and to create smaller lines the" \ - " precision of the floating points numbers is reduced.\n" \ + " precision of the floating points numbers is reduced. $Wildcards$ and" \ + " pipe characters are parsed.\n" \ " The print order is: flag used length | 3 points | 4 normals. For" \ " each point and normal 3 coordinates are printed." ) @@ -15906,19 +16667,20 @@ #:def_cmd( "CHECK", "CHECK|CHK", \ "wkclt CHECK source...", \ "Read the entered KCL files (text or binary) and and make a" \ - " plausibility check. Hints and warnings are written to standard" \ - " output. The exit status is @'DIFFER'@ if at least one KMP warning" \ - " found." ) + " plausibility check. $Wildcards$ and pipe characters are parsed." \ + " Hints and warnings are written to standard output. The exit status" \ + " is @'DIFFER'@ if at least one KMP warning found." ) #:def_cmd( "SHA1", "SHA1", \ "wszst SHA1 [source]...", \ - "Print a SHA1 checksum of the KCL for each source. The checksum is" \ - " calculated after patching." ) + "Print a SHA1 checksum of the KCL for each source. $Wildcards$ and" \ + " pipe characters are parsed. The checksum is calculated after" \ + " patching." ) #:def_cmd( "BLOW", "BLOW", \ "wkclt BLOW source...", \ - "Try to calculate the used blow size (KCL_BLOW) of a KCL. Print one" \ - " line for each source file." ) + "Try to calculate the used blow size (KCL_BLOW) of a KCL. $Wildcards$" \ + " and pipe characters are parsed. Print one line for each source file." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -16325,6 +17087,15 @@ "", \ "Create smaller output." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \ "", \ "Disable parameter support in decoded KMP text files." ) @@ -16500,15 +17271,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -16649,11 +17428,11 @@ "", \ "" ) -#:def_cmd_opt( "CAT", "NO_ECHO", \ +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ "", \ "" ) -#:def_cmd_opt( "CAT", "NO_CHECK", \ +#:def_cmd_opt( "CAT", "IN_ORDER", \ "", \ "" ) @@ -16661,6 +17440,14 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_ECHO", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "NO_CHECK", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "CONST", \ "", \ "" ) @@ -16753,6 +17540,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "DEST", \ "", \ "" ) @@ -16793,10 +17592,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "CONST", \ "", \ "" ) @@ -16889,6 +17684,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -16929,10 +17736,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "ENCODE", "CONST", \ "", \ "" ) @@ -17025,6 +17828,18 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "DEST", \ "", \ "" ) @@ -17065,10 +17880,6 @@ "", \ "" ) -#:def_cmd_opt( "COPY", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "COPY", "CONST", \ "", \ "" ) @@ -17161,6 +17972,18 @@ "", \ "" ) +#:def_cmd_opt( "CFF", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CFF", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CFF", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CFF", "LONG", \ "", \ "Force usage of @'f(typ,variant)'@. If set twice, force usage of" \ @@ -17210,10 +18033,6 @@ "", \ "" ) -#:def_cmd_opt( "CFF", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "CFF", "CONST", \ "", \ "" ) @@ -17230,11 +18049,11 @@ "", \ "Print only the resulting flag." ) -#:def_cmd_opt( "FLAGS", "NO_HEADER", \ +#:def_cmd_opt( "FLAGS", "NO_WILDCARDS", \ "", \ "" ) -#:def_cmd_opt( "FLAGS", "NO_CHECK", \ +#:def_cmd_opt( "FLAGS", "IN_ORDER", \ "", \ "" ) @@ -17242,6 +18061,14 @@ "", \ "" ) +#:def_cmd_opt( "FLAGS", "NO_HEADER", \ + "", \ + "" ) + +#:def_cmd_opt( "FLAGS", "NO_CHECK", \ + "", \ + "" ) + #:def_cmd_opt( "FLAGS", "BRIEF", \ "", \ "Suppress the output of detailed flag list and print only the type" \ @@ -17339,6 +18166,14 @@ "", \ "" ) +#:def_cmd_opt( "DUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "DUMP", "IGNORE", \ "", \ "" ) @@ -17449,6 +18284,14 @@ "", \ "" ) +#:def_cmd_opt( "DBRIEF", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DBRIEF", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "DBRIEF", "IGNORE", \ "", \ "" ) @@ -17559,6 +18402,14 @@ "", \ "" ) +#:def_cmd_opt( "LIST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LIST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "IGNORE", \ "", \ "" ) @@ -17659,6 +18510,14 @@ "", \ "" ) +#:def_cmd_opt( "TRIANGLES", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "TRIANGLES", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "TRIANGLES", "IGNORE", \ "", \ "" ) @@ -17986,6 +18845,18 @@ "", \ "" ) +#:def_cmd_opt( "CHECK", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CHECK", "COLORS", \ "", \ "" ) @@ -18014,7 +18885,11 @@ "", \ "" ) -#:def_cmd_opt( "CHECK", "IGNORE", \ +#:def_cmd_opt( "SHA1", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "IN_ORDER", \ "", \ "" ) @@ -18134,6 +19009,14 @@ "", \ "" ) +#:def_cmd_opt( "ANALYZE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ANALYZE", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "ANALYZE", "IGNORE", \ "", \ "" ) @@ -18230,6 +19113,14 @@ "", \ "" ) +#:def_cmd_opt( "BLOW", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "BLOW", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "BLOW", "IGNORE", \ "", \ "" ) @@ -18279,10 +19170,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wkmpt TEST [options]... [ignored]...", \ @@ -18304,7 +19192,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wkmpt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wkmpt FILEATTRIB [keyword]...", \ @@ -18382,18 +19271,21 @@ #:def_cmd( "CAT", "CAT", \ "wkmpt CAT [source]...", \ "Read the entered KMP files (text, binary or szs) and print them as" \ - " decoded text files to standard output. The output of all source" \ - " files is concatenated." ) + " decoded text files to standard output. $Wildcards$ and pipe" \ + " characters are parsed. The output of all source files is" \ + " concatenated." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wkmpt DECODE [source]...", \ "Read the entered KMP files (text or binary) and decode them to text" \ - " files. The default destination is @'%P/%N.txt'@." ) + " files. $Wildcards$ and pipe characters are parsed. The default" \ + " destination is @'%P/%N.txt'@." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wkmpt ENCODE source...", \ "Read the entered KMP files (text or binary) and encode (compile) them" \ - " to binary files. The default destination is @'%P/%N.kmp'@." ) + " to binary files. $Wildcards$ and pipe characters are parsed. The" \ + " default destination is @'%P/%N.kmp'@." ) #:def_cmd( "DIFF", "DIFF|CMP", \ "wkmpt DIFF source1 source2\n" \ @@ -18411,24 +19303,25 @@ #:def_cmd( "DRAW", "DRAW|D|COBJECT|COB", \ "wkmpt DRAW source...", \ "Read the entered KMP files (text or binary), of needed load the" \ - " related KCL file, draw KMP objects and create an OBJ file. The" \ - " default destination is @'%P/%N.kmp.obj'@.\n" \ + " related KCL file, draw KMP objects and create an OBJ file." \ + " $Wildcards$ and pipe characters are parsed. The default destination" \ + " is @'%P/%N.kmp.obj'@.\n" \ " Automated dropping of bad KCL triangles is enabled if no drop" \ " option is specified by option {--kcl}." ) #:def_cmd( "CHECK", "CHECK|CHK", \ "wkmpt CHECK source...", \ "Read the entered KMP files (text or binary) and and make a" \ - " plausibility check. Hints and warnings are written to standard" \ - " output. The exit status is @'DIFFER'@ if at least one KMP warning" \ - " found." ) + " plausibility check. $Wildcards$ and pipe characters are parsed." \ + " Hints and warnings are written to standard output. The exit status" \ + " is @'DIFFER'@ if at least one KMP warning found." ) #:def_cmd( "STGI", "STGI", \ "wkmpt STGI file...", \ "Find the first KMP:STGI of each file and print an analysis of it as" \ " single line statistic. Additional the number of lap counter check" \ " points ('LC') is printed. Track and KMP (binary and text) files are" \ - " accepted as input." ) + " accepted as input. $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "KTPT", "KTPT", \ "wkmpt KTPT [source]...", \ @@ -18441,7 +19334,8 @@ #:def_cmd( "ROUTES", "ROUTES", \ "wkmpt ROUTES file...", \ "Print the internal cross references for routes of KMP sections CKPH," \ - " CKPT, ENPH, ENPT, ITPH and ITPT." ) + " CKPT, ENPH, ENPT, ITPH and ITPT. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "GAMEMODES", "GAMEMODES|GMODES", \ "wkmpt GAMEMODES [source]...", \ @@ -18449,7 +19343,8 @@ " support and print a list. The lists consists of index, scenario" \ " version and scenario name. Scenario versions are only equal, if the" \ " scenarios are duplicates. Duplicates happens only, if {--gamemodes}" \ - " option TT or FULL is set." ) + " option TT or FULL is set. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "WIM0", "WIM0|W0", \ "wkmpt WIM0 [source]...", \ @@ -18932,8 +19827,8 @@ " all. The other allowed keywords are: @FORCE, NEW, RM-SPCITEM, LEFT," \ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \ - " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \ - " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT@ and" \ + " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP .." \ + " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 .. TINY-7, INPLACE, SILENT@ and" \ " @LOG@." ) #:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \ @@ -19021,6 +19916,15 @@ " syntax information ({--no-header}). If set twice, the output of" \ " unneeded sections is also suppressed." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "EXPORT", "X|export", "C", \ "", \ "Enable the export mode and create small and machine readable text" \ @@ -19220,15 +20124,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -19531,6 +20443,18 @@ "Print each setting starting on a new line. --long and {--brief} can" \ " be used together." ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "NO_HEADER", \ "", \ "Suppress the syntax information section in KMP text files." ) @@ -19575,10 +20499,6 @@ "", \ "" ) -#:def_cmd_opt( "CAT", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "CAT", "CONST", \ "", \ "" ) @@ -19679,6 +20599,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "DEST", \ "", \ "" ) @@ -19755,10 +20687,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "CONST", \ "", \ "" ) @@ -19859,6 +20787,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -19899,10 +20839,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "ENCODE", "CONST", \ "", \ "" ) @@ -20040,6 +20976,18 @@ "", \ "" ) +#:def_cmd_opt( "DRAW", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DRAW", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DRAW", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DRAW", "DRAW", \ "", \ "" ) @@ -20132,10 +21080,6 @@ "", \ "" ) -#:def_cmd_opt( "DRAW", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DRAW", "CONST", \ "", \ "" ) @@ -20240,6 +21184,18 @@ "", \ "" ) +#:def_cmd_opt( "CHECK", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "CHECK", "COLORS", \ "", \ "" ) @@ -20272,10 +21228,20 @@ "", \ "" ) -#:def_cmd_opt( "CHECK", "IGNORE", \ +#:def_cmd_opt( "STGI", "NO_WILDCARDS", \ "", \ "" ) +#:def_cmd_opt( "STGI", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "STGI", "IGNORE", \ + "", \ + "If set, ignore non existing source files and files without KMP" \ + " without warning. If set twice, ignore files with standard settings" \ + " too." ) + #:def_cmd_opt( "STGI", "COLORS", \ "", \ "" ) @@ -20288,11 +21254,18 @@ "", \ "" ) -#:def_cmd_opt( "STGI", "IGNORE", \ +#:def_cmd_opt( "KTPT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "KTPT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "KTPT", "IGNORE", \ "", \ "If set, ignore non existing source files and files without KMP" \ - " without warning. If set twice, ignore files with standard settings" \ - " too." ) + " without warning." ) #:def_cmd_opt( "KTPT", "COLORS", \ "", \ @@ -20306,16 +21279,24 @@ "", \ "" ) -#:def_cmd_opt( "KTPT", "IGNORE", \ - "", \ - "If set, ignore non existing source files and files without KMP" \ - " without warning." ) - #:def_cmd_opt( "KTPT", "LONG", \ "", \ "If set, compare each KTPT with each lap counter (some CKPT) and print" \ " positions, directions, distances and recommendations as wide table." ) +#:def_cmd_opt( "ROUTES", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ROUTES", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ROUTES", "IGNORE", \ + "", \ + "If set, ignore non existing source files and files without KMP" \ + " without warning." ) + #:def_cmd_opt( "ROUTES", "COLORS", \ "", \ "" ) @@ -20328,10 +21309,13 @@ "", \ "" ) -#:def_cmd_opt( "ROUTES", "IGNORE", \ +#:def_cmd_opt( "GOBJ", "NO_WILDCARDS", \ "", \ - "If set, ignore non existing source files and files without KMP" \ - " without warning." ) + "" ) + +#:def_cmd_opt( "GOBJ", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "GOBJ", "IGNORE", \ "", \ @@ -20350,6 +21334,14 @@ "", \ "?" ) +#:def_cmd_opt( "GAMEMODES", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "GAMEMODES", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "GAMEMODES", "IGNORE", \ "", \ "" ) @@ -20428,10 +21420,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wlect TEST [options]... [ignored]...", \ @@ -20453,7 +21442,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wlect FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wlect FILEATTRIB [keyword]...", \ @@ -20493,8 +21483,9 @@ #:def_cmd( "DUMP", "DUMP|D", \ "wlect DUMP [source]...", \ - "Print an information dump for each source file. LE-CODE binaries and" \ - " LEX binaries are accepted as input." ) + "Print an information dump for each source file. $Wildcards$ and pipe" \ + " characters are parsed. LE-CODE binaries and LEX binaries are" \ + " accepted as input." ) #:def_cmd( "DB", "DBwlect DL [source]...", \ "Short cut for {DUMP --brief}.", \ @@ -20526,14 +21517,15 @@ #:def_cmd( "PATCH", "PATCH|P", \ "wlect PATCH [lecode_bin]...", \ - "Read each LE-CODE binary file and patch it. Use {--le-define} to" \ - " setup cups and tracks." ) + "Read each LE-CODE binary file and patch it. $Wildcards$ and pipe" \ + " characters are parsed. Use {--le-define} to setup cups and tracks." ) #:def_cmd( "LPAR", "LPAR", \ "wlect LPAR [le_bin]...", \ - "Read each LE-BIN file and patch it. Then extract the LE-CODE" \ - " parameters and store them as LPAR text file. Print the result to" \ - " standard output if no other destination is defined." ) + "Read each LE-BIN file and patch it. $Wildcards$ and pipe characters" \ + " are parsed. Then extract the LE-CODE parameters and store them as" \ + " LPAR text file. Print the result to standard output if no other" \ + " destination is defined." ) #:def_cmd( "CREATE", "CREATE|CR", \ "wlect CREATE [keyword] ...", \ @@ -20547,25 +21539,29 @@ "wlect DISTRIBUTION [argument]...", \ "This command manages data for LE-CODE track distributions. It reads" \ " any number of source files with different file types, collects the" \ - " data and creates any number of files with different file types." \ - " $Wildcards$ are accepted.\n" \ + " data and creates any number of files with different file types. The" \ + " parameters are evaluated step by step. $Wildcards$ and pipe" \ + " characters are parsed.\n" \ " Use the command without keyword to get an extended description." ) #:def_cmd( "CAT", "CAT", \ "wlect CAT [source]...", \ "Read the entered LEX and LE-CODE files (text, binary or szs) and" \ - " print them as decoded text files to standard output. The output of" \ - " all source files is concatenated." ) + " print them as decoded text files to standard output. $Wildcards$ and" \ + " pipe characters are parsed. The output of all source files is" \ + " concatenated." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wlect DECODE [source]...", \ "Read the entered LEX files (text or binary) and decode them to text" \ - " files. The default destination is @'%P/%N.txt'@." ) + " files. $Wildcards$ and pipe characters are parsed. The default" \ + " destination is @'%P/%N.txt'@." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wlect ENCODE source...", \ "Read the entered LEX files (text or binary) and encode (compile) them" \ - " to binary files. The default destination is @'%P/%N.lex'@." ) + " to binary files. $Wildcards$ and pipe characters are parsed. The" \ + " default destination is @'%P/%N.lex'@." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -20748,6 +21744,15 @@ "", \ "Suppress cross reference comments." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "EXPORT", "X|export", "C", \ "", \ "Enable the export mode and create small and machine readable text" \ @@ -21135,15 +22140,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -21174,6 +22187,18 @@ "", \ "" ) +#:def_cmd_opt( "DUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DUMP", "LE_DEFINE", \ "", \ "" ) @@ -21236,6 +22261,18 @@ "", \ "" ) +#:def_cmd_opt( "DB", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DB", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DB", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DB", "LE_DEFINE", \ "", \ "" ) @@ -21298,6 +22335,18 @@ "", \ "" ) +#:def_cmd_opt( "DL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DL", "LE_DEFINE", \ "", \ "" ) @@ -21360,6 +22409,18 @@ "", \ "" ) +#:def_cmd_opt( "DLL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DLL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DLL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DLL", "LE_DEFINE", \ "", \ "" ) @@ -21422,6 +22483,18 @@ "", \ "" ) +#:def_cmd_opt( "DLLL", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DLLL", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DLLL", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DLLL", "LE_DEFINE", \ "", \ "" ) @@ -21492,6 +22565,18 @@ "", \ "Be more verbose and tell, what tests are planned." ) +#:def_cmd_opt( "PATCH", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "LE_DEFINE", \ "", \ "" ) @@ -21584,11 +22669,19 @@ "", \ "" ) -#:def_cmd_opt( "PATCH", "IGNORE", \ +#:def_cmd_opt( "PATCH", "CREATE_DISTRIB", \ "", \ "" ) -#:def_cmd_opt( "PATCH", "CREATE_DISTRIB", \ +#:def_cmd_opt( "TIMESTAMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "TIMESTAMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "TIMESTAMP", "IGNORE", \ "", \ "" ) @@ -21624,7 +22717,15 @@ "", \ "" ) -#:def_cmd_opt( "TIMESTAMP", "IGNORE", \ +#:def_cmd_opt( "LPAR", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "LPAR", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "LPAR", "IGNORE", \ "", \ "" ) @@ -21700,10 +22801,6 @@ "", \ "" ) -#:def_cmd_opt( "LPAR", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "LPAR", "NO_HEADER", \ "", \ "Suppress the syntax information section in LE text files." ) @@ -21928,7 +23025,11 @@ "", \ "" ) -#:def_cmd_opt( "CAT", "COMPLETE", \ +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ "", \ "" ) @@ -21936,6 +23037,10 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "COMPLETE", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "NO_HEADER", \ "", \ "Suppress the syntax information section in LE text files." ) @@ -21952,6 +23057,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "COMPLETE", \ "", \ "" ) @@ -21988,10 +23105,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "NO_HEADER", \ "", \ "Suppress the syntax information section in LE text files." ) @@ -22008,6 +23121,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "COMPLETE", \ "", \ "" ) @@ -22048,10 +23173,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - ## ############################################################################### @@ -22096,10 +23217,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wmdlt TEST [options]... [ignored]...", \ @@ -22121,7 +23239,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wmdlt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wmdlt FILEATTRIB [keyword]...", \ @@ -22178,22 +23297,24 @@ #:def_cmd( "CAT", "CAT", \ "wmdlt CAT [source]...", \ "Read the entered MDL files (text or binary) and print them as decoded" \ - " text files to standard output (stdout). The output of all source" \ - " files is concatenated.\n" \ + " text files to standard output (stdout). $Wildcards$ and pipe" \ + " characters are parsed. The output of all source files is" \ + " concatenated.\n" \ " A decoded MDL0 file can only be used for analysis. Encoding or" \ " creating a new MDL0 file is not supported." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wmdlt DECODE [source]...", \ "Read the entered MDL files (text or binary) and decode them to text" \ - " files. The default destination is @'%P/%N.txt'@.\n" \ + " files. $Wildcards$ and pipe characters are parsed. The default" \ + " destination is @'%P/%N.txt'@.\n" \ " A decoded MDL0 file can only be used for analysis. Encoding or" \ " creating a new MDL0 file is not supported." ) #:def_cmd( "STRINGS", "STRINGS", \ "wmdlt STRINGS [source]...", \ "Read the entered MDL files (text or binary) and print all strings of" \ - " all sections.\n" \ + " all sections. $Wildcards$ and pipe characters are parsed.\n" \ " For archives like SZS or BREES, the strings of each containing MDL" \ " are printed. It is also possible to address an internal sub-file" \ " like @track.szs/course_model.brres@." ) @@ -22513,6 +23634,15 @@ "", \ "Suppress cross reference comments." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \ "", \ "Disable parameter support in decoded KMP text files." ) @@ -22688,15 +23818,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -22809,6 +23947,14 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "IGNORE", \ "", \ "" ) @@ -22893,6 +24039,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "DEST", \ "", \ "" ) @@ -22925,10 +24083,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "NO_HEADER", \ "", \ "Suppress the syntax information section in MDL text files." ) @@ -23009,6 +24163,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -23049,10 +24215,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "ENCODE", "SCALE", \ "", \ "" ) @@ -23117,6 +24279,14 @@ "", \ "" ) +#:def_cmd_opt( "STRINGS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "STRINGS", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "STRINGS", "IGNORE", \ "", \ "" ) @@ -23201,6 +24371,14 @@ "", \ "" ) +#:def_cmd_opt( "GEOMETRY", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "GEOMETRY", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "GEOMETRY", "IGNORE", \ "", \ "" ) @@ -23285,6 +24463,14 @@ "", \ "" ) +#:def_cmd_opt( "XTEST", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "XTEST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "XTEST", "IGNORE", \ "", \ "" ) @@ -23413,10 +24599,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wpatt TEST [options]... [ignored]...", \ @@ -23438,7 +24621,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wpatt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wpatt FILEATTRIB [keyword]...", \ @@ -23479,18 +24663,21 @@ #:def_cmd( "CAT", "CAT", \ "wpatt CAT [source]...", \ "Read the entered PAT files (text or binary) and print them as decoded" \ - " text files to standard output (stdout). The output of all source" \ - " files is concatenated." ) + " text files to standard output (stdout). $Wildcards$ and pipe" \ + " characters are parsed. The output of all source files is" \ + " concatenated." ) #:def_cmd( "DECODE", "DECODE|DEC", \ "wpatt DECODE [source]...", \ "Read the entered PAT files (text or binary) and decode them to text" \ - " files. The default destination is @'%P/%N.txt'@." ) + " files. $Wildcards$ and pipe characters are parsed. The default" \ + " destination is @'%P/%N.txt'@." ) #:def_cmd( "ENCODE", "ENCODE|ENC", \ "wpatt ENCODE [source]...", \ "Read the entered PAT files (text or binary) and encode (compile) them" \ - " to binary files. The default destination is @'%P/%N.pat'@." ) + " to binary files. $Wildcards$ and pipe characters are parsed. The" \ + " default destination is @'%P/%N.pat'@." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -23648,6 +24835,15 @@ "", \ "Suppress cross reference comments." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \ "", \ "Disable parameter support in decoded KMP text files." ) @@ -23825,15 +25021,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -23864,6 +25068,14 @@ "", \ "" ) +#:def_cmd_opt( "CAT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "CAT", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "IGNORE", \ "", \ "" ) @@ -23884,6 +25096,18 @@ "", \ "" ) +#:def_cmd_opt( "DECODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DECODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DECODE", "DEST", \ "", \ "" ) @@ -23920,10 +25144,6 @@ "", \ "" ) -#:def_cmd_opt( "DECODE", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "DECODE", "NO_HEADER", \ "", \ "Suppress the syntax information section in PAT text files." ) @@ -23940,6 +25160,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "DEST", \ "", \ "" ) @@ -23984,10 +25216,6 @@ "", \ "" ) -#:def_cmd_opt( "ENCODE", "IGNORE", \ - "", \ - "" ) - ## ############################################################################### @@ -24033,10 +25261,7 @@ "This debug command accepts (like ARGTEST) all kinds of parameters and" \ " prints one line for each parameter. After that, the parameter is" \ " treated as a filename with wildcards and all matching files are" \ - " searched. The special parameters '+h' and '_h' enable or disable the" \ - " search for hidden directories and files (files beginning with a" \ - " point) for the following parameters. All tools know the EXPAND" \ - " command." ) + " searched. All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wstrt TEST [options]... [ignored]...", \ @@ -24058,7 +25283,8 @@ #:def_cmd( "FILETYPE", "FILETYPE|FT", \ "wstrt FILETYPE file...", \ "Scan the header of the entered files and print file type and path for" \ - " each file as list. All tools know the FILETYPE command." ) + " each file as list. $Wildcards$ and pipe characters are parsed. All" \ + " tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wstrt FILEATTRIB [keyword]...", \ @@ -24071,13 +25297,14 @@ #:def_cmd( "DUMP", "DUMP", \ "wstrt DUMP file...", \ "Dump the structure of REL files (e.g. @StaticR.rel@) and of DOL files" \ - " (e.g. @main.dol@) as text." ) + " (e.g. @main.dol@) as text. $Wildcards$ and pipe characters are" \ + " parsed." ) #:def_cmd( "HEXDUMP", "HEXDUMP|XDUMP", \ "wstrt HEXDUMP file...", \ "Dump the content of DOL files as hex dump and use virtual addresses." \ - " Select parts by --vaddr, --faddr and --sname. Without selectors, the" \ - " whole file is dumped." ) + " $Wildcards$ and pipe characters are parsed. Select parts by --vaddr," \ + " --faddr and --sname. Without selectors, the whole file is dumped." ) #:def_cmd( "PORT", "PORT", \ "wstrt PORT param...", \ @@ -24103,7 +25330,8 @@ #:def_cmd( "EXTRACT", "EXTRACT|X", \ "wstrt EXTRACT dol...", \ - "Extract the sections of a DOL or a REL file into a directory." ) + "Extract the sections of DOL and REL file into a directory." \ + " $Wildcards$ and pipe characters are parsed." ) #:def_cmd( "TRACKS", "TRACKS", \ "wstrt TRACKS [file]...", \ @@ -24140,13 +25368,14 @@ #:def_cmd( "ANALYZE", "ANALYZE|ANA|ANALYSE", \ "wstrt ANALYZE [file]...", \ - "Open 'StaticR.rel' and DOL files and analyze them. The files will be" \ - " classified using SHA1 checksums." ) + "Open 'StaticR.rel' and DOL files and analyze them. $Wildcards$ and" \ + " pipe characters are parsed. The files will be classified using SHA1" \ + " checksums." ) #:def_cmd( "PATCH", "PATCH", \ "wstrt PATCH [file]...", \ - "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii. No backup" \ - " is made." ) + "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii." \ + " $Wildcards$ and pipe characters are parsed. No backup is made." ) #:def_opt( "VERSION", "V|version", "G", \ "", \ @@ -24295,6 +25524,15 @@ "", \ "List only the track file names and suppress table header and footer." ) +#:def_opt( "NO_WILDCARDS", "no-wildcards|nowildcards", "C", \ + "", \ + "Disable wildcard parsing and use each filename exactly as specified." ) + +#:def_opt( "IN_ORDER", "in-order|inorder", "C", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \ "", \ "Suppress the syntax information section in BMG text files." ) @@ -24538,11 +25776,9 @@ " and VBI hooks are optionally initialized. Use option {--force} to" \ " allow overlapped sections. Use option {--verbose} up to 2 times for" \ " a log.\n" \ - " If parameter FILE contains at least one wildcard (e.g. '*.gct')," \ + " If parameter FILE contains at least one wildcard (e.g. \"*.GCT\")," \ " then FILE is used as search pattern and all found files are added." \ - " In order to use this variant, the calling shell must not interpret" \ - " the wildcards. Therefore, the parameter must usually be enclosed in" \ - " single or double quotes.\n" \ + " Quote FILE for this purpose. \n" \ " If a single file is not found and the filename (not path) contains" \ " at least 1 '@@' character, then all '@@' characters of it are" \ " replaced by the region code (one of P,E,J,K) for a second try.\n" \ @@ -24818,15 +26054,23 @@ "", \ "Print message number instead of message name." ) -#:def_cmd_opt( "FILETYPE", "LONG", \ +#:def_cmd_opt( "FILETYPE", "NO_WILDCARDS", \ "", \ - "Print an additional column with the decompressed file type and" \ - " version. If entered twice, a validation status column is added." ) + "" ) + +#:def_cmd_opt( "FILETYPE", "IN_ORDER", \ + "", \ + "" ) #:def_cmd_opt( "FILETYPE", "IGNORE", \ "", \ "" ) +#:def_cmd_opt( "FILETYPE", "LONG", \ + "", \ + "Print an additional column with the decompressed file type and" \ + " version. If entered twice, a validation status column is added." ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -24839,11 +26083,35 @@ "", \ "" ) +#:def_cmd_opt( "DUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "DUMP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "DUMP", "LONG", \ "", \ "For DOL files: If set, a second table with the image map is printed." \ " If set twice, a third table with delta values is printed too." ) +#:def_cmd_opt( "HEXDUMP", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "HEXDUMP", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "HEXDUMP", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "HEXDUMP", "VADDR", \ "", \ "" ) @@ -25034,6 +26302,18 @@ "", \ "Print file offsets too." ) +#:def_cmd_opt( "HTTPS", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "HTTPS", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "HTTPS", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "HTTPS", "LONG", \ "", \ " Print output a C source" ) @@ -25042,6 +26322,18 @@ "", \ " Print hex dump if an entry differs." ) +#:def_cmd_opt( "EXTRACT", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "EXTRACT", "DEST", \ "", \ "" ) @@ -25350,6 +26642,18 @@ "Append a string in {--points} format that defines the table. If set" \ " twice, append up to 3 strings in different modes." ) +#:def_cmd_opt( "ANALYZE", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "ANALYZE", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "ANALYZE", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "ANALYZE", "CLEAN_DOL", \ "", \ "" ) @@ -25419,6 +26723,18 @@ "Print different lists if bugs found. If set twice, print the lists" \ " always." ) +#:def_cmd_opt( "PATCH", "NO_WILDCARDS", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "DEST", \ "", \ "" ) @@ -25451,10 +26767,6 @@ "", \ "" ) -#:def_cmd_opt( "PATCH", "IGNORE", \ - "", \ - "" ) - #:def_cmd_opt( "PATCH", "CLEAN_DOL", \ "", \ "" ) |
