diff options
Diffstat (limited to '')
31 files changed, 3042 insertions, 1372 deletions
diff --git a/project/src/ui/tab-wbmgt.inc b/project/src/ui/tab-wbmgt.inc index 753342c..8e38144 100644 --- a/project/src/ui/tab-wbmgt.inc +++ b/project/src/ui/tab-wbmgt.inc @@ -67,6 +67,10 @@ "wbmgt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wbmgt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wbmgt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -212,6 +216,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -221,6 +229,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -471,13 +482,16 @@ //---------- COMMAND wbmgt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + //---------- COMMAND wbmgt EXPAND ---------- + + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wbmgt TEST ---------- { T_CMD_BEG, "TEST", 0,0,0 }, - { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wbmgt COLORS ---------- diff --git a/project/src/ui/tab-wctct.inc b/project/src/ui/tab-wctct.inc index bb24731..312a34a 100644 --- a/project/src/ui/tab-wctct.inc +++ b/project/src/ui/tab-wctct.inc @@ -68,6 +68,10 @@ "wctct ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wctct EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wctct TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -199,6 +203,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -208,6 +216,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -346,6 +357,11 @@ { T_OPT_GO, "REPAIR_MAGICS", "repair-magics|repairmagics", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "CREATE_DISTRIB", "create-distrib|createdistrib", + "file", + "Create a LE-CODE distribution dump with a track list and more info about" + " the current distribution. Store the dump info a file." }, + #if OPT_OLD_NEW { H_OPT_GM, "OLD", "OLD", 0, 0 /* copy of wszst */ }, @@ -589,13 +605,16 @@ //---------- COMMAND wctct ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wctct EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wctct TEST ---------- { T_CMD_BEG, "TEST", 0,0,0 }, - { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wctct COLORS ---------- diff --git a/project/src/ui/tab-wimgt.inc b/project/src/ui/tab-wimgt.inc index 3ab70bd..bc5e27e 100644 --- a/project/src/ui/tab-wimgt.inc +++ b/project/src/ui/tab-wimgt.inc @@ -68,6 +68,10 @@ "wimgt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wimgt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wimgt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -169,6 +173,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -178,6 +186,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -419,13 +430,16 @@ //---------- COMMAND wimgt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + //---------- COMMAND wimgt EXPAND ---------- + + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wimgt TEST ---------- { T_CMD_BEG, "TEST", 0,0,0 }, - { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wimgt COLORS ---------- diff --git a/project/src/ui/tab-wkclt.inc b/project/src/ui/tab-wkclt.inc index 2a137c8..ebeda48 100644 --- a/project/src/ui/tab-wkclt.inc +++ b/project/src/ui/tab-wkclt.inc @@ -67,6 +67,10 @@ "wkclt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wkclt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wkclt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -282,6 +286,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -291,6 +299,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -588,7 +599,11 @@ //---------- COMMAND wkclt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wkclt EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wkclt TEST ---------- diff --git a/project/src/ui/tab-wkmpt.inc b/project/src/ui/tab-wkmpt.inc index 0b2a49a..b647c4d 100644 --- a/project/src/ui/tab-wkmpt.inc +++ b/project/src/ui/tab-wkmpt.inc @@ -67,6 +67,10 @@ "wkmpt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wkmpt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wkmpt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -266,6 +270,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -275,6 +283,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -685,7 +696,11 @@ //---------- COMMAND wkmpt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wkmpt EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wkmpt TEST ---------- diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc index d5ac35d..3581bef 100644 --- a/project/src/ui/tab-wlect.inc +++ b/project/src/ui/tab-wlect.inc @@ -67,6 +67,10 @@ "wlect ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wlect EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wlect TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -161,17 +165,23 @@ { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- { T_DEF_CMD, "CREATE", "CREATE|CR", - "wlect CREATE [keyword]", + "wlect CREATE [keyword] ...", "Create a file and print it to standard output." + " Options {--dest} and {--DEST} can forc another destination." " The kind of file is defined by KEYWORD." - " Use command without keywords to get a list of possible keywords." + " The command can create LEX files, a LPAR file or a track listing." + "\n " + " Use the command without keyword to get an extended description." }, + + { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", + "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." "\n " - " The following keywords are possible:" - " @LEX@ for a LEX text file with all known sections except @TEST@." - " @LEX+@ for a LEX text file with all known sections including @TEST@." - " @SET1, CANN, HIPT@ and @TEST@ (section names)" - " for a LEX text file with 1 section only." - " @LPAR@ for an example LE-CODE parameter file." }, + " Use the command without keyword to get an extended description." + "\n " + "This command is still under development. Its use is therefore EXPERIMENTAL!" }, { T_DEF_CMD, "CAT", "CAT", "wlect CAT [source]...", @@ -222,6 +232,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -231,6 +245,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -253,6 +270,12 @@ "This option is completely ignored by wlect." " It only exists due to compatibility with the other tools." }, + { T_OPT_GP, "LOAD_PREFIX", "load-prefix|loadprefix", + 0, 0 /* copy of wszst */ }, + + { T_OPT_CP, "PLUS", "plus", + 0, 0 /* copy of wszst */ }, + { T_OPT_GMP, "CHDIR", "chdir", 0, 0 /* copy of wszst */ }, @@ -407,6 +430,11 @@ { T_OPT_GO, "REPAIR_MAGICS", "repair-magics|repairmagics", 0, 0 /* copy of wszst */ }, + { T_OPT_CP, "CREATE_DISTRIB", "create-distrib|createdistrib", + "file", + "Create a LE-CODE distribution dump with a track list and more info about" + " the current distribution. Store the dump info a file." }, + #if OPT_OLD_NEW { H_OPT_GM, "OLD", "OLD", 0, 0 /* copy of wszst */ }, @@ -542,6 +570,15 @@ " directory specified by option {--track-dir}." " If linking fails, the file is copied." }, + { T_OPT_CP, "SZS_MODE", "szs-mode|szsmode", + "mode", + "If a track is inserted via the SZS file," + " then the associated directory is automatically included in the list" + " of search directories for option {--track-dir}." + " This option now sets the transfer mode. @OFF@ turns this feature off." + " The values @COPY@, @MOVE@, @MOVE1@ and @LINK@ define one of the 4 modes." + " Default mode is @LINK@." }, + { T_SEP_OPT, 0,0,0,0 }, //----- separator ----- { T_OPT_C, "COMPLETE", "C|complete", @@ -721,13 +758,16 @@ //---------- COMMAND wlect ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + //---------- COMMAND wlect EXPAND ---------- + + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wlect TEST ---------- { T_CMD_BEG, "TEST", 0,0,0 }, - { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wlect COLORS ---------- @@ -821,6 +861,7 @@ { T_COPT, "VERBOSE", 0,0, "For LE-CODE binaries: If set, print a track slot usage table." }, { T_COPY_GRP, "PATCH", 0,0,0 }, + { T_COPT, "CREATE_DISTRIB",0,0,0 }, //---------- COMMAND wlect DL ---------- @@ -851,6 +892,7 @@ { 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 LPAR ---------- @@ -878,8 +920,22 @@ { T_COPT, "LEX_PURGE", 0,0,0 }, { H_COPT, "LEX_RM_FEAT", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "LE_DEFINE", 0,0,0 }, + { T_COPT, "LOAD_BMG", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "PARAM", 0,0,0 }, + //---------- COMMAND wlect DISTRIBUTION ---------- + + { T_CMD_BEG, "DISTRIBUTION", 0,0,0 }, + { T_COPT, "LOAD_PREFIX", 0,0,0 }, + { T_COPT, "PLUS", 0,0,0 }, + { T_COPY_GRP, "TRACK_COPY", 0,0,0 }, + { T_COPT, "SZS_MODE", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "TEXTOUT", 0,0,0 }, + { T_COPY_GRP, "DEST", 0,0,0 }, + //---------- COMMAND wlect CAT ---------- { T_CMD_BEG, "CAT", 0,0,0 }, diff --git a/project/src/ui/tab-wmdlt.inc b/project/src/ui/tab-wmdlt.inc index 85018fd..bb03e3b 100644 --- a/project/src/ui/tab-wmdlt.inc +++ b/project/src/ui/tab-wmdlt.inc @@ -67,6 +67,10 @@ "wmdlt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wmdlt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wmdlt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -192,6 +196,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -201,6 +209,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -457,7 +468,11 @@ //---------- COMMAND wmdlt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wmdlt EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wmdlt TEST ---------- diff --git a/project/src/ui/tab-wpatt.inc b/project/src/ui/tab-wpatt.inc index b2f193e..aa7b71d 100644 --- a/project/src/ui/tab-wpatt.inc +++ b/project/src/ui/tab-wpatt.inc @@ -67,6 +67,10 @@ "wpatt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wpatt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wpatt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -160,6 +164,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -169,6 +177,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -355,7 +366,11 @@ //---------- COMMAND wpatt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wpatt EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wpatt TEST ---------- diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc index 4015738..d540bcd 100644 --- a/project/src/ui/tab-wstrt.inc +++ b/project/src/ui/tab-wstrt.inc @@ -68,6 +68,10 @@ "wstrt ARGTEST ...", 0 /* copy of wszst */ }, + { T_DEF_CMD, "EXPAND", "EXPAND", + "wstrt EXPAND ...", + 0 /* copy of wszst */ }, + { T_DEF_CMD, "TEST", "TEST", "wstrt TEST [options]... [ignored]...", 0 /* copy of wszst */ }, @@ -223,6 +227,10 @@ "MAX_WIDTH", "max-width|maxwidth", 0, 0 /* copy of wszst */ }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -232,6 +240,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "TIMING", "timing", + 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", 0, 0 /* copy of wszst */ }, @@ -923,13 +934,16 @@ //---------- COMMAND wstrt ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + //---------- COMMAND wstrt EXPAND ---------- + + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wstrt TEST ---------- { T_CMD_BEG, "TEST", 0,0,0 }, - { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wstrt COLORS ---------- @@ -997,6 +1011,7 @@ { T_COPT, "FADDR", 0,0,0 }, { T_COPT, "SNAME", 0,0,0 }, { T_COPT, "LOGGING", 0,0,0 }, + { T_COPT, "TIMING", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "HEXDUMP", 0,0,0 }, diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc index d836fdf..3fbde8d 100644 --- a/project/src/ui/tab-wszst.inc +++ b/project/src/ui/tab-wszst.inc @@ -89,7 +89,18 @@ { T_DEF_CMD, "ARGTEST", "ARGTEST", "wszst ARGTEST ...", "This debug command accepts all kinds of parameters" - " and prints one line for each parameter." }, + " and prints one line for each parameter." + " All tools know the ARGTEST command." }, + + { T_DEF_CMD, "EXPAND", "EXPAND", + "wszst EXPAND ...", + "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)." + " All tools know the EXPAND command." }, { T_DEF_CMD, "TEST", "TEST", "wszst TEST [options]... [ignored]...", @@ -105,12 +116,14 @@ { T_DEF_CMD, "ERROR", "ERROR|ERR", "wszst ERROR [error_code]", "Translate an exit code to a message name." - " If no exit code is entered, print a table with all error messages." }, + " If no exit code is entered, print a table with all error messages." + " All tools know the ERROR command." }, { T_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." }, + " and path for each file as list." + " All tools know the FILETYPE command." }, { T_DEF_CMD, "FILEATTRIB", "FILEATTRIB|FA", "wszst FILEATTRIB [keyword]...", @@ -118,7 +131,8 @@ " If at least one keyword is entered, only matching file types" " are printed." " A keyword is either a file type (like 'BRRES' or 'BMG')" - " or one of the printed keywords (like 'ARCHIVE' or 'EXTRACT')." }, + " or one of the printed keywords (like 'ARCHIVE' or 'EXTRACT')." + " All tools know the FILEATTRIB command." }, { T_DEF_CMD, "BRSUB", "BRSUB", "wszst BRSUB [file]...", @@ -130,17 +144,20 @@ { T_DEF_CMD, "SYMBOLS", "SYMBOLS", "wszst SYMBOLS", - "Print predefined symbols of text parser to standard output." }, + "Print predefined symbols of text parser to standard output." + " Many tools know the SYMBOLS command." }, { T_DEF_CMD, "FUNCTIONS", "FUNCTIONS", "wszst FUNCTIONS [key]...", "Print a list with all parser functions." " If one or more keys entered," - " then only functions that match at least one key are printed." }, + " then only functions that match at least one key are printed." + " Many tools know the FUNCTIONS command." }, { T_DEF_CMD, "CALCULATE", "CALCULATE", "wszst CALCULATE expression...", - "Calculate each expression and print the result to standard output." }, + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command." }, { T_DEF_CMD, "MATRIX", "MATRIX", "wszst MATRIX [patch-option]... [vector]...", @@ -352,6 +369,11 @@ "wszst ANALYZE [source]...", "Analyse track files and print results in machine readable format." }, + { 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." }, + { T_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." @@ -368,7 +390,7 @@ "wszst FEATURES [source]...", "Analyse track files and create a feature list in machine readable format." }, - { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIST", + { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", "wszst DISTRIBUTION result source...\n" "wszst DISTRIBUTION directory [source]...", "Load each @SOURCE@ (SZS, WBZ, U8 or WU8) and calculate a checksum" @@ -384,7 +406,9 @@ "\n " " If file @RESULT@ exists, it is automatically added as last source" " to the list of option --source, but only if not already added." - " On scanning of file @result@, parameters are scanned too." }, + " On scanning of file @result@, parameters are scanned too." + "\n " + "See »welect DISTRIBUTION« for a new and alternative implementation of this." }, { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- @@ -694,6 +718,11 @@ " for help and some other messages." " The default is 120. This option is ignored if --width is set." }, + { T_OPT_G|F_IGNORE, + "NO_PAGER", "no-pager|nopager", + 0, + "Forbid the internal usage of a pager." }, + { T_OPT_GM, "QUIET", "q|quiet", 0, "Be quiet and print only error messages." @@ -710,7 +739,13 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, - "This debug option enables the logging of internal lists and maps." }, + "This debug option enables the logging of internal lists and maps." + " Set it up to three times to be more verbose.\n" }, + + { T_OPT_GM, "TIMING", "timing", + 0, + "Activate the timing of some operations." + " Logging level 3 activates them too.\n" }, { T_OPT_GP, "WARN", "W|warn", "list", @@ -765,6 +800,25 @@ " The optional parameter is deprecated and ignored." "\1 See https://szs.wiimm.de/opt/lecode for details." }, + { T_OPT_GP, "LOAD_PREFIX", "load-prefix|loadprefix", + "file", + "Read in a PREFIX file and replace the internal prefix database with the content." + " https://ct.wiimm.de/export/prefix is the authoritative source for this." }, + + { T_OPT_CP, "PLUS", "plus", + "chars", + "If a name begins with a plus sign, then all characters up to the first space" + " are recognized as a plus prefix." + " The first part consists of all the plus signs followed by any other characters." + " The first character of the second part is used to determine the sort value." + " If the second part is empty, then the last plus sign is used instead." + "\n " + " The higher sorting value is now calculated from the number of plus signs" + " in the first part, the more plus signs, the smaller the value." + " The first character from the second part determines the lower value." + " If it is in parameter CHARS then the position determines the value," + " otherwise the ASCII value to which 500 is added." }, + { T_OPT_GMP, "CHDIR", "chdir", "dir", "Set a new working directory for all following options," @@ -1531,7 +1585,7 @@ 0, "Print an ID with 8 characters instead of a SHA-1 sum with" " 40 characters. The SHA-1 sum is used to calculate the ID." - " The ID consists of '0'-'9' and 'a'-'w' (32 characters)." }, + " The ID consists of '0'-'9' and 'a'-'v' (32 different characters)." }, { T_OPT_CO, "BASE64", "base64", "[=mode]", @@ -2578,6 +2632,7 @@ { T_COPT, "RM_AIPARAM", 0,0,0 }, { T_COPY_GRP, "ALIGN", 0,0,0 }, { T_COPT, "LOGGING", 0,0,0 }, + { T_COPT, "TIMING", 0,0,0 }, { T_COPY_GRP, "ENCODE", 0,0,0 }, { T_COPT, "AUTO_ADD", 0,0,0 }, { T_COPT, "MIPMAPS", 0,0,0 }, @@ -2663,7 +2718,11 @@ //---------- COMMAND wszst ARGTEST ---------- { T_CMD_BEG, "ARGTEST", 0,0,0 }, + { T_ALL_OPT, 0, 0,0,0 }, + + //---------- COMMAND wszst EXPAND ---------- + { T_CMD_BEG, "EXPAND", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wszst TEST ---------- @@ -2840,6 +2899,7 @@ { T_COPT, "BRIEF", 0,0, "Limit output to SZS specific data." }, { T_COPT, "LOGGING", 0,0,0 }, + { T_COPT, "TIMING", 0,0,0 }, //---------- COMMAND wszst _CODE ---------- @@ -3030,6 +3090,19 @@ { T_COPT, "DEST", 0,0,0 }, { T_COPT, "DEST2", 0,0,0 }, + //---------- COMMAND wszst SPLIT ---------- + + { T_CMD_BEG, "SPLIT", 0,0,0 }, + { T_COPT, "LOAD_PREFIX", 0,0,0 }, + { T_COPT, "PLUS", 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 }, + { T_COPT, "DEST", 0,0,0 }, + { T_COPT, "DEST2", 0,0,0 }, + //---------- COMMAND wszst IS_TEXTURE ---------- { T_CMD_BEG, "IS_TEXTURE", 0,0,0 }, @@ -3247,6 +3320,7 @@ { T_COPT, "IGNORE_SETUP", 0,0,0 }, { T_COPY_GRP, "ALIGN", 0,0,0 }, { T_COPT, "LOGGING", 0,0,0 }, + { T_COPT, "TIMING", 0,0,0 }, { T_COPY_GRP, "ENCODE", 0,0,0 }, { T_COPT, "MIPMAPS", 0,0,0 }, { T_COPT, "NO_MIPMAPS", 0,0,0 }, diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c index aa991c4..0741af3 100644 --- a/project/src/ui/ui-wbmgt.c +++ b/project/src/ui/ui-wbmgt.c @@ -353,6 +353,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -368,7 +373,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -541,7 +553,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 == 64 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 66 }; @@ -641,6 +653,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -684,9 +697,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -840,39 +856,41 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_POINTS, - /* 0x08d */ OPT_UTF_8, - /* 0x08e */ OPT_NO_UTF_8, - /* 0x08f */ OPT_FORCE, - /* 0x090 */ OPT_REPAIR_MAGICS, - /* 0x091 */ OPT_OLD, - /* 0x092 */ OPT_STD, - /* 0x093 */ OPT_NEW, - /* 0x094 */ OPT_EXTRACT, - /* 0x095 */ OPT_NUMBER, - /* 0x096 */ OPT_ALIGN, - /* 0x097 */ OPT_MACRO_BMG, - /* 0x098 */ OPT_FILTER_BMG, - /* 0x099 */ OPT_BMG_ENDIAN, - /* 0x09a */ OPT_BMG_ENCODING, - /* 0x09b */ OPT_BMG_INF_SIZE, - /* 0x09c */ OPT_BMG_MID, - /* 0x09d */ OPT_FORCE_ATTRIB, - /* 0x09e */ OPT_DEF_ATTRIB, - /* 0x09f */ OPT_NO_ATTRIB, - /* 0x0a0 */ OPT_X_ESCAPES, - /* 0x0a1 */ OPT_OLD_ESCAPES, - /* 0x0a2 */ OPT_NO_BMG_COLORS, - /* 0x0a3 */ OPT_BMG_COLORS, - /* 0x0a4 */ OPT_NO_BMG_INLINE, - /* 0x0a5 */ OPT_SECTIONS, - /* 0x0a6 */ 0,0,0,0, 0,0,0,0, 0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 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, /* 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, @@ -913,109 +931,115 @@ static u8 option_allowed_cmd_ARGTEST[32] = // cmd #4 1,1 }; -static u8 option_allowed_cmd_TEST[32] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[32] = // 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 }; -static u8 option_allowed_cmd_COLORS[32] = // cmd #6 +static u8 option_allowed_cmd_TEST[32] = // 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 +}; + +static u8 option_allowed_cmd_COLORS[32] = // 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 }; -static u8 option_allowed_cmd_ERROR[32] = // cmd #7 +static u8 option_allowed_cmd_ERROR[32] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[32] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[32] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[32] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[32] = // 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 }; -static u8 option_allowed_cmd_POINTS[32] = // cmd #10 +static u8 option_allowed_cmd_POINTS[32] = // 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 }; -static u8 option_allowed_cmd_REGEXP[32] = // cmd #11 +static u8 option_allowed_cmd_REGEXP[32] = // 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 }; -static u8 option_allowed_cmd_EXTRACT[32] = // cmd #12 +static u8 option_allowed_cmd_EXTRACT[32] = // 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 }; -static u8 option_allowed_cmd_SECTIONS[32] = // cmd #13 +static u8 option_allowed_cmd_SECTIONS[32] = // 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 }; -static u8 option_allowed_cmd_LIST[32] = // cmd #14 +static u8 option_allowed_cmd_LIST[32] = // 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 }; -static u8 option_allowed_cmd_SLOTS[32] = // cmd #15 +static u8 option_allowed_cmd_SLOTS[32] = // 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 }; -static u8 option_allowed_cmd_DIFF[32] = // cmd #16 +static u8 option_allowed_cmd_DIFF[32] = // 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 }; -static u8 option_allowed_cmd_CAT[32] = // cmd #17 +static u8 option_allowed_cmd_CAT[32] = // 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 }; -static u8 option_allowed_cmd_MIX[32] = // cmd #18 +static u8 option_allowed_cmd_MIX[32] = // 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 }; -static u8 option_allowed_cmd_IDENTIFIER[32] = // cmd #19 +static u8 option_allowed_cmd_IDENTIFIER[32] = // 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 }; -static u8 option_allowed_cmd_DECODE[32] = // cmd #20 +static u8 option_allowed_cmd_DECODE[32] = // 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 }; -static u8 option_allowed_cmd_ENCODE[32] = // cmd #21 +static u8 option_allowed_cmd_ENCODE[32] = // 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 }; -static u8 option_allowed_cmd_PATCH[32] = // cmd #22 +static u8 option_allowed_cmd_PATCH[32] = // 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 @@ -1037,9 +1061,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1094,6 +1120,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1422,7 +1454,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wbmgt [option]... command [option|parameter|file]...", "Wiimms BMG Tool : Convert and patch raw and text BMG (message) files.", 0, - 26, + 28, option_tab_tool, 0 }, @@ -1488,13 +1520,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wbmgt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wbmgt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1534,7 +1585,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wbmgt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1549,7 +1601,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1566,7 +1618,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, diff --git a/project/src/ui/ui-wbmgt.h b/project/src/ui/ui-wbmgt.h index 855342f..31f238f 100644 --- a/project/src/ui/ui-wbmgt.h +++ b/project/src/ui/ui-wbmgt.h @@ -100,9 +100,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -125,7 +127,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 64 + OPT__N_TOTAL // == 66 } enumOptions; @@ -212,6 +214,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -304,6 +308,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -326,7 +331,7 @@ typedef enum enumCommands CMD_PATCH, - CMD__N // == 23 + CMD__N // == 24 } enumCommands; @@ -373,6 +378,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c index 1344aa3..2d15c1f 100644 --- a/project/src/ui/ui-wctct.c +++ b/project/src/ui/ui-wctct.c @@ -453,6 +453,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -468,7 +473,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -616,6 +628,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" }, + { OPT_CREATE_DISTRIB, false, false, false, false, false, 0, "create-distrib", + "file", + "Create a LE-CODE distribution dump with a track list and more info" + " about the current distribution. Store the dump info a file." + }, + { OPT_OLD, false, true, false, false, false, 0, "OLD", 0, "Developer option: Cancel --NEW and use old implementation if" @@ -672,7 +690,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 == 83 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 86 }; @@ -834,6 +852,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -875,9 +894,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -944,6 +966,8 @@ static const struct option OptionLong[] = { "force", 0, 0, GO_FORCE }, { "repair-magics", 2, 0, GO_REPAIR_MAGICS }, { "repairmagics", 2, 0, GO_REPAIR_MAGICS }, + { "create-distrib", 1, 0, GO_CREATE_DISTRIB }, + { "createdistrib", 1, 0, GO_CREATE_DISTRIB }, { "OLD", 0, 0, GO_OLD }, { "STD", 0, 0, GO_STD }, { "NEW", 0, 0, GO_NEW }, @@ -1058,57 +1082,60 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_OLD_SPINY, - /* 0x08c */ OPT_CRS1, - /* 0x08d */ OPT_CHDIR, - /* 0x08e */ OPT_ROUND, - /* 0x08f */ OPT_RAW, - /* 0x090 */ OPT_BMG_ENDIAN, - /* 0x091 */ OPT_BMG_ENCODING, - /* 0x092 */ OPT_BMG_INF_SIZE, - /* 0x093 */ OPT_BMG_MID, - /* 0x094 */ OPT_FORCE_ATTRIB, - /* 0x095 */ OPT_DEF_ATTRIB, - /* 0x096 */ OPT_NO_ATTRIB, - /* 0x097 */ OPT_X_ESCAPES, - /* 0x098 */ OPT_OLD_ESCAPES, - /* 0x099 */ OPT_NO_BMG_COLORS, - /* 0x09a */ OPT_BMG_COLORS, - /* 0x09b */ OPT_NO_BMG_INLINE, - /* 0x09c */ OPT_NO_ECHO, - /* 0x09d */ OPT_UTF_8, - /* 0x09e */ OPT_NO_UTF_8, - /* 0x09f */ OPT_FORCE, - /* 0x0a0 */ OPT_REPAIR_MAGICS, - /* 0x0a1 */ OPT_OLD, - /* 0x0a2 */ OPT_STD, - /* 0x0a3 */ OPT_NEW, - /* 0x0a4 */ OPT_EXTRACT, - /* 0x0a5 */ OPT_LIST, - /* 0x0a6 */ OPT_REF, - /* 0x0a7 */ OPT_FULL, - /* 0x0a8 */ OPT_HEX, - /* 0x0a9 */ OPT_CT_DIR, - /* 0x0aa */ OPT_CT_LOG, - /* 0x0ab */ OPT_ALLOW_SLOTS, - /* 0x0ac */ OPT_IMAGES, - /* 0x0ad */ OPT_LOAD_BMG, - /* 0x0ae */ OPT_PATCH_BMG, - /* 0x0af */ OPT_MACRO_BMG, - /* 0x0b0 */ OPT_FILTER_BMG, - /* 0x0b1 */ OPT_PATCH_NAMES, - /* 0x0b2 */ OPT_ORDER_BY, - /* 0x0b3 */ OPT_ORDER_ALL, - /* 0x0b4 */ OPT_DYNAMIC, - /* 0x0b5 */ OPT_WRITE_TRACKS, - /* 0x0b6 */ OPT_NUMBER, - /* 0x0b7 */ OPT_SECTIONS, - /* 0x0b8 */ 0,0,0,0, 0,0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_OLD_SPINY, + /* 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, /* 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, @@ -1148,109 +1175,115 @@ static u8 option_allowed_cmd_ARGTEST[47] = // cmd #4 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 #5 +static u8 option_allowed_cmd_EXPAND[47] = // 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 +}; + +static u8 option_allowed_cmd_TEST[47] = // 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 }; -static u8 option_allowed_cmd_COLORS[47] = // cmd #6 +static u8 option_allowed_cmd_COLORS[47] = // 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 }; -static u8 option_allowed_cmd_ERROR[47] = // cmd #7 +static u8 option_allowed_cmd_ERROR[47] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[47] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[47] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[47] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[47] = // 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 }; -static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[47] = // 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 }; -static u8 option_allowed_cmd_FUNCTIONS[47] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[47] = // 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 }; -static u8 option_allowed_cmd_CALCULATE[47] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[47] = // 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 }; -static u8 option_allowed_cmd_FLOAT[47] = // cmd #13 +static u8 option_allowed_cmd_FLOAT[47] = // 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 }; -static u8 option_allowed_cmd_EXPORT[47] = // cmd #14 +static u8 option_allowed_cmd_EXPORT[47] = // 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 }; -static u8 option_allowed_cmd_RAWDUMP[47] = // cmd #15 +static u8 option_allowed_cmd_RAWDUMP[47] = // 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 }; -static u8 option_allowed_cmd_DUMP[47] = // cmd #16 +static u8 option_allowed_cmd_DUMP[47] = // 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 }; -static u8 option_allowed_cmd_CAT[47] = // cmd #17 +static u8 option_allowed_cmd_CAT[47] = // 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 }; -static u8 option_allowed_cmd_BMG[47] = // cmd #18 +static u8 option_allowed_cmd_BMG[47] = // 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 }; -static u8 option_allowed_cmd_TRACKS[47] = // cmd #19 +static u8 option_allowed_cmd_TRACKS[47] = // 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 }; -static u8 option_allowed_cmd_DECODE[47] = // cmd #20 +static u8 option_allowed_cmd_DECODE[47] = // 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 }; -static u8 option_allowed_cmd_CREATE[47] = // cmd #21 +static u8 option_allowed_cmd_CREATE[47] = // 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 }; -static u8 option_allowed_cmd_PATCH[47] = // cmd #22 +static u8 option_allowed_cmd_PATCH[47] = // 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 @@ -1272,9 +1305,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1292,6 +1327,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_TEST, OptionInfo + OPT_FORCE, OptionInfo + OPT_REPAIR_MAGICS, + OptionInfo + OPT_CREATE_DISTRIB, OptionInfo + OPT_NONE, // separator @@ -1334,6 +1370,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1654,7 +1696,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms CT-CODE Tool : Manage the CT-CODE extension. BRRES, TEX0," " CT-CODE, CT-TEXT and LE-BIN files are accepted as input.", 0, - 28, + 31, option_tab_tool, 0 }, @@ -1720,13 +1762,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wctct ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wctct EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1766,7 +1827,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wctct ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1781,7 +1843,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1798,7 +1860,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -1843,7 +1906,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wctct CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, diff --git a/project/src/ui/ui-wctct.h b/project/src/ui/ui-wctct.h index 532b082..f55d4ad 100644 --- a/project/src/ui/ui-wctct.h +++ b/project/src/ui/ui-wctct.h @@ -115,9 +115,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -136,6 +138,7 @@ typedef enum enumOptions OPT_TEST, OPT_FORCE, OPT_REPAIR_MAGICS, + OPT_CREATE_DISTRIB, OPT_OLD, OPT_STD, OPT_NEW, @@ -144,7 +147,7 @@ typedef enum enumOptions OPT_CT_LOG, OPT_ALLOW_SLOTS, - OPT__N_TOTAL // == 83 + OPT__N_TOTAL // == 86 } enumOptions; @@ -248,6 +251,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -374,6 +379,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -395,7 +401,7 @@ typedef enum enumCommands CMD_PATCH, - CMD__N // == 23 + CMD__N // == 24 } enumCommands; @@ -443,6 +449,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -470,6 +478,7 @@ typedef enum enumGetOpt GO_NO_UTF_8, GO_FORCE, GO_REPAIR_MAGICS, + GO_CREATE_DISTRIB, GO_OLD, GO_STD, GO_NEW, diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c index 7ffff1c..c6eca37 100644 --- a/project/src/ui/ui-wimgt.c +++ b/project/src/ui/ui-wimgt.c @@ -316,6 +316,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -331,7 +336,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -492,7 +504,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 == 57 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 59 }; @@ -588,6 +600,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -625,9 +638,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -766,33 +782,34 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_UTF_8, - /* 0x08d */ OPT_NO_UTF_8, - /* 0x08e */ OPT_FORCE, - /* 0x08f */ OPT_REPAIR_MAGICS, - /* 0x090 */ OPT_OLD, - /* 0x091 */ OPT_STD, - /* 0x092 */ OPT_NEW, - /* 0x093 */ OPT_EXTRACT, - /* 0x094 */ OPT_NUMBER, - /* 0x095 */ OPT_MIPMAPS, - /* 0x096 */ OPT_NO_MIPMAPS, - /* 0x097 */ OPT_N_MIPMAPS, - /* 0x098 */ OPT_MAX_MIPMAPS, - /* 0x099 */ OPT_MIPMAP_SIZE, - /* 0x09a */ OPT_FAST_MIPMAPS, - /* 0x09b */ OPT_CMPR_DEFAULT, - /* 0x09c */ OPT_PRE_CONVERT, - /* 0x09d */ OPT_STRIP, - /* 0x09e */ OPT_SECTIONS, - /* 0x09f */ 0, - /* 0x0a0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 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, /* 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, @@ -829,62 +846,67 @@ static u8 option_allowed_cmd_ARGTEST[26] = // 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 }; -static u8 option_allowed_cmd_TEST[26] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[26] = // 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 }; -static u8 option_allowed_cmd_COLORS[26] = // cmd #6 +static u8 option_allowed_cmd_TEST[26] = // 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 +}; + +static u8 option_allowed_cmd_COLORS[26] = // 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 }; -static u8 option_allowed_cmd_ERROR[26] = // cmd #7 +static u8 option_allowed_cmd_ERROR[26] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[26] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[26] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[26] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[26] = // 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 }; -static u8 option_allowed_cmd_LIST[26] = // cmd #10 +static u8 option_allowed_cmd_LIST[26] = // 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 }; -static u8 option_allowed_cmd_LIST_L[26] = // cmd #11 +static u8 option_allowed_cmd_LIST_L[26] = // 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 }; -static u8 option_allowed_cmd_LIST_LL[26] = // cmd #12 +static u8 option_allowed_cmd_LIST_LL[26] = // 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 }; -static u8 option_allowed_cmd_DECODE[26] = // cmd #13 +static u8 option_allowed_cmd_DECODE[26] = // 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 }; -static u8 option_allowed_cmd_ENCODE[26] = // cmd #14 +static u8 option_allowed_cmd_ENCODE[26] = // 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 }; -static u8 option_allowed_cmd_CONVERT[26] = // cmd #15 +static u8 option_allowed_cmd_CONVERT[26] = // 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 }; -static u8 option_allowed_cmd_COPY[26] = // cmd #16 +static u8 option_allowed_cmd_COPY[26] = // 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 }; @@ -905,9 +927,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -959,6 +983,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1188,7 +1218,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms Image Tool : Extract and convert graphic images. The file" " formats TPL, TEX, BTI, BREFT and PNG are supported.", 0, - 23, + 25, option_tab_tool, 0 }, @@ -1254,13 +1284,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wimgt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wimgt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1300,7 +1349,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wimgt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1315,7 +1365,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1332,7 +1382,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, diff --git a/project/src/ui/ui-wimgt.h b/project/src/ui/ui-wimgt.h index 4595e8e..1373c02 100644 --- a/project/src/ui/ui-wimgt.h +++ b/project/src/ui/ui-wimgt.h @@ -94,9 +94,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -118,7 +120,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 57 + OPT__N_TOTAL // == 59 } enumOptions; @@ -193,6 +195,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -244,6 +248,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -260,7 +265,7 @@ typedef enum enumCommands CMD_COPY, - CMD__N // == 17 + CMD__N // == 18 } enumCommands; @@ -306,6 +311,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c index adcb273..df62da4 100644 --- a/project/src/ui/ui-wkclt.c +++ b/project/src/ui/ui-wkclt.c @@ -265,7 +265,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = 0, "Print an ID with 8 characters instead of a SHA-1 sum with 40" " characters. The SHA-1 sum is used to calculate the ID. The ID" - " consists of '0'-'9' and 'a'-'w' (32 characters)." + " consists of '0'-'9' and 'a'-'v' (32 different characters)." }, { OPT_BASE64, true, false, false, false, false, 0, "base64", @@ -453,6 +453,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -468,7 +473,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -680,7 +692,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 == 77 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 79 }; @@ -914,6 +926,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -965,9 +978,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -1122,53 +1138,55 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_SCALE, - /* 0x08d */ OPT_SHIFT, - /* 0x08e */ OPT_XSS, - /* 0x08f */ OPT_YSS, - /* 0x090 */ OPT_ZSS, - /* 0x091 */ OPT_ROT, - /* 0x092 */ OPT_XROT, - /* 0x093 */ OPT_YROT, - /* 0x094 */ OPT_ZROT, - /* 0x095 */ OPT_TRANSLATE, - /* 0x096 */ OPT_NULL, - /* 0x097 */ OPT_NEXT, - /* 0x098 */ OPT_ASCALE, - /* 0x099 */ OPT_AROT, - /* 0x09a */ OPT_TFORM_SCRIPT, - /* 0x09b */ OPT_KCL, - /* 0x09c */ OPT_KCL_FLAG, - /* 0x09d */ OPT_KCL_SCRIPT, - /* 0x09e */ OPT_TRI_AREA, - /* 0x09f */ OPT_TRI_HEIGHT, - /* 0x0a0 */ OPT_FLAG_FILE, - /* 0x0a1 */ OPT_XTRIDATA, - /* 0x0a2 */ OPT_SLOT, - /* 0x0a3 */ OPT_ID, - /* 0x0a4 */ OPT_BASE64, - /* 0x0a5 */ OPT_DB64, - /* 0x0a6 */ OPT_CODING, - /* 0x0a7 */ OPT_ROUND, - /* 0x0a8 */ OPT_NO_ECHO, - /* 0x0a9 */ OPT_UTF_8, - /* 0x0aa */ OPT_NO_UTF_8, - /* 0x0ab */ OPT_FORCE, - /* 0x0ac */ OPT_REPAIR_MAGICS, - /* 0x0ad */ OPT_TINY, - /* 0x0ae */ OPT_OLD, - /* 0x0af */ OPT_STD, - /* 0x0b0 */ OPT_NEW, - /* 0x0b1 */ OPT_EXTRACT, - /* 0x0b2 */ OPT_NUMBER, - /* 0x0b3 */ OPT_SECTIONS, - /* 0x0b4 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_CHDIR, + /* 0x08e */ OPT_SCALE, + /* 0x08f */ OPT_SHIFT, + /* 0x090 */ OPT_XSS, + /* 0x091 */ OPT_YSS, + /* 0x092 */ OPT_ZSS, + /* 0x093 */ OPT_ROT, + /* 0x094 */ OPT_XROT, + /* 0x095 */ OPT_YROT, + /* 0x096 */ OPT_ZROT, + /* 0x097 */ OPT_TRANSLATE, + /* 0x098 */ OPT_NULL, + /* 0x099 */ OPT_NEXT, + /* 0x09a */ OPT_ASCALE, + /* 0x09b */ OPT_AROT, + /* 0x09c */ OPT_TFORM_SCRIPT, + /* 0x09d */ OPT_KCL, + /* 0x09e */ OPT_KCL_FLAG, + /* 0x09f */ OPT_KCL_SCRIPT, + /* 0x0a0 */ OPT_TRI_AREA, + /* 0x0a1 */ OPT_TRI_HEIGHT, + /* 0x0a2 */ OPT_FLAG_FILE, + /* 0x0a3 */ OPT_XTRIDATA, + /* 0x0a4 */ OPT_SLOT, + /* 0x0a5 */ OPT_ID, + /* 0x0a6 */ OPT_BASE64, + /* 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, /* 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, @@ -1208,169 +1226,175 @@ static u8 option_allowed_cmd_ARGTEST[41] = // cmd #4 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_TEST[41] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[41] = // 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 }; -static u8 option_allowed_cmd_COLORS[41] = // cmd #6 +static u8 option_allowed_cmd_TEST[41] = // 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 +}; + +static u8 option_allowed_cmd_COLORS[41] = // 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 }; -static u8 option_allowed_cmd_ERROR[41] = // cmd #7 +static u8 option_allowed_cmd_ERROR[41] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[41] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[41] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[41] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[41] = // 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 }; -static u8 option_allowed_cmd_SYMBOLS[41] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[41] = // 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 }; -static u8 option_allowed_cmd_FUNCTIONS[41] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[41] = // 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 }; -static u8 option_allowed_cmd_CALCULATE[41] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[41] = // 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 }; -static u8 option_allowed_cmd_MATRIX[41] = // cmd #13 +static u8 option_allowed_cmd_MATRIX[41] = // 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 }; -static u8 option_allowed_cmd_FLOAT[41] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[41] = // 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 }; -static u8 option_allowed_cmd_EXPORT[41] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[41] = // 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 }; -static u8 option_allowed_cmd_CAT[41] = // cmd #16 +static u8 option_allowed_cmd_CAT[41] = // 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 }; -static u8 option_allowed_cmd_DECODE[41] = // cmd #17 +static u8 option_allowed_cmd_DECODE[41] = // 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 }; -static u8 option_allowed_cmd_ENCODE[41] = // cmd #18 +static u8 option_allowed_cmd_ENCODE[41] = // 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 }; -static u8 option_allowed_cmd_COPY[41] = // cmd #19 +static u8 option_allowed_cmd_COPY[41] = // 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 }; -static u8 option_allowed_cmd_CFF[41] = // cmd #20 +static u8 option_allowed_cmd_CFF[41] = // 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 }; -static u8 option_allowed_cmd_TYPES[41] = // cmd #21 +static u8 option_allowed_cmd_TYPES[41] = // 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 }; -static u8 option_allowed_cmd_FLAGS[41] = // cmd #22 +static u8 option_allowed_cmd_FLAGS[41] = // 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 }; -static u8 option_allowed_cmd_DUMP[41] = // cmd #23 +static u8 option_allowed_cmd_DUMP[41] = // 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 }; -static u8 option_allowed_cmd_DBRIEF[41] = // cmd #24 +static u8 option_allowed_cmd_DBRIEF[41] = // 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 }; -static u8 option_allowed_cmd_LIST[41] = // cmd #25 +static u8 option_allowed_cmd_LIST[41] = // 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 }; -static u8 option_allowed_cmd_TRIANGLES[41] = // cmd #26 +static u8 option_allowed_cmd_TRIANGLES[41] = // 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 }; -static u8 option_allowed_cmd_TRAVERSE[41] = // cmd #27 +static u8 option_allowed_cmd_TRAVERSE[41] = // 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 }; -static u8 option_allowed_cmd_FALL[41] = // cmd #28 +static u8 option_allowed_cmd_FALL[41] = // 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 }; -static u8 option_allowed_cmd_CHECK[41] = // cmd #29 +static u8 option_allowed_cmd_CHECK[41] = // 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 }; -static u8 option_allowed_cmd_SHA1[41] = // cmd #30 +static u8 option_allowed_cmd_SHA1[41] = // 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 }; -static u8 option_allowed_cmd_ANALYZE[41] = // cmd #31 +static u8 option_allowed_cmd_ANALYZE[41] = // 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 }; -static u8 option_allowed_cmd_BLOW[41] = // cmd #32 +static u8 option_allowed_cmd_BLOW[41] = // 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 @@ -1392,9 +1416,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1450,6 +1476,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { &option_cmd_TEST_VERBOSE, @@ -2131,7 +2163,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KCL Tool : Analyze, modify, export and create KCL and OBJ" " files.", 0, - 27, + 29, option_tab_tool, 0 }, @@ -2197,13 +2229,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkclt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wkclt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -2243,7 +2294,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wkclt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -2258,7 +2310,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -2275,7 +2327,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -2320,7 +2373,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wkclt CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, diff --git a/project/src/ui/ui-wkclt.h b/project/src/ui/ui-wkclt.h index 50c89ca..352a4b8 100644 --- a/project/src/ui/ui-wkclt.h +++ b/project/src/ui/ui-wkclt.h @@ -109,9 +109,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -138,7 +140,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 77 + OPT__N_TOTAL // == 79 } enumOptions; @@ -240,6 +242,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -367,6 +371,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -398,7 +403,7 @@ typedef enum enumCommands CMD_BLOW, - CMD__N // == 33 + CMD__N // == 34 } enumCommands; @@ -443,6 +448,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c index 3d566eb..6cce3b2 100644 --- a/project/src/ui/ui-wkmpt.c +++ b/project/src/ui/ui-wkmpt.c @@ -545,6 +545,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -560,7 +565,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -877,7 +889,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 == 94 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 96 }; @@ -1125,6 +1137,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -1175,9 +1188,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -1366,67 +1382,69 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_SCALE, - /* 0x08d */ OPT_SHIFT, - /* 0x08e */ OPT_XSS, - /* 0x08f */ OPT_YSS, - /* 0x090 */ OPT_ZSS, - /* 0x091 */ OPT_ROT, - /* 0x092 */ OPT_XROT, - /* 0x093 */ OPT_YROT, - /* 0x094 */ OPT_ZROT, - /* 0x095 */ OPT_YPOS, - /* 0x096 */ OPT_TRANSLATE, - /* 0x097 */ OPT_NULL, - /* 0x098 */ OPT_NEXT, - /* 0x099 */ OPT_ASCALE, - /* 0x09a */ OPT_AROT, - /* 0x09b */ OPT_TFORM_SCRIPT, - /* 0x09c */ OPT_RM_GOBJ, - /* 0x09d */ OPT_BATTLE, - /* 0x09e */ OPT_EXPORT_FLAGS, - /* 0x09f */ OPT_ROUTE_OPTIONS, - /* 0x0a0 */ OPT_WIM0, - /* 0x0a1 */ OPT_SLOT, - /* 0x0a2 */ OPT_POS_MODE, - /* 0x0a3 */ OPT_POS_FILE, - /* 0x0a4 */ OPT_PNG, - /* 0x0a5 */ OPT_LOAD_KCL, - /* 0x0a6 */ OPT_KCL, - /* 0x0a7 */ OPT_KCL_FLAG, - /* 0x0a8 */ OPT_KCL_SCRIPT, - /* 0x0a9 */ OPT_TRI_AREA, - /* 0x0aa */ OPT_TRI_HEIGHT, - /* 0x0ab */ OPT_FLAG_FILE, - /* 0x0ac */ OPT_XTRIDATA, - /* 0x0ad */ OPT_KMP, - /* 0x0ae */ OPT_SPEED_MOD, - /* 0x0af */ OPT_KTPT2, - /* 0x0b0 */ OPT_TFORM_KMP, - /* 0x0b1 */ OPT_REPAIR_XPF, - /* 0x0b2 */ OPT_GAMEMODES, - /* 0x0b3 */ OPT_ROUND, - /* 0x0b4 */ OPT_EPSILON, - /* 0x0b5 */ OPT_DIFF, - /* 0x0b6 */ OPT_NO_ECHO, - /* 0x0b7 */ OPT_UTF_8, - /* 0x0b8 */ OPT_NO_UTF_8, - /* 0x0b9 */ OPT_FORCE, - /* 0x0ba */ OPT_REPAIR_MAGICS, - /* 0x0bb */ OPT_TINY, - /* 0x0bc */ OPT_OLD, - /* 0x0bd */ OPT_STD, - /* 0x0be */ OPT_NEW, - /* 0x0bf */ OPT_EXTRACT, - /* 0x0c0 */ OPT_NUMBER, - /* 0x0c1 */ OPT_SECTIONS, - /* 0x0c2 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_CHDIR, + /* 0x08e */ OPT_SCALE, + /* 0x08f */ OPT_SHIFT, + /* 0x090 */ OPT_XSS, + /* 0x091 */ OPT_YSS, + /* 0x092 */ OPT_ZSS, + /* 0x093 */ OPT_ROT, + /* 0x094 */ OPT_XROT, + /* 0x095 */ OPT_YROT, + /* 0x096 */ OPT_ZROT, + /* 0x097 */ OPT_YPOS, + /* 0x098 */ OPT_TRANSLATE, + /* 0x099 */ OPT_NULL, + /* 0x09a */ OPT_NEXT, + /* 0x09b */ OPT_ASCALE, + /* 0x09c */ OPT_AROT, + /* 0x09d */ OPT_TFORM_SCRIPT, + /* 0x09e */ OPT_RM_GOBJ, + /* 0x09f */ OPT_BATTLE, + /* 0x0a0 */ OPT_EXPORT_FLAGS, + /* 0x0a1 */ OPT_ROUTE_OPTIONS, + /* 0x0a2 */ OPT_WIM0, + /* 0x0a3 */ OPT_SLOT, + /* 0x0a4 */ OPT_POS_MODE, + /* 0x0a5 */ OPT_POS_FILE, + /* 0x0a6 */ OPT_PNG, + /* 0x0a7 */ OPT_LOAD_KCL, + /* 0x0a8 */ OPT_KCL, + /* 0x0a9 */ OPT_KCL_FLAG, + /* 0x0aa */ OPT_KCL_SCRIPT, + /* 0x0ab */ OPT_TRI_AREA, + /* 0x0ac */ OPT_TRI_HEIGHT, + /* 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, /* 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, @@ -1465,157 +1483,163 @@ 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 }; -static u8 option_allowed_cmd_TEST[49] = // 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 }; -static u8 option_allowed_cmd_COLORS[49] = // 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 +}; + +static u8 option_allowed_cmd_COLORS[49] = // 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 }; -static u8 option_allowed_cmd_ERROR[49] = // cmd #7 +static u8 option_allowed_cmd_ERROR[49] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[49] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[49] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[49] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[49] = // 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 }; -static u8 option_allowed_cmd_SYMBOLS[49] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[49] = // 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 }; -static u8 option_allowed_cmd_FUNCTIONS[49] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[49] = // 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 }; -static u8 option_allowed_cmd_CALCULATE[49] = // cmd #12 +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 }; -static u8 option_allowed_cmd_MATRIX[49] = // cmd #13 +static u8 option_allowed_cmd_MATRIX[49] = // 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 }; -static u8 option_allowed_cmd_FLOAT[49] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[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,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_STARTPOS[49] = // cmd #15 +static u8 option_allowed_cmd_STARTPOS[49] = // 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 }; -static u8 option_allowed_cmd_OBJECTS[49] = // cmd #16 +static u8 option_allowed_cmd_OBJECTS[49] = // 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 }; -static u8 option_allowed_cmd_EXPORT[49] = // cmd #17 +static u8 option_allowed_cmd_EXPORT[49] = // 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 }; -static u8 option_allowed_cmd_XEXPORT[49] = // cmd #18 +static u8 option_allowed_cmd_XEXPORT[49] = // 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 }; -static u8 option_allowed_cmd_CAT[49] = // cmd #19 +static u8 option_allowed_cmd_CAT[49] = // 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 }; -static u8 option_allowed_cmd_DECODE[49] = // cmd #20 +static u8 option_allowed_cmd_DECODE[49] = // 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 }; -static u8 option_allowed_cmd_ENCODE[49] = // cmd #21 +static u8 option_allowed_cmd_ENCODE[49] = // 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 }; -static u8 option_allowed_cmd_DIFF[49] = // cmd #22 +static u8 option_allowed_cmd_DIFF[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,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 #23 +static u8 option_allowed_cmd_DRAW[49] = // 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 }; -static u8 option_allowed_cmd_CHECK[49] = // cmd #24 +static u8 option_allowed_cmd_CHECK[49] = // 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 }; -static u8 option_allowed_cmd_STGI[49] = // cmd #25 +static u8 option_allowed_cmd_STGI[49] = // 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 }; -static u8 option_allowed_cmd_KTPT[49] = // cmd #26 +static u8 option_allowed_cmd_KTPT[49] = // 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 }; -static u8 option_allowed_cmd_ROUTES[49] = // cmd #27 +static u8 option_allowed_cmd_ROUTES[49] = // 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 }; -static u8 option_allowed_cmd_GOBJ[49] = // cmd #28 +static u8 option_allowed_cmd_GOBJ[49] = // 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 }; -static u8 option_allowed_cmd_GAMEMODES[49] = // cmd #29 +static u8 option_allowed_cmd_GAMEMODES[49] = // 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 }; -static u8 option_allowed_cmd_WIM0[49] = // cmd #30 +static u8 option_allowed_cmd_WIM0[49] = // 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 @@ -1637,9 +1661,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1704,6 +1730,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { &option_cmd_TEST_VERBOSE, @@ -2196,7 +2228,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KMP Tool : Analyze, modify, export and create (compile) KMP" " files.", 0, - 36, + 38, option_tab_tool, 0 }, @@ -2262,13 +2294,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wkmpt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wkmpt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -2308,7 +2359,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wkmpt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -2323,7 +2375,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -2340,7 +2392,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -2385,7 +2438,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wkmpt CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, diff --git a/project/src/ui/ui-wkmpt.h b/project/src/ui/ui-wkmpt.h index a40d695..9bef264 100644 --- a/project/src/ui/ui-wkmpt.h +++ b/project/src/ui/ui-wkmpt.h @@ -117,9 +117,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -155,7 +157,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 94 + OPT__N_TOTAL // == 96 } enumOptions; @@ -267,6 +269,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -382,6 +386,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -411,7 +416,7 @@ typedef enum enumCommands CMD_WIM0, - CMD__N // == 31 + CMD__N // == 32 } enumCommands; @@ -459,6 +464,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c index 1c67b0d..720e084 100644 --- a/project/src/ui/ui-wlect.c +++ b/project/src/ui/ui-wlect.c @@ -53,6 +53,20 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = //----- command specific options ----- + { OPT_PLUS, false, false, false, false, false, 0, "plus", + "chars", + "If a name begins with a plus sign, then all characters up to the" + " first space are recognized as a plus prefix. The first part consists" + " of all the plus signs followed by any other characters. The first" + " character of the second part is used to determine the sort value. If" + " the second part is empty, then the last plus sign is used instead.\n" + " The higher sorting value is now calculated from the number of plus" + " signs in the first part, the more plus signs, the smaller the value." + " The first character from the second part determines the lower value." + " If it is in parameter CHARS then the position determines the value," + " otherwise the ASCII value to which 500 is added." + }, + { OPT_ROUND, false, false, false, false, false, 0, "round", 0, "Print additional lines with rounded values (to 3 and 2 bytes for" @@ -110,6 +124,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " values. If needed, LEX section TEST is created or removed if empty." }, + { OPT_CREATE_DISTRIB, false, false, false, false, false, 0, "create-distrib", + "file", + "Create a LE-CODE distribution dump with a track list and more info" + " about the current distribution. Store the dump info a file." + }, + { OPT_LE_DEFINE, false, false, false, false, true, 0, "le-define", "file", "Use this file as definition file to patch LE-CODE. The file format" @@ -230,6 +250,15 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --track-dir. If linking fails, the file is copied." }, + { OPT_SZS_MODE, false, false, false, false, false, 0, "szs-mode", + "mode", + "If a track is inserted via the SZS file, then the associated" + " directory is automatically included in the list of search" + " directories for option --track-dir. This option now sets the" + " transfer mode. OFF turns this feature off. The values COPY, MOVE," + " MOVE1 and LINK define one of the 4 modes. Default mode is LINK." + }, + { OPT_COMPLETE, false, false, false, false, true, 'C', "complete", 0, " Append missing sections to the LEX file." @@ -358,7 +387,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 == 44 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 47 //----- global options ----- @@ -418,6 +447,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -433,7 +467,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -482,6 +523,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " compatibility with the other tools." }, + { OPT_LOAD_PREFIX, false, false, false, false, false, 0, "load-prefix", + "file", + "Read in a PREFIX file and replace the internal prefix database with" + " the content. https://ct.wiimm.de/export/prefix is the authoritative" + " source for this." + }, + { OPT_CHDIR, false, false, false, false, false, 0, "chdir", "dir", "Set a new working directory for all following options, for all" @@ -612,7 +660,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 == 79 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 85 }; @@ -742,6 +790,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -761,6 +810,8 @@ static const KeywordTab_t CommandTab[] = { CMD_PATCH, "PATCH", "P", 0 }, { CMD_LPAR, "LPAR", 0, 0 }, { CMD_CREATE, "CREATE", "CR", 0 }, + { CMD_DISTRIBUTION, "DISTRIBUTION", "DIS", 0 }, + { CMD_DISTRIBUTION, "DISTRIB", 0, 0 }, { CMD_CAT, "CAT", 0, 0 }, { CMD_DECODE, "DECODE", "DEC", 0 }, { CMD_ENCODE, "ENCODE", "ENC", 0 }, @@ -787,9 +838,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -799,6 +853,9 @@ static const struct option OptionLong[] = { "ctcode", 0, 0, GO_CT_CODE }, { "le-code", 2, 0, GO_LE_CODE }, { "lecode", 2, 0, GO_LE_CODE }, + { "load-prefix", 1, 0, GO_LOAD_PREFIX }, + { "loadprefix", 1, 0, GO_LOAD_PREFIX }, + { "plus", 1, 0, GO_PLUS }, { "chdir", 1, 0, GO_CHDIR }, { "const", 1, 0, 'c' }, { "round", 0, 0, GO_ROUND }, @@ -845,6 +902,8 @@ static const struct option OptionLong[] = { "force", 0, 0, GO_FORCE }, { "repair-magics", 2, 0, GO_REPAIR_MAGICS }, { "repairmagics", 2, 0, GO_REPAIR_MAGICS }, + { "create-distrib", 1, 0, GO_CREATE_DISTRIB }, + { "createdistrib", 1, 0, GO_CREATE_DISTRIB }, { "OLD", 0, 0, GO_OLD }, { "STD", 0, 0, GO_STD }, { "NEW", 0, 0, GO_NEW }, @@ -874,6 +933,8 @@ static const struct option OptionLong[] = { "move1tracks", 1, 0, GO_MOVE1_TRACKS }, { "link-tracks", 1, 0, GO_LINK_TRACKS }, { "linktracks", 1, 0, GO_LINK_TRACKS }, + { "szs-mode", 1, 0, GO_SZS_MODE }, + { "szsmode", 1, 0, GO_SZS_MODE }, { "complete", 0, 0, 'C' }, { "load-bmg", 1, 0, GO_LOAD_BMG }, { "loadbmg", 1, 0, GO_LOAD_BMG }, @@ -962,56 +1023,62 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_ROUND, - /* 0x08d */ OPT_NO_ECHO, - /* 0x08e */ OPT_UTF_8, - /* 0x08f */ OPT_NO_UTF_8, - /* 0x090 */ OPT_LT_CLEAR, - /* 0x091 */ OPT_LT_ONLINE, - /* 0x092 */ OPT_LT_N_PLAYERS, - /* 0x093 */ OPT_LT_COND_BIT, - /* 0x094 */ OPT_LT_GAME_MODE, - /* 0x095 */ OPT_LT_ENGINE, - /* 0x096 */ OPT_LT_RANDOM, - /* 0x097 */ OPT_LEX_PURGE, - /* 0x098 */ OPT_LEX_RM_FEAT, - /* 0x099 */ OPT_FORCE, - /* 0x09a */ OPT_REPAIR_MAGICS, - /* 0x09b */ OPT_OLD, - /* 0x09c */ OPT_STD, - /* 0x09d */ OPT_NEW, - /* 0x09e */ OPT_EXTRACT, - /* 0x09f */ OPT_LE_DEFINE, - /* 0x0a0 */ OPT_LE_ARENA, - /* 0x0a1 */ OPT_LPAR, - /* 0x0a2 */ OPT_ALIAS, - /* 0x0a3 */ OPT_ENGINE, - /* 0x0a4 */ OPT_200CC, - /* 0x0a5 */ OPT_PERFMON, - /* 0x0a6 */ OPT_CUSTOM_TT, - /* 0x0a7 */ OPT_XPFLAGS, - /* 0x0a8 */ OPT_SPEEDOMETER, - /* 0x0a9 */ OPT_DEBUG, - /* 0x0aa */ OPT_TRACK_DIR, - /* 0x0ab */ OPT_COPY_TRACKS, - /* 0x0ac */ OPT_MOVE_TRACKS, - /* 0x0ad */ OPT_MOVE1_TRACKS, - /* 0x0ae */ OPT_LINK_TRACKS, - /* 0x0af */ OPT_LOAD_BMG, - /* 0x0b0 */ OPT_PATCH_BMG, - /* 0x0b1 */ OPT_MACRO_BMG, - /* 0x0b2 */ OPT_PATCH_NAMES, - /* 0x0b3 */ OPT_ORDER_BY, - /* 0x0b4 */ OPT_ORDER_ALL, - /* 0x0b5 */ OPT_NUMBER, - /* 0x0b6 */ OPT_SECTIONS, - /* 0x0b7 */ 0,0,0,0, 0,0,0,0, 0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_LOAD_PREFIX, + /* 0x08e */ OPT_PLUS, + /* 0x08f */ OPT_CHDIR, + /* 0x090 */ OPT_ROUND, + /* 0x091 */ OPT_NO_ECHO, + /* 0x092 */ OPT_UTF_8, + /* 0x093 */ OPT_NO_UTF_8, + /* 0x094 */ OPT_LT_CLEAR, + /* 0x095 */ OPT_LT_ONLINE, + /* 0x096 */ OPT_LT_N_PLAYERS, + /* 0x097 */ OPT_LT_COND_BIT, + /* 0x098 */ OPT_LT_GAME_MODE, + /* 0x099 */ OPT_LT_ENGINE, + /* 0x09a */ OPT_LT_RANDOM, + /* 0x09b */ OPT_LEX_PURGE, + /* 0x09c */ OPT_LEX_RM_FEAT, + /* 0x09d */ OPT_FORCE, + /* 0x09e */ OPT_REPAIR_MAGICS, + /* 0x09f */ OPT_CREATE_DISTRIB, + /* 0x0a0 */ OPT_OLD, + /* 0x0a1 */ OPT_STD, + /* 0x0a2 */ OPT_NEW, + /* 0x0a3 */ OPT_EXTRACT, + /* 0x0a4 */ OPT_LE_DEFINE, + /* 0x0a5 */ OPT_LE_ARENA, + /* 0x0a6 */ OPT_LPAR, + /* 0x0a7 */ OPT_ALIAS, + /* 0x0a8 */ OPT_ENGINE, + /* 0x0a9 */ OPT_200CC, + /* 0x0aa */ OPT_PERFMON, + /* 0x0ab */ OPT_CUSTOM_TT, + /* 0x0ac */ OPT_XPFLAGS, + /* 0x0ad */ OPT_SPEEDOMETER, + /* 0x0ae */ OPT_DEBUG, + /* 0x0af */ OPT_TRACK_DIR, + /* 0x0b0 */ OPT_COPY_TRACKS, + /* 0x0b1 */ OPT_MOVE_TRACKS, + /* 0x0b2 */ OPT_MOVE1_TRACKS, + /* 0x0b3 */ OPT_LINK_TRACKS, + /* 0x0b4 */ OPT_SZS_MODE, + /* 0x0b5 */ OPT_LOAD_BMG, + /* 0x0b6 */ OPT_PATCH_BMG, + /* 0x0b7 */ OPT_MACRO_BMG, + /* 0x0b8 */ OPT_PATCH_NAMES, + /* 0x0b9 */ OPT_ORDER_BY, + /* 0x0ba */ OPT_ORDER_ALL, + /* 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, @@ -1027,154 +1094,166 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[44] = // cmd #1 +static u8 option_allowed_cmd_VERSION[47] = // 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,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 }; -static u8 option_allowed_cmd_HELP[44] = // cmd #2 +static u8 option_allowed_cmd_HELP[47] = // 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 }; -static u8 option_allowed_cmd_CONFIG[44] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[47] = // 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,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 }; -static u8 option_allowed_cmd_ARGTEST[44] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[47] = // 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 }; -static u8 option_allowed_cmd_TEST[44] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[47] = // 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 }; -static u8 option_allowed_cmd_COLORS[44] = // cmd #6 +static u8 option_allowed_cmd_TEST[47] = // cmd #6 { - 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,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,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_ERROR[44] = // cmd #7 +static u8 option_allowed_cmd_COLORS[47] = // cmd #7 { - 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,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,0 }; -static u8 option_allowed_cmd_FILETYPE[44] = // cmd #8 +static u8 option_allowed_cmd_ERROR[47] = // cmd #8 { - 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,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 }; -static u8 option_allowed_cmd_FILEATTRIB[44] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[47] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0 }; -static u8 option_allowed_cmd_SYMBOLS[44] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[47] = // 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,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 }; -static u8 option_allowed_cmd_FUNCTIONS[44] = // cmd #11 +static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #11 { - 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,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 }; -static u8 option_allowed_cmd_CALCULATE[44] = // cmd #12 +static u8 option_allowed_cmd_FUNCTIONS[47] = // 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 +}; + +static u8 option_allowed_cmd_CALCULATE[47] = // 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 }; -static u8 option_allowed_cmd_FLOAT[44] = // cmd #13 +static u8 option_allowed_cmd_FLOAT[47] = // 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,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 }; -static u8 option_allowed_cmd_EXPORT[44] = // cmd #14 +static u8 option_allowed_cmd_EXPORT[47] = // 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 }; -static u8 option_allowed_cmd_DPAD[44] = // cmd #15 +static u8 option_allowed_cmd_DPAD[47] = // 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 }; -static u8 option_allowed_cmd_DUMP[44] = // cmd #16 +static u8 option_allowed_cmd_DUMP[47] = // cmd #17 { - 0,0,1,0,0, 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, 0,0,0,0,0, 0,0,0,0 + 0,0,0,1,0, 0,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 }; -static u8 option_allowed_cmd_DL[44] = // cmd #17 +static u8 option_allowed_cmd_DL[47] = // cmd #18 { - 0,0,1,0,0, 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, 0,0,0,0,0, 0,0,0,0 + 0,0,0,1,0, 0,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 }; -static u8 option_allowed_cmd_DLL[44] = // cmd #18 +static u8 option_allowed_cmd_DLL[47] = // cmd #19 { - 0,0,1,0,0, 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, 0,0,0,0,0, 0,0,0,0 + 0,0,0,1,0, 0,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 }; -static u8 option_allowed_cmd_BIN_DIFF[44] = // cmd #19 +static u8 option_allowed_cmd_BIN_DIFF[47] = // 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,0,0,0,0, 0,0 +}; + +static u8 option_allowed_cmd_PATCH[47] = // cmd #21 +{ + 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 }; -static u8 option_allowed_cmd_PATCH[44] = // cmd #20 +static u8 option_allowed_cmd_LPAR[47] = // cmd #22 { - 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,1, 1,1,1,1,1, 1,1,1,0 + 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 }; -static u8 option_allowed_cmd_LPAR[44] = // cmd #21 +static u8 option_allowed_cmd_CREATE[47] = // cmd #23 { - 0,0,0,1,1, 1,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,1, 1,1,1,1,1, 1,1,1,0 + 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 }; -static u8 option_allowed_cmd_CREATE[44] = // cmd #22 +static u8 option_allowed_cmd_DISTRIBUTION[47] = // cmd #24 { - 0,0,0,1,1, 1,0,1,1,1, 1,0,0,1,0, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 + 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 }; -static u8 option_allowed_cmd_CAT[44] = // cmd #23 +static u8 option_allowed_cmd_CAT[47] = // cmd #25 { - 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,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 + 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 }; -static u8 option_allowed_cmd_DECODE[44] = // cmd #24 +static u8 option_allowed_cmd_DECODE[47] = // cmd #26 { - 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,1,0,0, - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 + 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 }; -static u8 option_allowed_cmd_ENCODE[44] = // cmd #25 +static u8 option_allowed_cmd_ENCODE[47] = // cmd #27 { - 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,1, 1,1,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,0,0,0,0, 0,0,1,1,1, 1,1,1,1,1, 1,0 }; @@ -1193,15 +1272,18 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_CT_CODE, OptionInfo + OPT_LE_CODE, + OptionInfo + OPT_LOAD_PREFIX, OptionInfo + OPT_CHDIR, OptionInfo + OPT_CONST, OptionInfo + OPT_MAX_FILE_SIZE, @@ -1255,6 +1337,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1355,6 +1443,7 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = &option_cmd_DUMP_LONG, &option_cmd_DUMP_VERBOSE, + OptionInfo + OPT_CREATE_DISTRIB, 0 }; @@ -1376,6 +1465,7 @@ static const InfoOption_t * option_tab_cmd_DL[] = &option_cmd_DUMP_LONG, &option_cmd_DUMP_VERBOSE, + OptionInfo + OPT_CREATE_DISTRIB, 0 }; @@ -1397,6 +1487,7 @@ static const InfoOption_t * option_tab_cmd_DLL[] = &option_cmd_DUMP_LONG, &option_cmd_DUMP_VERBOSE, + OptionInfo + OPT_CREATE_DISTRIB, 0 }; @@ -1441,6 +1532,7 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_UPDATE, OptionInfo + OPT_PRESERVE, OptionInfo + OPT_IGNORE, + OptionInfo + OPT_CREATE_DISTRIB, 0 }; @@ -1512,6 +1604,11 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_LE_DEFINE, + OptionInfo + OPT_LOAD_BMG, + + OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_ENGINE, OptionInfo + OPT_200CC, OptionInfo + OPT_PERFMON, @@ -1523,6 +1620,38 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = 0 }; +static const InfoOption_t * option_tab_cmd_DISTRIBUTION[] = +{ + OptionInfo + OPT_LOAD_PREFIX, + OptionInfo + OPT_PLUS, + OptionInfo + OPT_TRACK_DIR, + OptionInfo + OPT_COPY_TRACKS, + OptionInfo + OPT_MOVE_TRACKS, + OptionInfo + OPT_MOVE1_TRACKS, + OptionInfo + OPT_LINK_TRACKS, + OptionInfo + OPT_SZS_MODE, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_IGNORE, + &option_grp_TEXTOPT_NO_HEADER, + OptionInfo + OPT_BRIEF, + OptionInfo + OPT_EXPORT, + OptionInfo + OPT_DEST, + OptionInfo + OPT_DEST2, + OptionInfo + OPT_ESC, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_OVERWRITE, + OptionInfo + OPT_NUMBER, + OptionInfo + OPT_REMOVE_DEST, + OptionInfo + OPT_UPDATE, + OptionInfo + OPT_PRESERVE, + + 0 +}; + static const InfoOption_t * option_tab_cmd_CAT[] = { OptionInfo + OPT_COMPLETE, @@ -1595,7 +1724,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect [option]... command [option|parameter|file]...", "Wiimms LE-CODE Tool : Manage the LE-CODE and LEX extensions.", 0, - 28, + 31, option_tab_tool, 0 }, @@ -1661,13 +1790,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wlect ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wlect EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1707,7 +1855,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wlect ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1722,7 +1871,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1739,7 +1888,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -1784,7 +1934,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wlect CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, @@ -1852,7 +2003,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print an information dump for each source file. LE-CODE binaries and" " LEX binaries are accepted as input.", 0, - 12, + 13, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -1866,7 +2017,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DL [source]...", "Short cut for 'DUMP --long'.", 0, - 12, + 13, option_tab_cmd_DL, option_allowed_cmd_DL }, @@ -1880,7 +2031,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DLL [source]...", "Short cut for 'DUMP --long --long'.", 0, - 12, + 13, option_tab_cmd_DLL, option_allowed_cmd_DLL }, @@ -1917,7 +2068,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Read each LE-BIN file and patch it. Use --le-define to setup cups and" " tracks.", 0, - 24, + 25, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, @@ -1944,21 +2095,37 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = true, "CREATE", "CR", - "wlect CREATE [keyword]", - "Create a file and print it to standard output. The kind of file is" - " defined by KEYWORD. Use command without keywords to get a list of" - " possible keywords.\n" - " The following keywords are possible: LEX for a LEX text file with" - " all known sections except TEST. LEX+ for a LEX text file with all" - " known sections including TEST. SET1, CANN, HIPT and TEST (section" - " names) for a LEX text file with 1 section only. LPAR for an example" - " LE-CODE parameter file.", + "wlect CREATE [keyword] ...", + "Create a file and print it to standard output. Options --dest and" + " --DEST can forc another destination. The kind of file is defined by" + " KEYWORD. The command can create LEX files, a LPAR file or a track" + " listing.\n" + " Use the command without keyword to get an extended description.", 0, - 29, + 31, option_tab_cmd_CREATE, option_allowed_cmd_CREATE }, + { CMD_DISTRIBUTION, + false, + false, + false, + "DISTRIBUTION", + "DIS", + "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.\n" + " Use the command without keyword to get an extended description.\n" + " This command is still under development. Its use is therefore" + " EXPERIMENTAL!", + 0, + 20, + option_tab_cmd_DISTRIBUTION, + option_allowed_cmd_DISTRIBUTION + }, + { CMD_CAT, false, false, diff --git a/project/src/ui/ui-wlect.h b/project/src/ui/ui-wlect.h index 4e6198e..854d96a 100644 --- a/project/src/ui/ui-wlect.h +++ b/project/src/ui/ui-wlect.h @@ -56,6 +56,7 @@ typedef enum enumOptions //----- command specific options ----- + OPT_PLUS, OPT_ROUND, OPT_LONG, OPT_NO_HEADER, @@ -66,6 +67,7 @@ typedef enum enumOptions OPT_LT_CLEAR, OPT_LT_ONLINE, OPT_LT_N_PLAYERS, + OPT_CREATE_DISTRIB, OPT_LE_DEFINE, OPT_LE_ARENA, OPT_LPAR, @@ -82,6 +84,7 @@ typedef enum enumOptions OPT_MOVE_TRACKS, OPT_MOVE1_TRACKS, OPT_LINK_TRACKS, + OPT_SZS_MODE, OPT_COMPLETE, OPT_LOAD_BMG, OPT_PATCH_BMG, @@ -100,7 +103,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 44 + OPT__N_SPECIFIC, // == 47 //----- global options ----- @@ -112,15 +115,18 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, OPT_CT_CODE, OPT_LE_CODE, + OPT_LOAD_PREFIX, OPT_CHDIR, OPT_CONST, OPT_MAX_FILE_SIZE, @@ -140,7 +146,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 79 + OPT__N_TOTAL // == 85 } enumOptions; @@ -155,6 +161,7 @@ typedef enum enumOptions //{ // //----- command specific options ----- // +// OB_PLUS = 1llu << OPT_PLUS, // OB_ROUND = 1llu << OPT_ROUND, // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, @@ -165,6 +172,7 @@ typedef enum enumOptions // OB_LT_CLEAR = 1llu << OPT_LT_CLEAR, // OB_LT_ONLINE = 1llu << OPT_LT_ONLINE, // OB_LT_N_PLAYERS = 1llu << OPT_LT_N_PLAYERS, +// OB_CREATE_DISTRIB = 1llu << OPT_CREATE_DISTRIB, // OB_LE_DEFINE = 1llu << OPT_LE_DEFINE, // OB_LE_ARENA = 1llu << OPT_LE_ARENA, // OB_LPAR = 1llu << OPT_LPAR, @@ -181,6 +189,7 @@ typedef enum enumOptions // OB_MOVE_TRACKS = 1llu << OPT_MOVE_TRACKS, // OB_MOVE1_TRACKS = 1llu << OPT_MOVE1_TRACKS, // OB_LINK_TRACKS = 1llu << OPT_LINK_TRACKS, +// OB_SZS_MODE = 1llu << OPT_SZS_MODE, // OB_COMPLETE = 1llu << OPT_COMPLETE, // OB_LOAD_BMG = 1llu << OPT_LOAD_BMG, // OB_PATCH_BMG = 1llu << OPT_PATCH_BMG, @@ -248,6 +257,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -279,7 +290,8 @@ typedef enum enumOptions // // OB_CMD_DUMP = OB_GRP_PATCH // | OB_LONG -// | OB_GRP_PATCH, +// | OB_GRP_PATCH +// | OB_CREATE_DISTRIB, // // OB_CMD_DL = OB_CMD_DUMP, // @@ -290,7 +302,8 @@ typedef enum enumOptions // OB_CMD_PATCH = OB_GRP_PATCH // | OB_GRP_TRACK_COPY // | OB_GRP_DEST -// | OB_IGNORE, +// | OB_IGNORE +// | OB_CREATE_DISTRIB, // // OB_CMD_LPAR = OB_GRP_PATCH // | OB_GRP_DEST @@ -303,8 +316,16 @@ typedef enum enumOptions // | OB_LT_CLEAR // | OB_LT_ONLINE // | OB_LT_N_PLAYERS +// | OB_LE_DEFINE +// | OB_LOAD_BMG // | OB_GRP_PARAM, // +// OB_CMD_DISTRIBUTION = OB_PLUS +// | OB_GRP_TRACK_COPY +// | OB_SZS_MODE +// | OB_GRP_TEXTOUT +// | OB_GRP_DEST, +// // OB_CMD_CAT = OB_COMPLETE // | OB_GRP_TEXTOUT // | OB_NO_ECHO @@ -336,6 +357,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -356,12 +378,13 @@ typedef enum enumCommands CMD_LPAR, CMD_CREATE, + CMD_DISTRIBUTION, CMD_CAT, CMD_DECODE, CMD_ENCODE, - CMD__N // == 26 + CMD__N // == 28 } enumCommands; @@ -405,11 +428,15 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, GO_CT_CODE, GO_LE_CODE, + GO_LOAD_PREFIX, + GO_PLUS, GO_CHDIR, GO_ROUND, GO_NO_ECHO, @@ -426,6 +453,7 @@ typedef enum enumGetOpt GO_LEX_RM_FEAT, GO_FORCE, GO_REPAIR_MAGICS, + GO_CREATE_DISTRIB, GO_OLD, GO_STD, GO_NEW, @@ -446,6 +474,7 @@ typedef enum enumGetOpt GO_MOVE_TRACKS, GO_MOVE1_TRACKS, GO_LINK_TRACKS, + GO_SZS_MODE, GO_LOAD_BMG, GO_PATCH_BMG, GO_MACRO_BMG, diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c index 14d0016..0be480c 100644 --- a/project/src/ui/ui-wmdlt.c +++ b/project/src/ui/ui-wmdlt.c @@ -375,6 +375,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -390,7 +395,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -572,7 +584,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 == 66 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 68 }; @@ -703,6 +715,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -743,9 +756,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -879,42 +895,44 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_MDL, - /* 0x08d */ OPT_SCALE, - /* 0x08e */ OPT_SHIFT, - /* 0x08f */ OPT_XSS, - /* 0x090 */ OPT_YSS, - /* 0x091 */ OPT_ZSS, - /* 0x092 */ OPT_ROT, - /* 0x093 */ OPT_XROT, - /* 0x094 */ OPT_YROT, - /* 0x095 */ OPT_ZROT, - /* 0x096 */ OPT_TRANSLATE, - /* 0x097 */ OPT_NULL, - /* 0x098 */ OPT_NEXT, - /* 0x099 */ OPT_ASCALE, - /* 0x09a */ OPT_AROT, - /* 0x09b */ OPT_TFORM_SCRIPT, - /* 0x09c */ OPT_ROUND, - /* 0x09d */ OPT_NO_ECHO, - /* 0x09e */ OPT_UTF_8, - /* 0x09f */ OPT_NO_UTF_8, - /* 0x0a0 */ OPT_FORCE, - /* 0x0a1 */ OPT_REPAIR_MAGICS, - /* 0x0a2 */ OPT_TINY, - /* 0x0a3 */ OPT_OLD, - /* 0x0a4 */ OPT_STD, - /* 0x0a5 */ OPT_NEW, - /* 0x0a6 */ OPT_EXTRACT, - /* 0x0a7 */ OPT_NUMBER, - /* 0x0a8 */ OPT_SECTIONS, - /* 0x0a9 */ 0,0,0,0, 0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_CHDIR, + /* 0x08e */ OPT_MDL, + /* 0x08f */ OPT_SCALE, + /* 0x090 */ OPT_SHIFT, + /* 0x091 */ OPT_XSS, + /* 0x092 */ OPT_YSS, + /* 0x093 */ OPT_ZSS, + /* 0x094 */ OPT_ROT, + /* 0x095 */ OPT_XROT, + /* 0x096 */ OPT_YROT, + /* 0x097 */ OPT_ZROT, + /* 0x098 */ OPT_TRANSLATE, + /* 0x099 */ OPT_NULL, + /* 0x09a */ OPT_NEXT, + /* 0x09b */ OPT_ASCALE, + /* 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, /* 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, @@ -955,103 +973,109 @@ static u8 option_allowed_cmd_ARGTEST[33] = // cmd #4 1,1,1 }; -static u8 option_allowed_cmd_TEST[33] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[33] = // 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 }; -static u8 option_allowed_cmd_COLORS[33] = // cmd #6 +static u8 option_allowed_cmd_TEST[33] = // 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 +}; + +static u8 option_allowed_cmd_COLORS[33] = // 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 }; -static u8 option_allowed_cmd_ERROR[33] = // cmd #7 +static u8 option_allowed_cmd_ERROR[33] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[33] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[33] = // 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 }; -static u8 option_allowed_cmd_FILEATTRIB[33] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[33] = // 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 }; -static u8 option_allowed_cmd_SYMBOLS[33] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[33] = // 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 }; -static u8 option_allowed_cmd_FUNCTIONS[33] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[33] = // 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 }; -static u8 option_allowed_cmd_CALCULATE[33] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[33] = // 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 }; -static u8 option_allowed_cmd_MATRIX[33] = // cmd #13 +static u8 option_allowed_cmd_MATRIX[33] = // 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 }; -static u8 option_allowed_cmd_FLOAT[33] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[33] = // 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 }; -static u8 option_allowed_cmd_EXPORT[33] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[33] = // 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 }; -static u8 option_allowed_cmd_CAT[33] = // cmd #16 +static u8 option_allowed_cmd_CAT[33] = // 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 }; -static u8 option_allowed_cmd_DECODE[33] = // cmd #17 +static u8 option_allowed_cmd_DECODE[33] = // 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 }; -static u8 option_allowed_cmd_ENCODE[33] = // cmd #18 +static u8 option_allowed_cmd_ENCODE[33] = // 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 }; -static u8 option_allowed_cmd_STRINGS[33] = // cmd #19 +static u8 option_allowed_cmd_STRINGS[33] = // 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 }; -static u8 option_allowed_cmd_GEOMETRY[33] = // cmd #20 +static u8 option_allowed_cmd_GEOMETRY[33] = // 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 }; -static u8 option_allowed_cmd_XTEST[33] = // cmd #21 +static u8 option_allowed_cmd_XTEST[33] = // 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 @@ -1073,9 +1097,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1129,6 +1155,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { &option_cmd_TEST_VERBOSE, @@ -1452,7 +1484,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wmdlt [option]... command [option|parameter|file]...", "Wiimms MDL Tool : Decode raw MDL and encode text MDL files.", 0, - 25, + 27, option_tab_tool, 0 }, @@ -1518,13 +1550,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wmdlt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wmdlt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1564,7 +1615,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wmdlt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1579,7 +1631,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1596,7 +1648,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -1641,7 +1694,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wmdlt CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, diff --git a/project/src/ui/ui-wmdlt.h b/project/src/ui/ui-wmdlt.h index 54e94e3..242795b 100644 --- a/project/src/ui/ui-wmdlt.h +++ b/project/src/ui/ui-wmdlt.h @@ -101,9 +101,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -127,7 +129,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 66 + OPT__N_TOTAL // == 68 } enumOptions; @@ -217,6 +219,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -300,6 +304,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -320,7 +325,7 @@ typedef enum enumCommands CMD_GEOMETRY, CMD_XTEST, - CMD__N // == 22 + CMD__N // == 23 } enumCommands; @@ -365,6 +370,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c index b0df846..d2b9b3a 100644 --- a/project/src/ui/ui-wpatt.c +++ b/project/src/ui/ui-wpatt.c @@ -217,6 +217,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -232,7 +237,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -403,7 +415,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 == 50 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 52 }; @@ -504,6 +516,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -540,9 +553,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -658,26 +674,28 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_ROUND, - /* 0x08d */ OPT_NO_ECHO, - /* 0x08e */ OPT_PAT, - /* 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_SECTIONS, - /* 0x099 */ 0,0,0,0, 0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 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, /* 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, @@ -715,67 +733,72 @@ static u8 option_allowed_cmd_ARGTEST[18] = // cmd #4 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 #5 +static u8 option_allowed_cmd_EXPAND[18] = // cmd #5 { 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 #6 +static u8 option_allowed_cmd_TEST[18] = // cmd #6 +{ + 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 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_ERROR[18] = // cmd #7 +static u8 option_allowed_cmd_ERROR[18] = // cmd #8 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[18] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[18] = // cmd #9 { 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[18] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[18] = // cmd #10 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[18] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[18] = // cmd #11 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[18] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[18] = // cmd #12 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[18] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[18] = // cmd #13 { 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 #13 +static u8 option_allowed_cmd_FLOAT[18] = // cmd #14 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_EXPORT[18] = // cmd #14 +static u8 option_allowed_cmd_EXPORT[18] = // cmd #15 { 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 #15 +static u8 option_allowed_cmd_CAT[18] = // cmd #16 { 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, 0,1,0 }; -static u8 option_allowed_cmd_DECODE[18] = // cmd #16 +static u8 option_allowed_cmd_DECODE[18] = // cmd #17 { 0,0,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; -static u8 option_allowed_cmd_ENCODE[18] = // cmd #17 +static u8 option_allowed_cmd_ENCODE[18] = // cmd #18 { 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0 }; @@ -796,9 +819,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -851,6 +876,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1000,7 +1031,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wpatt [option]... command [option|parameter|file]...", "Wiimms PAT Tool : Decode raw PAT and encode text PAT files.", 0, - 24, + 26, option_tab_tool, 0 }, @@ -1066,13 +1097,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wpatt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wpatt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -1112,7 +1162,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wpatt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -1127,7 +1178,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -1144,7 +1195,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -1189,7 +1241,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wpatt CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, diff --git a/project/src/ui/ui-wpatt.h b/project/src/ui/ui-wpatt.h index 414f0a8..81e9549 100644 --- a/project/src/ui/ui-wpatt.h +++ b/project/src/ui/ui-wpatt.h @@ -86,9 +86,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -111,7 +113,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 50 + OPT__N_TOTAL // == 52 } enumOptions; @@ -170,6 +172,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -228,6 +232,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -243,7 +248,7 @@ typedef enum enumCommands CMD_DECODE, CMD_ENCODE, - CMD__N // == 18 + CMD__N // == 19 } enumCommands; @@ -288,6 +293,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c index b82ca2a..f3900b7 100644 --- a/project/src/ui/ui-wstrt.c +++ b/project/src/ui/ui-wstrt.c @@ -551,6 +551,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -566,7 +571,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -886,7 +898,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " directory." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 118 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 120 }; @@ -1066,6 +1078,7 @@ static const KeywordTab_t CommandTab[] = { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -1111,9 +1124,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -1327,93 +1343,95 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_VS_REGION, - /* 0x08d */ OPT_BT_REGION, - /* 0x08e */ OPT_ALL_RANKS, - /* 0x08f */ OPT_POINTS, - /* 0x090 */ OPT_CHEAT, - /* 0x091 */ OPT_HTTPS, - /* 0x092 */ OPT_DOMAIN, - /* 0x093 */ OPT_WIIMMFI, - /* 0x094 */ OPT_TWIIMMFI, - /* 0x095 */ OPT_WC24, - /* 0x096 */ OPT_WCODE, - /* 0x097 */ OPT_ADD_WCODE, - /* 0x098 */ OPT_PB_MODE, - /* 0x099 */ OPT_PATCHED_BY, - /* 0x09a */ OPT_VS, - /* 0x09b */ OPT_VS2, - /* 0x09c */ OPT_BT, - /* 0x09d */ OPT_BT2, - /* 0x09e */ OPT_CANNON, - /* 0x09f */ OPT_MENO, - /* 0x0a0 */ OPT_UTF_8, - /* 0x0a1 */ OPT_NO_UTF_8, - /* 0x0a2 */ OPT_FORCE, - /* 0x0a3 */ OPT_REPAIR_MAGICS, - /* 0x0a4 */ OPT_OLD, - /* 0x0a5 */ OPT_STD, - /* 0x0a6 */ OPT_NEW, - /* 0x0a7 */ OPT_EXTRACT, - /* 0x0a8 */ OPT_NUMBER, - /* 0x0a9 */ OPT_CLEAN_DOL, - /* 0x0aa */ OPT_ADD_LECODE, - /* 0x0ab */ OPT_ADD_CTCODE, - /* 0x0ac */ OPT_CT_DIR, - /* 0x0ad */ OPT_MOVE_D8, - /* 0x0ae */ OPT_ADD_SECTION, - /* 0x0af */ OPT_FULL_GCH, - /* 0x0b0 */ OPT_GCT_NO_SEP, - /* 0x0b1 */ OPT_GCT_SEP, - /* 0x0b2 */ OPT_GCT_ASM_SEP, - /* 0x0b3 */ OPT_GCT_LIST, - /* 0x0b4 */ OPT_GCT_MOVE, - /* 0x0b5 */ OPT_GCT_ADDR, - /* 0x0b6 */ OPT_GCT_SPACE, - /* 0x0b7 */ OPT_ALLOW_USER_GCH, - /* 0x0b8 */ OPT_CREATE_SECT, - /* 0x0b9 */ OPT_WPF, - /* 0x0ba */ OPT_SECTIONS, - /* 0x0bb */ OPT_PORT_DB, - /* 0x0bc */ OPT_ORDER, - /* 0x0bd */ OPT_VADDR, - /* 0x0be */ OPT_FADDR, - /* 0x0bf */ OPT_SNAME, - /* 0x0c0 */ OPT_INT1, - /* 0x0c1 */ OPT_INT2, - /* 0x0c2 */ OPT_INT3, - /* 0x0c3 */ OPT_INT4, - /* 0x0c4 */ OPT_INT5, - /* 0x0c5 */ OPT_INT6, - /* 0x0c6 */ OPT_INT7, - /* 0x0c7 */ OPT_INT8, - /* 0x0c8 */ OPT_FLOAT, - /* 0x0c9 */ OPT_DOUBLE, - /* 0x0ca */ OPT_LE, - /* 0x0cb */ OPT_BE, - /* 0x0cc */ OPT_ZEROS, - /* 0x0cd */ OPT_HEX, - /* 0x0ce */ OPT_DEC, - /* 0x0cf */ OPT_C_SYNTAX, - /* 0x0d0 */ OPT_ADDR, - /* 0x0d1 */ OPT_ALIGN, - /* 0x0d2 */ OPT_TRIGGER, - /* 0x0d3 */ OPT_NO_ADDR, - /* 0x0d4 */ OPT_NO_NUMBERS, - /* 0x0d5 */ OPT_NO_TEXT, - /* 0x0d6 */ OPT_FORMAT, - /* 0x0d7 */ OPT_NO_NULL, - /* 0x0d8 */ OPT_NARROW, - /* 0x0d9 */ OPT_SMALL, - /* 0x0da */ OPT_WIDE, - /* 0x0db */ OPT_BYTES, - /* 0x0dc */ 0,0,0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 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, /* 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, @@ -1455,140 +1473,147 @@ static u8 option_allowed_cmd_ARGTEST[66] = // cmd #4 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_TEST[66] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[66] = // 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_COLORS[66] = // cmd #6 +static u8 option_allowed_cmd_TEST[66] = // 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[66] = // 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 }; -static u8 option_allowed_cmd_ERROR[66] = // cmd #7 +static u8 option_allowed_cmd_ERROR[66] = // 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 }; -static u8 option_allowed_cmd_FILETYPE[66] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #9 +static u8 option_allowed_cmd_FILEATTRIB[66] = // 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_RAWDUMP[66] = // cmd #10 +static u8 option_allowed_cmd_RAWDUMP[66] = // 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,0,0, 0,0,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 #11 +static u8 option_allowed_cmd_DUMP[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #12 +static u8 option_allowed_cmd_CDUMP[66] = // 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_HEXDUMP[66] = // cmd #13 +static u8 option_allowed_cmd_HEXDUMP[66] = // 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 }; -static u8 option_allowed_cmd_PORT[66] = // cmd #14 +static u8 option_allowed_cmd_PORT[66] = // 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 }; -static u8 option_allowed_cmd_WHERE[66] = // cmd #15 +static u8 option_allowed_cmd_WHERE[66] = // 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 }; -static u8 option_allowed_cmd_HTTPS[66] = // cmd #16 +static u8 option_allowed_cmd_HTTPS[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #17 +static u8 option_allowed_cmd_EXTRACT[66] = // 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,0,0, 0,0,0,0,0, 0,0,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 #18 +static u8 option_allowed_cmd_TRACKS[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #19 +static u8 option_allowed_cmd_ARENAS[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #20 +static u8 option_allowed_cmd_FILES[66] = // 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 }; -static u8 option_allowed_cmd_FIND[66] = // cmd #21 +static u8 option_allowed_cmd_FIND[66] = // 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 }; -static u8 option_allowed_cmd_POINTS[66] = // cmd #22 +static u8 option_allowed_cmd_POINTS[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #23 +static u8 option_allowed_cmd_ANALYZE[66] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,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 #24 +static u8 option_allowed_cmd_PATCH[66] = // 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, @@ -1611,9 +1636,11 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, @@ -1685,6 +1712,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { @@ -1753,6 +1786,7 @@ static const InfoOption_t * option_tab_cmd_HEXDUMP[] = OptionInfo + OPT_FADDR, OptionInfo + OPT_SNAME, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_NONE, // separator @@ -2020,7 +2054,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms StaticR Tool : Manipulate the 'main.dol' and 'StaticR.rel'" " files of Mario Kart Wii.", 0, - 40, + 42, option_tab_tool, 0 }, @@ -2086,13 +2120,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wstrt ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wstrt EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -2132,7 +2185,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wstrt ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -2147,7 +2201,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 2, option_tab_cmd_FILETYPE, @@ -2164,7 +2218,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -2226,7 +2281,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Select parts by --vaddr, --faddr and --sname. Without selectors, the" " whole file is dumped.", 0, - 32, + 33, option_tab_cmd_HEXDUMP, option_allowed_cmd_HEXDUMP }, diff --git a/project/src/ui/ui-wstrt.h b/project/src/ui/ui-wstrt.h index 31ecfe0..23742b8 100644 --- a/project/src/ui/ui-wstrt.h +++ b/project/src/ui/ui-wstrt.h @@ -135,9 +135,11 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, @@ -179,7 +181,7 @@ typedef enum enumOptions OPT_CLEAN_DOL, OPT_CT_DIR, - OPT__N_TOTAL // == 118 + OPT__N_TOTAL // == 120 } enumOptions; @@ -313,6 +315,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -415,6 +419,7 @@ typedef enum enumCommands CMD_HELP, CMD_CONFIG, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -439,7 +444,7 @@ typedef enum enumCommands CMD_ANALYZE, CMD_PATCH, - CMD__N // == 25 + CMD__N // == 26 } enumCommands; @@ -487,6 +492,8 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c index 1d62e8e..7c4445c 100644 --- a/project/src/ui/ui-wszst.c +++ b/project/src/ui/ui-wszst.c @@ -53,6 +53,20 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = //----- command specific options ----- + { OPT_PLUS, false, false, false, false, false, 0, "plus", + "chars", + "If a name begins with a plus sign, then all characters up to the" + " first space are recognized as a plus prefix. The first part consists" + " of all the plus signs followed by any other characters. The first" + " character of the second part is used to determine the sort value. If" + " the second part is empty, then the last plus sign is used instead.\n" + " The higher sorting value is now calculated from the number of plus" + " signs in the first part, the more plus signs, the smaller the value." + " The first character from the second part determines the lower value." + " If it is in parameter CHARS then the position determines the value," + " otherwise the ASCII value to which 500 is added." + }, + { OPT_TOUCH, false, false, false, false, false, 0, "touch", 0, "Mark the minimap as modified to force a new calculation of the" @@ -445,7 +459,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = 0, "Print an ID with 8 characters instead of a SHA-1 sum with 40" " characters. The SHA-1 sum is used to calculate the ID. The ID" - " consists of '0'-'9' and 'a'-'w' (32 characters)." + " consists of '0'-'9' and 'a'-'v' (32 different characters)." }, { OPT_BASE64, true, false, false, false, false, 0, "base64", @@ -1132,7 +1146,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 == 135 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 136 //----- global options ----- @@ -1192,6 +1206,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " --width is set." }, + { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager", + 0, + "Forbid the internal usage of a pager." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -1207,7 +1226,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_LOGGING, false, false, false, false, false, 'L', "logging", 0, - "This debug option enables the logging of internal lists and maps." + "This debug option enables the logging of internal lists and maps. Set" + " it up to three times to be more verbose.\n" + }, + + { OPT_TIMING, false, false, false, false, false, 0, "timing", + 0, + "Activate the timing of some operations. Logging level 3 activates" + " them too.\n" }, { OPT_WARN, false, false, false, false, false, 'W', "warn", @@ -1257,6 +1283,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " details." }, + { OPT_LOAD_PREFIX, false, false, false, false, false, 0, "load-prefix", + "file", + "Read in a PREFIX file and replace the internal prefix database with" + " the content. https://ct.wiimm.de/export/prefix is the authoritative" + " source for this." + }, + { OPT_CHDIR, false, false, false, false, false, 0, "chdir", "dir", "Set a new working directory for all following options, for all" @@ -1768,7 +1801,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 == 211 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 215 }; @@ -2274,6 +2307,7 @@ static const KeywordTab_t CommandTab[] = { CMD_CONFIG, "CONFIG", 0, 0 }, { CMD_INSTALL, "INSTALL", 0, 0 }, { CMD_ARGTEST, "ARGTEST", 0, 0 }, + { CMD_EXPAND, "EXPAND", 0, 0 }, { CMD_TEST, "TEST", 0, 0 }, { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, @@ -2322,9 +2356,11 @@ static const KeywordTab_t CommandTab[] = { CMD_SHA1, "SHA1", 0, 0 }, { CMD_ANALYZE, "ANALYZE", "ANA", 0 }, { CMD_ANALYZE, "ANALYSE", 0, 0 }, + { CMD_SPLIT, "SPLIT", 0, 0 }, { CMD_IS_TEXTURE, "IS-TEXTURE", "ISTEXTURE", 0 }, { CMD_FEATURES, "FEATURES", 0, 0 }, - { CMD_DISTRIBUTION, "DISTRIBUTION", "DIST", 0 }, + { CMD_DISTRIBUTION, "DISTRIBUTION", "DIS", 0 }, + { CMD_DISTRIBUTION, "DISTRIB", 0, 0 }, { CMD_DIFF, "DIFF", "CMP", 0 }, { CMD_CHECK, "CHECK", 0, 0 }, { CMD_SLOTS, "SLOTS", 0, 0 }, @@ -2379,9 +2415,12 @@ static const struct option OptionLong[] = { "width", 1, 0, GO_WIDTH }, { "max-width", 1, 0, GO_MAX_WIDTH }, { "maxwidth", 1, 0, GO_MAX_WIDTH }, + { "no-pager", 0, 0, GO_NO_PAGER }, + { "nopager", 0, 0, GO_NO_PAGER }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "timing", 0, 0, GO_TIMING }, { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, @@ -2391,6 +2430,9 @@ static const struct option OptionLong[] = { "ctcode", 0, 0, GO_CT_CODE }, { "le-code", 2, 0, GO_LE_CODE }, { "lecode", 2, 0, GO_LE_CODE }, + { "load-prefix", 1, 0, GO_LOAD_PREFIX }, + { "loadprefix", 1, 0, GO_LOAD_PREFIX }, + { "plus", 1, 0, GO_PLUS }, { "chdir", 1, 0, GO_CHDIR }, { "const", 1, 0, 'c' }, { "touch", 0, 0, GO_TOUCH }, @@ -2791,177 +2833,181 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x083 */ OPT_COMPATIBLE, /* 0x084 */ OPT_WIDTH, /* 0x085 */ OPT_MAX_WIDTH, - /* 0x086 */ OPT_DE, - /* 0x087 */ OPT_COLORS, - /* 0x088 */ OPT_NO_COLORS, - /* 0x089 */ OPT_CT_CODE, - /* 0x08a */ OPT_LE_CODE, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_TOUCH, - /* 0x08d */ OPT_AUTO, - /* 0x08e */ OPT_SET_FLAGS, - /* 0x08f */ OPT_SET_SCALE, - /* 0x090 */ OPT_SET_ROT, - /* 0x091 */ OPT_SET_X, - /* 0x092 */ OPT_SET_Y, - /* 0x093 */ OPT_SET_Z, - /* 0x094 */ OPT_XCENTER, - /* 0x095 */ OPT_YCENTER, - /* 0x096 */ OPT_ZCENTER, - /* 0x097 */ OPT_CENTER, - /* 0x098 */ OPT_SCALE, - /* 0x099 */ OPT_SHIFT, - /* 0x09a */ OPT_XSS, - /* 0x09b */ OPT_YSS, - /* 0x09c */ OPT_ZSS, - /* 0x09d */ OPT_ROT, - /* 0x09e */ OPT_XROT, - /* 0x09f */ OPT_YROT, - /* 0x0a0 */ OPT_ZROT, - /* 0x0a1 */ OPT_YPOS, - /* 0x0a2 */ OPT_TRANSLATE, - /* 0x0a3 */ OPT_NULL, - /* 0x0a4 */ OPT_NEXT, - /* 0x0a5 */ OPT_ASCALE, - /* 0x0a6 */ OPT_AROT, - /* 0x0a7 */ OPT_TFORM_SCRIPT, - /* 0x0a8 */ OPT_MINIMAP, - /* 0x0a9 */ OPT_RM_GOBJ, - /* 0x0aa */ OPT_BATTLE, - /* 0x0ab */ OPT_EXPORT_FLAGS, - /* 0x0ac */ OPT_ROUTE_OPTIONS, - /* 0x0ad */ OPT_WIM0, - /* 0x0ae */ OPT_SLOT, - /* 0x0af */ OPT_LOAD_KCL, - /* 0x0b0 */ OPT_KCL, - /* 0x0b1 */ OPT_KCL_FLAG, - /* 0x0b2 */ OPT_KCL_SCRIPT, - /* 0x0b3 */ OPT_TRI_AREA, - /* 0x0b4 */ OPT_TRI_HEIGHT, - /* 0x0b5 */ OPT_FLAG_FILE, - /* 0x0b6 */ OPT_XTRIDATA, - /* 0x0b7 */ OPT_KMP, - /* 0x0b8 */ OPT_SPEED_MOD, - /* 0x0b9 */ OPT_KTPT2, - /* 0x0ba */ OPT_TFORM_KMP, - /* 0x0bb */ OPT_REPAIR_XPF, - /* 0x0bc */ OPT_GAMEMODES, - /* 0x0bd */ OPT_MDL, - /* 0x0be */ OPT_PAT, - /* 0x0bf */ OPT_PATCH_FILE, - /* 0x0c0 */ OPT_KMG_LIMIT, - /* 0x0c1 */ OPT_KMG_COPY, - /* 0x0c2 */ OPT_LT_CLEAR, - /* 0x0c3 */ OPT_LT_ONLINE, - /* 0x0c4 */ OPT_LT_N_PLAYERS, - /* 0x0c5 */ OPT_LT_COND_BIT, - /* 0x0c6 */ OPT_LT_GAME_MODE, - /* 0x0c7 */ OPT_LT_ENGINE, - /* 0x0c8 */ OPT_LT_RANDOM, - /* 0x0c9 */ OPT_LEX_PURGE, - /* 0x0ca */ OPT_LEX_FEATURES, - /* 0x0cb */ OPT_LEX_RM_FEAT, - /* 0x0cc */ OPT_LOAD_BMG, - /* 0x0cd */ OPT_PATCH_BMG, - /* 0x0ce */ OPT_MACRO_BMG, - /* 0x0cf */ OPT_FILTER_BMG, - /* 0x0d0 */ OPT_CACHE, - /* 0x0d1 */ OPT_CNAME, - /* 0x0d2 */ OPT_ID, - /* 0x0d3 */ OPT_BASE64, - /* 0x0d4 */ OPT_DB64, - /* 0x0d5 */ OPT_CODING, - /* 0x0d6 */ OPT_VERIFY, - /* 0x0d7 */ OPT_ROUND, - /* 0x0d8 */ OPT_PIPE, - /* 0x0d9 */ OPT_DELTA, - /* 0x0da */ OPT_DIFF, - /* 0x0db */ OPT_EPSILON, - /* 0x0dc */ OPT_BMG_ENDIAN, - /* 0x0dd */ OPT_BMG_ENCODING, - /* 0x0de */ OPT_BMG_INF_SIZE, - /* 0x0df */ OPT_BMG_MID, - /* 0x0e0 */ OPT_FORCE_ATTRIB, - /* 0x0e1 */ OPT_DEF_ATTRIB, - /* 0x0e2 */ OPT_NO_ATTRIB, - /* 0x0e3 */ OPT_X_ESCAPES, - /* 0x0e4 */ OPT_OLD_ESCAPES, - /* 0x0e5 */ OPT_NO_BMG_COLORS, - /* 0x0e6 */ OPT_BMG_COLORS, - /* 0x0e7 */ OPT_NO_BMG_INLINE, - /* 0x0e8 */ OPT_AUTOADD_PATH, - /* 0x0e9 */ OPT_STRIP, - /* 0x0ea */ OPT_UTF_8, - /* 0x0eb */ OPT_NO_UTF_8, - /* 0x0ec */ OPT_FORCE, - /* 0x0ed */ OPT_REPAIR_MAGICS, - /* 0x0ee */ OPT_TINY, - /* 0x0ef */ OPT_YAZ0, - /* 0x0f0 */ OPT_YAZ1, - /* 0x0f1 */ OPT_XYZ, - /* 0x0f2 */ OPT_BZ, - /* 0x0f3 */ OPT_SH, - /* 0x0f4 */ OPT_BASH, - /* 0x0f5 */ OPT_JSON, - /* 0x0f6 */ OPT_PHP, - /* 0x0f7 */ OPT_MAKEDOC, - /* 0x0f8 */ OPT_VAR, - /* 0x0f9 */ OPT_ARRAY, - /* 0x0fa */ OPT_AVAR, - /* 0x0fb */ OPT_CASE, - /* 0x0fc */ OPT_PMODES, - /* 0x0fd */ OPT_FMODES, - /* 0x0fe */ OPT_INSTALL, - /* 0x0ff */ OPT_ANALYZE, - /* 0x100 */ OPT_ANALYZE_MODE, - /* 0x101 */ OPT_OLD, - /* 0x102 */ OPT_STD, - /* 0x103 */ OPT_NEW, - /* 0x104 */ OPT_EXTRACT, - /* 0x105 */ OPT_REFERENCE, - /* 0x106 */ OPT_NUMBER, - /* 0x107 */ OPT_REMOVE_SRC, - /* 0x108 */ OPT_IGNORE_SETUP, - /* 0x109 */ OPT_PURGE, - /* 0x10a */ OPT_ALIGN_U8, - /* 0x10b */ OPT_ALIGN_PACK, - /* 0x10c */ OPT_ALIGN_BRRES, - /* 0x10d */ OPT_ALIGN_BREFF, - /* 0x10e */ OPT_ALIGN_BREFT, - /* 0x10f */ OPT_ALIGN, - /* 0x110 */ OPT_ENCODE_ALL, - /* 0x111 */ OPT_ENCODE_IMG, - /* 0x112 */ OPT_NO_ENCODE, - /* 0x113 */ OPT_NO_RECURSE, - /* 0x114 */ OPT_AUTO_ADD, - /* 0x115 */ OPT_NO_ECHO, - /* 0x116 */ OPT_PT_DIR, - /* 0x117 */ OPT_RM_AIPARAM, - /* 0x118 */ OPT_U8, - /* 0x119 */ OPT_SZS, - /* 0x11a */ OPT_WU8, - /* 0x11b */ OPT_XWU8, - /* 0x11c */ OPT_WBZ, - /* 0x11d */ OPT_PACK, - /* 0x11e */ OPT_BRRES, - /* 0x11f */ OPT_BREFF, - /* 0x120 */ OPT_BREFT, - /* 0x121 */ OPT_NO_COMPRESS, - /* 0x122 */ OPT_FAST, - /* 0x123 */ OPT_LINKS, - /* 0x124 */ OPT_BASEDIR, - /* 0x125 */ OPT_DECODE, - /* 0x126 */ OPT_MIPMAPS, - /* 0x127 */ OPT_NO_MIPMAPS, - /* 0x128 */ OPT_N_MIPMAPS, - /* 0x129 */ OPT_MAX_MIPMAPS, - /* 0x12a */ OPT_MIPMAP_SIZE, - /* 0x12b */ OPT_FAST_MIPMAPS, - /* 0x12c */ OPT_CMPR_DEFAULT, - /* 0x12d */ OPT_CUT, - /* 0x12e */ OPT_RAW, - /* 0x12f */ OPT_SECTIONS, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x086 */ OPT_NO_PAGER, + /* 0x087 */ OPT_TIMING, + /* 0x088 */ OPT_DE, + /* 0x089 */ OPT_COLORS, + /* 0x08a */ OPT_NO_COLORS, + /* 0x08b */ OPT_CT_CODE, + /* 0x08c */ OPT_LE_CODE, + /* 0x08d */ OPT_LOAD_PREFIX, + /* 0x08e */ OPT_PLUS, + /* 0x08f */ OPT_CHDIR, + /* 0x090 */ OPT_TOUCH, + /* 0x091 */ OPT_AUTO, + /* 0x092 */ OPT_SET_FLAGS, + /* 0x093 */ OPT_SET_SCALE, + /* 0x094 */ OPT_SET_ROT, + /* 0x095 */ OPT_SET_X, + /* 0x096 */ OPT_SET_Y, + /* 0x097 */ OPT_SET_Z, + /* 0x098 */ OPT_XCENTER, + /* 0x099 */ OPT_YCENTER, + /* 0x09a */ OPT_ZCENTER, + /* 0x09b */ OPT_CENTER, + /* 0x09c */ OPT_SCALE, + /* 0x09d */ OPT_SHIFT, + /* 0x09e */ OPT_XSS, + /* 0x09f */ OPT_YSS, + /* 0x0a0 */ OPT_ZSS, + /* 0x0a1 */ OPT_ROT, + /* 0x0a2 */ OPT_XROT, + /* 0x0a3 */ OPT_YROT, + /* 0x0a4 */ OPT_ZROT, + /* 0x0a5 */ OPT_YPOS, + /* 0x0a6 */ OPT_TRANSLATE, + /* 0x0a7 */ OPT_NULL, + /* 0x0a8 */ OPT_NEXT, + /* 0x0a9 */ OPT_ASCALE, + /* 0x0aa */ OPT_AROT, + /* 0x0ab */ OPT_TFORM_SCRIPT, + /* 0x0ac */ OPT_MINIMAP, + /* 0x0ad */ OPT_RM_GOBJ, + /* 0x0ae */ OPT_BATTLE, + /* 0x0af */ OPT_EXPORT_FLAGS, + /* 0x0b0 */ OPT_ROUTE_OPTIONS, + /* 0x0b1 */ OPT_WIM0, + /* 0x0b2 */ OPT_SLOT, + /* 0x0b3 */ OPT_LOAD_KCL, + /* 0x0b4 */ OPT_KCL, + /* 0x0b5 */ OPT_KCL_FLAG, + /* 0x0b6 */ OPT_KCL_SCRIPT, + /* 0x0b7 */ OPT_TRI_AREA, + /* 0x0b8 */ OPT_TRI_HEIGHT, + /* 0x0b9 */ OPT_FLAG_FILE, + /* 0x0ba */ OPT_XTRIDATA, + /* 0x0bb */ OPT_KMP, + /* 0x0bc */ OPT_SPEED_MOD, + /* 0x0bd */ OPT_KTPT2, + /* 0x0be */ OPT_TFORM_KMP, + /* 0x0bf */ OPT_REPAIR_XPF, + /* 0x0c0 */ OPT_GAMEMODES, + /* 0x0c1 */ OPT_MDL, + /* 0x0c2 */ OPT_PAT, + /* 0x0c3 */ OPT_PATCH_FILE, + /* 0x0c4 */ OPT_KMG_LIMIT, + /* 0x0c5 */ OPT_KMG_COPY, + /* 0x0c6 */ OPT_LT_CLEAR, + /* 0x0c7 */ OPT_LT_ONLINE, + /* 0x0c8 */ OPT_LT_N_PLAYERS, + /* 0x0c9 */ OPT_LT_COND_BIT, + /* 0x0ca */ OPT_LT_GAME_MODE, + /* 0x0cb */ OPT_LT_ENGINE, + /* 0x0cc */ OPT_LT_RANDOM, + /* 0x0cd */ OPT_LEX_PURGE, + /* 0x0ce */ OPT_LEX_FEATURES, + /* 0x0cf */ OPT_LEX_RM_FEAT, + /* 0x0d0 */ OPT_LOAD_BMG, + /* 0x0d1 */ OPT_PATCH_BMG, + /* 0x0d2 */ OPT_MACRO_BMG, + /* 0x0d3 */ OPT_FILTER_BMG, + /* 0x0d4 */ OPT_CACHE, + /* 0x0d5 */ OPT_CNAME, + /* 0x0d6 */ OPT_ID, + /* 0x0d7 */ OPT_BASE64, + /* 0x0d8 */ OPT_DB64, + /* 0x0d9 */ OPT_CODING, + /* 0x0da */ OPT_VERIFY, + /* 0x0db */ OPT_ROUND, + /* 0x0dc */ OPT_PIPE, + /* 0x0dd */ OPT_DELTA, + /* 0x0de */ OPT_DIFF, + /* 0x0df */ OPT_EPSILON, + /* 0x0e0 */ OPT_BMG_ENDIAN, + /* 0x0e1 */ OPT_BMG_ENCODING, + /* 0x0e2 */ OPT_BMG_INF_SIZE, + /* 0x0e3 */ OPT_BMG_MID, + /* 0x0e4 */ OPT_FORCE_ATTRIB, + /* 0x0e5 */ OPT_DEF_ATTRIB, + /* 0x0e6 */ OPT_NO_ATTRIB, + /* 0x0e7 */ OPT_X_ESCAPES, + /* 0x0e8 */ OPT_OLD_ESCAPES, + /* 0x0e9 */ OPT_NO_BMG_COLORS, + /* 0x0ea */ OPT_BMG_COLORS, + /* 0x0eb */ OPT_NO_BMG_INLINE, + /* 0x0ec */ OPT_AUTOADD_PATH, + /* 0x0ed */ OPT_STRIP, + /* 0x0ee */ OPT_UTF_8, + /* 0x0ef */ OPT_NO_UTF_8, + /* 0x0f0 */ OPT_FORCE, + /* 0x0f1 */ OPT_REPAIR_MAGICS, + /* 0x0f2 */ OPT_TINY, + /* 0x0f3 */ OPT_YAZ0, + /* 0x0f4 */ OPT_YAZ1, + /* 0x0f5 */ OPT_XYZ, + /* 0x0f6 */ OPT_BZ, + /* 0x0f7 */ OPT_SH, + /* 0x0f8 */ OPT_BASH, + /* 0x0f9 */ OPT_JSON, + /* 0x0fa */ OPT_PHP, + /* 0x0fb */ OPT_MAKEDOC, + /* 0x0fc */ OPT_VAR, + /* 0x0fd */ OPT_ARRAY, + /* 0x0fe */ OPT_AVAR, + /* 0x0ff */ OPT_CASE, + /* 0x100 */ OPT_PMODES, + /* 0x101 */ OPT_FMODES, + /* 0x102 */ OPT_INSTALL, + /* 0x103 */ OPT_ANALYZE, + /* 0x104 */ OPT_ANALYZE_MODE, + /* 0x105 */ OPT_OLD, + /* 0x106 */ OPT_STD, + /* 0x107 */ OPT_NEW, + /* 0x108 */ OPT_EXTRACT, + /* 0x109 */ OPT_REFERENCE, + /* 0x10a */ OPT_NUMBER, + /* 0x10b */ OPT_REMOVE_SRC, + /* 0x10c */ OPT_IGNORE_SETUP, + /* 0x10d */ OPT_PURGE, + /* 0x10e */ OPT_ALIGN_U8, + /* 0x10f */ OPT_ALIGN_PACK, + /* 0x110 */ OPT_ALIGN_BRRES, + /* 0x111 */ OPT_ALIGN_BREFF, + /* 0x112 */ OPT_ALIGN_BREFT, + /* 0x113 */ OPT_ALIGN, + /* 0x114 */ OPT_ENCODE_ALL, + /* 0x115 */ OPT_ENCODE_IMG, + /* 0x116 */ OPT_NO_ENCODE, + /* 0x117 */ OPT_NO_RECURSE, + /* 0x118 */ OPT_AUTO_ADD, + /* 0x119 */ OPT_NO_ECHO, + /* 0x11a */ OPT_PT_DIR, + /* 0x11b */ OPT_RM_AIPARAM, + /* 0x11c */ OPT_U8, + /* 0x11d */ OPT_SZS, + /* 0x11e */ OPT_WU8, + /* 0x11f */ OPT_XWU8, + /* 0x120 */ OPT_WBZ, + /* 0x121 */ OPT_PACK, + /* 0x122 */ OPT_BRRES, + /* 0x123 */ OPT_BREFF, + /* 0x124 */ OPT_BREFT, + /* 0x125 */ OPT_NO_COMPRESS, + /* 0x126 */ OPT_FAST, + /* 0x127 */ OPT_LINKS, + /* 0x128 */ OPT_BASEDIR, + /* 0x129 */ OPT_DECODE, + /* 0x12a */ OPT_MIPMAPS, + /* 0x12b */ OPT_NO_MIPMAPS, + /* 0x12c */ OPT_N_MIPMAPS, + /* 0x12d */ OPT_MAX_MIPMAPS, + /* 0x12e */ OPT_MIPMAP_SIZE, + /* 0x12f */ OPT_FAST_MIPMAPS, + /* 0x130 */ OPT_CMPR_DEFAULT, + /* 0x131 */ OPT_CUT, + /* 0x132 */ OPT_RAW, + /* 0x133 */ OPT_SECTIONS, + /* 0x134 */ 0,0, }; // @@ -2969,706 +3015,724 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[135] = // cmd #1 +static u8 option_allowed_cmd_VERSION[136] = // 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,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, 1 }; -static u8 option_allowed_cmd_HELP[135] = // cmd #2 +static u8 option_allowed_cmd_HELP[136] = // 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 }; -static u8 option_allowed_cmd_CONFIG[135] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[136] = // 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,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, 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,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_INSTALL[135] = // cmd #4 +static u8 option_allowed_cmd_INSTALL[136] = // 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,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[136] = // 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 }; -static u8 option_allowed_cmd_ARGTEST[135] = // cmd #5 +static u8 option_allowed_cmd_EXPAND[136] = // 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 }; -static u8 option_allowed_cmd_TEST[135] = // cmd #6 +static u8 option_allowed_cmd_TEST[136] = // cmd #7 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,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[135] = // cmd #7 +static u8 option_allowed_cmd_COLORS[136] = // 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,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 }; -static u8 option_allowed_cmd_ERROR[135] = // cmd #8 +static u8 option_allowed_cmd_ERROR[136] = // 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,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, 1 }; -static u8 option_allowed_cmd_FILETYPE[135] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[136] = // 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,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, + 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,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_FILEATTRIB[135] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[136] = // 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,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 }; -static u8 option_allowed_cmd_BRSUB[135] = // cmd #11 +static u8 option_allowed_cmd_BRSUB[136] = // 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,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, + 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,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[135] = // cmd #12 +static u8 option_allowed_cmd_SYMBOLS[136] = // 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,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 }; -static u8 option_allowed_cmd_FUNCTIONS[135] = // cmd #13 +static u8 option_allowed_cmd_FUNCTIONS[136] = // 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,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 }; -static u8 option_allowed_cmd_CALCULATE[135] = // cmd #14 +static u8 option_allowed_cmd_CALCULATE[136] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #15 +static u8 option_allowed_cmd_MATRIX[136] = // cmd #16 { - 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,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, 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, 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 }; -static u8 option_allowed_cmd_FLOAT[135] = // cmd #16 +static u8 option_allowed_cmd_FLOAT[136] = // 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,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 }; -static u8 option_allowed_cmd_VR_CALC[135] = // cmd #17 +static u8 option_allowed_cmd_VR_CALC[136] = // 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,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 }; -static u8 option_allowed_cmd_VR_RACE[135] = // cmd #18 +static u8 option_allowed_cmd_VR_RACE[136] = // 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,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 }; -static u8 option_allowed_cmd_AUTOADD[135] = // cmd #19 +static u8 option_allowed_cmd_AUTOADD[136] = // 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, 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, 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 }; -static u8 option_allowed_cmd_TRACKS[135] = // cmd #20 +static u8 option_allowed_cmd_TRACKS[136] = // 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,1,0,0, 0,0,0,0,0, 0,0,1,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,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, - 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,0, 0 }; -static u8 option_allowed_cmd_SCANCACHE[135] = // cmd #21 +static u8 option_allowed_cmd_SCANCACHE[136] = // 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,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, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_EXPORT[135] = // cmd #22 +static u8 option_allowed_cmd_EXPORT[136] = // 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, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #23 +static u8 option_allowed_cmd_SIZEOF[136] = // 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,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, 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,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_CODE[135] = // cmd #24 +static u8 option_allowed_cmd_CODE[136] = // 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 }; -static u8 option_allowed_cmd_RECODE[135] = // cmd #25 +static u8 option_allowed_cmd_RECODE[136] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #26 +static u8 option_allowed_cmd_SUBFILE[136] = // 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,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, 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 }; -static u8 option_allowed_cmd_TESTNORM[135] = // cmd #27 +static u8 option_allowed_cmd_TESTNORM[136] = // 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 }; -static u8 option_allowed_cmd_LIST[135] = // cmd #28 +static u8 option_allowed_cmd_LIST[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #29 +static u8 option_allowed_cmd_LIST_L[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #30 +static u8 option_allowed_cmd_LIST_LL[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #31 +static u8 option_allowed_cmd_LIST_LLL[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #32 +static u8 option_allowed_cmd_LIST_A[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #33 +static u8 option_allowed_cmd_LIST_LA[136] = // 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,1,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,1,0,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,1,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,1,0,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[135] = // cmd #34 +static u8 option_allowed_cmd_NAME_REF[136] = // 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,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,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, 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,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ILIST[135] = // cmd #35 +static u8 option_allowed_cmd_ILIST[136] = // 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,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,1,0,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,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,0,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[135] = // cmd #36 +static u8 option_allowed_cmd_ILIST_L[136] = // 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,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,0,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,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,0,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[135] = // cmd #37 +static u8 option_allowed_cmd_ILIST_LL[136] = // 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,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,0,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,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,0,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[135] = // cmd #38 +static u8 option_allowed_cmd_ILIST_A[136] = // 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,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,0,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,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,0,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[135] = // cmd #39 +static u8 option_allowed_cmd_ILIST_LA[136] = // 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,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,0,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,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,0,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[135] = // cmd #40 +static u8 option_allowed_cmd_MEMORY[136] = // 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,1,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, 1,1,0,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,1,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,1,1,0,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[135] = // cmd #41 +static u8 option_allowed_cmd_MEMORY_A[136] = // 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,1,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, 1,1,0,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,1,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,1,1,0,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[135] = // cmd #42 +static u8 option_allowed_cmd_DUMP[136] = // 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,0, 0,0,0,0,0, 0,0,0,0,0, 0,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,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,1,1,0,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[135] = // cmd #43 +static u8 option_allowed_cmd_SHA1[136] = // 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,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, 1,1,0,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,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,1,1,0,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_ANALYZE[135] = // cmd #44 +static u8 option_allowed_cmd_ANALYZE[136] = // 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,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,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,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_IS_TEXTURE[135] = // cmd #45 +static u8 option_allowed_cmd_SPLIT[136] = // cmd #46 { + 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,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, 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[136] = // 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,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 }; -static u8 option_allowed_cmd_FEATURES[135] = // cmd #46 +static u8 option_allowed_cmd_FEATURES[136] = // cmd #48 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,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,1,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,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, 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,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_DISTRIBUTION[135] = // cmd #47 +static u8 option_allowed_cmd_DISTRIBUTION[136] = // 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,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, 1,1,0,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,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,1,1,0,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[135] = // cmd #48 +static u8 option_allowed_cmd_DIFF[136] = // 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,0, 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,1,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,1,1,0, 0 }; -static u8 option_allowed_cmd_CHECK[135] = // cmd #49 +static u8 option_allowed_cmd_CHECK[136] = // cmd #51 { - 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,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,1,0,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 + 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,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,1,0,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[135] = // cmd #50 +static u8 option_allowed_cmd_SLOTS[136] = // cmd #52 { - 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,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,0,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 + 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,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,0,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[135] = // cmd #51 +static u8 option_allowed_cmd_STGI[136] = // cmd #53 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #52 +static u8 option_allowed_cmd_ISARENA[136] = // cmd #54 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_NORMALIZE[135] = // cmd #53 +static u8 option_allowed_cmd_NORMALIZE[136] = // cmd #55 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #54 +static u8 option_allowed_cmd_PATCH[136] = // cmd #56 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #55 +static u8 option_allowed_cmd_COPY[136] = // cmd #57 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #56 +static u8 option_allowed_cmd_DUPLICATE[136] = // cmd #58 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #57 +static u8 option_allowed_cmd_MINIMAP[136] = // cmd #59 { - 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,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,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,1,1,1, 1,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,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,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[135] = // cmd #58 +static u8 option_allowed_cmd_COMPRESS[136] = // cmd #60 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #59 +static u8 option_allowed_cmd_DECOMPRESS[136] = // cmd #61 { - 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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 + 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,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,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[135] = // cmd #60 +static u8 option_allowed_cmd_ENCODE[136] = // cmd #62 { - 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,0,0,0,0, 0,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, - 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 + 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,0,0,0, 0,0,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,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[135] = // cmd #61 +static u8 option_allowed_cmd_CREATE[136] = // cmd #63 { - 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,0,0,0,0, 0,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, 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 + 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,0,0,0, 0,0,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,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 }; -static u8 option_allowed_cmd_UPDATE[135] = // cmd #62 +static u8 option_allowed_cmd_UPDATE[136] = // cmd #64 { - 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,0,0,0,0, 0,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,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 + 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,0,0,0, 0,0,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,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[135] = // cmd #63 +static u8 option_allowed_cmd_EXTRACT[136] = // cmd #65 { - 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,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,1,1,0, 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 + 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,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,1,1, 0,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[135] = // cmd #64 +static u8 option_allowed_cmd_XDECODE[136] = // cmd #66 { - 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,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,1,1,0, 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 + 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,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,1,1, 0,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[135] = // cmd #65 +static u8 option_allowed_cmd_XEXPORT[136] = // cmd #67 { - 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,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,1,1,0, 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 + 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,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,1,1, 0,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[135] = // cmd #66 +static u8 option_allowed_cmd_XALL[136] = // cmd #68 { - 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,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,1,1,0, 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 + 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,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,1,1, 0,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[135] = // cmd #67 +static u8 option_allowed_cmd_XCOMMON[136] = // cmd #69 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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, 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 }; -static u8 option_allowed_cmd_BINARY[135] = // cmd #68 +static u8 option_allowed_cmd_BINARY[136] = // cmd #70 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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, 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 }; -static u8 option_allowed_cmd_TEXT[135] = // cmd #69 +static u8 option_allowed_cmd_TEXT[136] = // 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,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,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,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, 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,1,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[135] = // cmd #70 +static u8 option_allowed_cmd_CAT[136] = // 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,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,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,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,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, 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[135] = // cmd #71 +static u8 option_allowed_cmd_BMG[136] = // 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,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,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, 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,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_KCL[135] = // cmd #72 +static u8 option_allowed_cmd_KCL[136] = // cmd #74 { - 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,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,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, 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,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,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[135] = // cmd #73 +static u8 option_allowed_cmd_KMP[136] = // cmd #75 { - 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,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,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 + 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,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,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[135] = // cmd #74 +static u8 option_allowed_cmd_LEX[136] = // cmd #76 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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, 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #75 +static u8 option_allowed_cmd_INFO[136] = // cmd #77 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,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[135] = // cmd #76 +static u8 option_allowed_cmd_GHOST[136] = // 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,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,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,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_YAZDUMP[135] = // cmd #77 +static u8 option_allowed_cmd_YAZDUMP[136] = // 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, 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, 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 }; -static u8 option_allowed_cmd_VEHICLE[135] = // cmd #78 +static u8 option_allowed_cmd_VEHICLE[136] = // 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,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, 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 }; @@ -3687,15 +3751,18 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, OptionInfo + OPT_MAX_WIDTH, + OptionInfo + OPT_NO_PAGER, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, OptionInfo + OPT_CT_CODE, OptionInfo + OPT_LE_CODE, + OptionInfo + OPT_LOAD_PREFIX, OptionInfo + OPT_CHDIR, OptionInfo + OPT_CONST, OptionInfo + OPT_BATTLE, @@ -3809,6 +3876,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] = 0 }; +static const InfoOption_t * option_tab_cmd_EXPAND[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_TEST[] = { &option_cmd_TEST_VERBOSE, @@ -3979,6 +4052,7 @@ static const InfoOption_t * option_tab_cmd_SIZEOF[] = &option_cmd_SIZEOF_SORT, &option_cmd_SIZEOF_BRIEF, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, 0 }; @@ -4052,6 +4126,7 @@ static const InfoOption_t * option_tab_cmd_LIST[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4115,6 +4190,7 @@ static const InfoOption_t * option_tab_cmd_LIST_L[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4178,6 +4254,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LL[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4241,6 +4318,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LLL[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4304,6 +4382,7 @@ static const InfoOption_t * option_tab_cmd_LIST_A[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4367,6 +4446,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LA[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4437,6 +4517,7 @@ static const InfoOption_t * option_tab_cmd_ILIST[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4497,6 +4578,7 @@ static const InfoOption_t * option_tab_cmd_ILIST_L[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4557,6 +4639,7 @@ static const InfoOption_t * option_tab_cmd_ILIST_LL[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4617,6 +4700,7 @@ static const InfoOption_t * option_tab_cmd_ILIST_A[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4677,6 +4761,7 @@ static const InfoOption_t * option_tab_cmd_ILIST_LA[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4742,6 +4827,7 @@ static const InfoOption_t * option_tab_cmd_MEMORY[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4807,6 +4893,7 @@ static const InfoOption_t * option_tab_cmd_MEMORY_A[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, OptionInfo + OPT_NO_ENCODE, @@ -4862,6 +4949,7 @@ static const InfoOption_t * option_tab_cmd_DUMP[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -4920,6 +5008,7 @@ static const InfoOption_t * option_tab_cmd_SHA1[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -4982,6 +5071,36 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = 0 }; +static const InfoOption_t * option_tab_cmd_SPLIT[] = +{ + OptionInfo + OPT_LOAD_PREFIX, + OptionInfo + OPT_PLUS, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_IGNORE, + + OptionInfo + OPT_NONE, // separator + + &option_grp_SCRIPT_SECTIONS, + OptionInfo + OPT_SH, + OptionInfo + OPT_BASH, + OptionInfo + OPT_JSON, + OptionInfo + OPT_PHP, + OptionInfo + OPT_MAKEDOC, + OptionInfo + OPT_VAR, + OptionInfo + OPT_ARRAY, + OptionInfo + OPT_AVAR, + OptionInfo + OPT_CASE, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_DEST, + OptionInfo + OPT_DEST2, + + 0 +}; + static const InfoOption_t * option_tab_cmd_IS_TEXTURE[] = { OptionInfo + OPT_IGNORE, @@ -5051,6 +5170,7 @@ static const InfoOption_t * option_tab_cmd_DISTRIBUTION[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -5128,6 +5248,7 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -5231,6 +5352,7 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -5941,6 +6063,7 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -6053,6 +6176,7 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = OptionInfo + OPT_ALIGN_BREFT, OptionInfo + OPT_ALIGN, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_TIMING, OptionInfo + OPT_ENCODE_ALL, OptionInfo + OPT_ENCODE_IMG, &option_grp_ENCODE_ALL, @@ -6903,7 +7027,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " SZS, U8, PACK, BRRES, BREFF and BREFT archives. Additonally, RARC" " archive can be extracted. It is also a wrapper to all other tools.", 0, - 67, + 70, option_tab_tool, 0 }, @@ -6985,13 +7109,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst ARGTEST ...", "This debug command accepts all kinds of parameters and prints one" - " line for each parameter.", + " line for each parameter. All tools know the ARGTEST command.", 0, 0, option_tab_cmd_ARGTEST, option_allowed_cmd_ARGTEST }, + { CMD_EXPAND, + false, + false, + false, + "EXPAND", + 0, + "wszst EXPAND ...", + "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). All tools know the EXPAND command.", + 0, + 0, + option_tab_cmd_EXPAND, + option_allowed_cmd_EXPAND + }, + { CMD_TEST, false, false, @@ -7031,7 +7174,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "ERR", "wszst ERROR [error_code]", "Translate an exit code to a message name. If no exit code is entered," - " print a table with all error messages.", + " print a table with all error messages. All tools know the ERROR" + " command.", 0, 4, option_tab_cmd_ERROR, @@ -7046,7 +7190,7 @@ 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.", + " each file as list. All tools know the FILETYPE command.", 0, 3, option_tab_cmd_FILETYPE, @@ -7063,7 +7207,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a table with attributes for all known file types. If at least" " one keyword is entered, only matching file types are printed. A" " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" - " printed keywords (like 'ARCHIVE' or 'EXTRACT').", + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" + " FILEATTRIB command.", 0, 1, option_tab_cmd_FILEATTRIB, @@ -7094,7 +7239,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "SYMBOLS", 0, "wszst SYMBOLS", - "Print predefined symbols of text parser to standard output.", + "Print predefined symbols of text parser to standard output. Many" + " tools know the SYMBOLS command.", 0, 1, option_tab_cmd_SYMBOLS, @@ -7109,7 +7255,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst FUNCTIONS [key]...", "Print a list with all parser functions. If one or more keys entered," - " then only functions that match at least one key are printed.", + " then only functions that match at least one key are printed. Many" + " tools know the FUNCTIONS command.", 0, 3, option_tab_cmd_FUNCTIONS, @@ -7123,7 +7270,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "CALCULATE", 0, "wszst CALCULATE expression...", - "Calculate each expression and print the result to standard output.", + "Calculate each expression and print the result to standard output." + " Many tools know the CALCULATE command.", 0, 1, option_tab_cmd_CALCULATE, @@ -7292,7 +7440,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "This hidden command prints a list with the size of data structures" " and variables.", 0, - 3, + 4, option_tab_cmd_SIZEOF, option_allowed_cmd_SIZEOF }, @@ -7367,7 +7515,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " archives. If listing a directory, then a virtual SZS file is created" " (like CREATE does it) and listed.", 0, - 48, + 49, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -7382,7 +7530,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" " 'LIST --long'.", 0, - 48, + 49, option_tab_cmd_LIST_L, option_allowed_cmd_LIST_L }, @@ -7397,7 +7545,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" " short cuts for 'LIST --long --long'.", 0, - 48, + 49, option_tab_cmd_LIST_LL, option_allowed_cmd_LIST_LL }, @@ -7412,7 +7560,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List all sub files with offset and size in debugging mode. 'LIST-LLL'" " and 'LLLL' are short cuts for 'LIST --long --long --long'.", 0, - 48, + 49, option_tab_cmd_LIST_LLL, option_allowed_cmd_LIST_LLL }, @@ -7427,7 +7575,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List recursive all sub files with size. 'LIST-A' and 'LA' are short" " cuts for 'LIST --long --all --all'.", 0, - 48, + 49, option_tab_cmd_LIST_A, option_allowed_cmd_LIST_A }, @@ -7442,7 +7590,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List recursive all sub files with offset and size. 'LIST-LA' and" " 'LLA' are short cuts for 'LIST --long --long --all --all'.", 0, - 48, + 49, option_tab_cmd_LIST_LA, option_allowed_cmd_LIST_LA }, @@ -7476,7 +7624,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " listing a directory, then a virtual SZS file is created (like CREATE" " does it) and listed.", 0, - 45, + 46, option_tab_cmd_ILIST, option_allowed_cmd_ILIST }, @@ -7491,7 +7639,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, - 45, + 46, option_tab_cmd_ILIST_L, option_allowed_cmd_ILIST_L }, @@ -7506,7 +7654,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, - 45, + 46, option_tab_cmd_ILIST_LL, option_allowed_cmd_ILIST_LL }, @@ -7521,7 +7669,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, - 45, + 46, option_tab_cmd_ILIST_A, option_allowed_cmd_ILIST_A }, @@ -7536,7 +7684,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, - 45, + 46, option_tab_cmd_ILIST_LA, option_allowed_cmd_ILIST_LA }, @@ -7551,7 +7699,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Dump a memory map of each source file. Virtual images (extracted" " directories) are also supported.", 0, - 47, + 48, option_tab_cmd_MEMORY, option_allowed_cmd_MEMORY }, @@ -7566,7 +7714,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, - 47, + 48, option_tab_cmd_MEMORY_A, option_allowed_cmd_MEMORY_A }, @@ -7583,7 +7731,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " relocation. Virtual images (extracted directories) are also" " supported.", 0, - 41, + 42, option_tab_cmd_DUMP, option_allowed_cmd_DUMP }, @@ -7598,7 +7746,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a SHA1 checksum for each source. The checksum is calculated by" " using the uncompressed data and after patching.", 0, - 48, + 49, option_tab_cmd_SHA1, option_allowed_cmd_SHA1 }, @@ -7617,6 +7765,21 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_ANALYZE }, + { CMD_SPLIT, + false, + false, + false, + "SPLIT", + 0, + "wszst SPLIT [source]...", + "Analyse (file) names and split them into the different parts. Print" + " the results in machine readable format.", + 0, + 15, + option_tab_cmd_SPLIT, + option_allowed_cmd_SPLIT + }, + { CMD_IS_TEXTURE, false, false, @@ -7657,7 +7820,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "DISTRIBUTION", - "DIST", + "DIS", "wszst DISTRIBUTION result source...\n" "wszst DISTRIBUTION directory [source]...", "Load each SOURCE (SZS, WBZ, U8 or WU8) and calculate a checksum of" @@ -7670,9 +7833,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " directory, it is used as first source too.\n" " If file RESULT exists, it is automatically added as last source to" " the list of option --source, but only if not already added. On" - " scanning of file result, parameters are scanned too.", + " scanning of file result, parameters are scanned too.\n" + " See »welect DISTRIBUTION« for a new and alternative implementation" + " of this.", 0, - 45, + 46, option_tab_cmd_DISTRIBUTION, option_allowed_cmd_DISTRIBUTION }, @@ -7708,7 +7873,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " internal object and file database. The source can be a SZS, U8, WU8" " or WBZ file, or an U8 like directory.", 0, - 90, + 91, option_tab_cmd_CHECK, option_allowed_cmd_CHECK }, @@ -7726,7 +7891,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " positive or a negative slot list, whatever is shorter. For battle" " arenas, the keyword ARENA is printed.", 0, - 86, + 87, option_tab_cmd_SLOTS, option_allowed_cmd_SLOTS }, @@ -7910,7 +8075,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Create and/or encode sub files if necessary. It works like command" " CREATE, but without creating a new first level archive file.", 0, - 69, + 70, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -7926,7 +8091,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " not hidden files of the directory structure. Create and/or encode" " sub files if necessary. The default destination is '%P/%N%T'.", 0, - 95, + 96, option_tab_cmd_CREATE, option_allowed_cmd_CREATE }, diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h index 161aa7e..cdd1c7a 100644 --- a/project/src/ui/ui-wszst.h +++ b/project/src/ui/ui-wszst.h @@ -56,6 +56,7 @@ typedef enum enumOptions //----- command specific options ----- + OPT_PLUS, OPT_TOUCH, OPT_AUTO, OPT_SET_FLAGS, @@ -191,7 +192,7 @@ typedef enum enumOptions OPT_RAW, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 135 + OPT__N_SPECIFIC, // == 136 //----- global options ----- @@ -203,15 +204,18 @@ typedef enum enumOptions OPT_COMPATIBLE, OPT_WIDTH, OPT_MAX_WIDTH, + OPT_NO_PAGER, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_TIMING, OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, OPT_CT_CODE, OPT_LE_CODE, + OPT_LOAD_PREFIX, OPT_CHDIR, OPT_CONST, OPT_BATTLE, @@ -272,7 +276,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 211 + OPT__N_TOTAL // == 215 } enumOptions; @@ -287,6 +291,7 @@ typedef enum enumOptions //{ // //----- command specific options ----- // +// OB_PLUS = 1llu << OPT_PLUS, // OB_TOUCH = 1llu << OPT_TOUCH, // OB_AUTO = 1llu << OPT_AUTO, // OB_SET_FLAGS = 1llu << OPT_SET_FLAGS, @@ -573,6 +578,8 @@ typedef enum enumOptions // // OB_CMD_ARGTEST = ~(u64)0, // +// OB_CMD_EXPAND = ~(u64)0, +// // OB_CMD_TEST = ~(u64)0, // // OB_CMD_COLORS = OB_LONG @@ -723,6 +730,12 @@ typedef enum enumOptions // | OB_DEST // | OB_DEST2, // +// OB_CMD_SPLIT = OB_PLUS +// | OB_IGNORE +// | OB_GRP_SCRIPT +// | OB_DEST +// | OB_DEST2, +// // OB_CMD_IS_TEXTURE = OB_IGNORE // | OB_REFERENCE // | OB_LONG, @@ -949,6 +962,7 @@ typedef enum enumCommands CMD_CONFIG, CMD_INSTALL, CMD_ARGTEST, + CMD_EXPAND, CMD_TEST, CMD_COLORS, CMD_ERROR, @@ -992,6 +1006,7 @@ typedef enum enumCommands CMD_SHA1, CMD_ANALYZE, + CMD_SPLIT, CMD_IS_TEXTURE, CMD_FEATURES, CMD_DISTRIBUTION, @@ -1031,7 +1046,7 @@ typedef enum enumCommands CMD_VEHICLE, - CMD__N // == 79 + CMD__N // == 81 } enumCommands; @@ -1087,11 +1102,15 @@ typedef enum enumGetOpt GO_COMPATIBLE, GO_WIDTH, GO_MAX_WIDTH, + GO_NO_PAGER, + GO_TIMING, GO_DE, GO_COLORS, GO_NO_COLORS, GO_CT_CODE, GO_LE_CODE, + GO_LOAD_PREFIX, + GO_PLUS, GO_CHDIR, GO_TOUCH, GO_AUTO, diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def index 8e47764..ed569a1 100644 --- a/project/src/ui/ui.def +++ b/project/src/ui/ui.def @@ -43,7 +43,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wszst ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wszst EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wszst TEST [options]... [ignored]...", \ @@ -59,19 +68,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wszst ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wszst FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "BRSUB", "BRSUB", \ "wszst BRSUB [file]...", \ @@ -82,16 +93,19 @@ #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wszst SYMBOLS", \ - "Print predefined symbols of text parser to standard output." ) + "Print predefined symbols of text parser to standard output. Many" \ + " tools know the SYMBOLS command." ) #:def_cmd( "FUNCTIONS", "FUNCTIONS", \ "wszst FUNCTIONS [key]...", \ "Print a list with all parser functions. If one or more keys entered," \ - " then only functions that match at least one key are printed." ) + " then only functions that match at least one key are printed. Many" \ + " tools know the FUNCTIONS command." ) #:def_cmd( "CALCULATE", "CALCULATE", \ "wszst CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "MATRIX", "MATRIX", \ "wszst MATRIX [patch-option]... [vector]...", \ @@ -252,6 +266,11 @@ "wszst ANALYZE [source]...", \ "Analyse track files and print results in machine readable format." ) +#:def_cmd( "SPLIT", "SPLIT", \ + "wszst SPLIT [source]...", \ + "Analyse (file) names and split them into the different parts. Print" \ + " the results in machine readable format." ) + #: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" \ @@ -262,7 +281,7 @@ " CAME has been intentionally left out. Section ENPT is only checked" \ " if KCL contains a least one face of type force-recalculation." ) -#:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIST", \ +#:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", \ "wszst DISTRIBUTION result source...\n" \ "wszst DISTRIBUTION directory [source]...", \ "Load each @SOURCE@ (SZS, WBZ, U8 or WU8) and calculate a checksum of" \ @@ -275,7 +294,9 @@ " directory, it is used as first source too.\n" \ " If file @RESULT@ exists, it is automatically added as last source" \ " to the list of option --source, but only if not already added. On" \ - " scanning of file @result@, parameters are scanned too." ) + " scanning of file @result@, parameters are scanned too.\n" \ + " See »welect DISTRIBUTION« for a new and alternative implementation" \ + " of this." ) #:def_cmd( "DIFF", "DIFF|CMP", \ "wszst DIFF source1 source2\n" \ @@ -537,6 +558,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -550,7 +575,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -592,6 +623,25 @@ "Enable LE-CODE and CT-CODE support. The optional parameter is" \ " deprecated and ignored." ) +#:def_opt( "LOAD_PREFIX", "load-prefix|loadprefix", "GP", \ + "file", \ + "Read in a PREFIX file and replace the internal prefix database with" \ + " the content. https://ct.wiimm.de/export/prefix is the authoritative" \ + " source for this." ) + +#:def_opt( "PLUS", "plus", "CP", \ + "chars", \ + "If a name begins with a plus sign, then all characters up to the" \ + " first space are recognized as a plus prefix. The first part consists" \ + " of all the plus signs followed by any other characters. The first" \ + " character of the second part is used to determine the sort value. If" \ + " the second part is empty, then the last plus sign is used instead.\n" \ + " The higher sorting value is now calculated from the number of plus" \ + " signs in the first part, the more plus signs, the smaller the value." \ + " The first character from the second part determines the lower value." \ + " If it is in parameter CHARS then the position determines the value," \ + " otherwise the ASCII value to which 500 is added." ) + #:def_opt( "CHDIR", "chdir", "GMP", \ "dir", \ "Set a new working directory for all following options, for all" \ @@ -1224,7 +1274,7 @@ "", \ "Print an ID with 8 characters instead of a SHA-1 sum with 40" \ " characters. The SHA-1 sum is used to calculate the ID. The ID" \ - " consists of '0'-'9' and 'a'-'w' (32 characters)." ) + " consists of '0'-'9' and 'a'-'v' (32 different characters)." ) #:def_opt( "BASE64", "base64", "CO", \ "[=mode]", \ @@ -2264,6 +2314,10 @@ "", \ "" ) +#:def_cmd_opt( "SIZEOF", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "SUBFILE", "DEST", \ "", \ "" ) @@ -2413,6 +2467,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "ENCODE_ALL", \ "", \ "" ) @@ -2606,6 +2664,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_L", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_L", "ENCODE_ALL", \ "", \ "" ) @@ -2799,6 +2861,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LL", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LL", "ENCODE_ALL", \ "", \ "" ) @@ -2992,6 +3058,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LLL", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LLL", "ENCODE_ALL", \ "", \ "" ) @@ -3185,6 +3255,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_A", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_A", "ENCODE_ALL", \ "", \ "" ) @@ -3378,6 +3452,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LA", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LA", "ENCODE_ALL", \ "", \ "" ) @@ -3582,6 +3660,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST", "ENCODE_ALL", \ "", \ "" ) @@ -3763,6 +3845,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_L", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_L", "ENCODE_ALL", \ "", \ "" ) @@ -3944,6 +4030,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_LL", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_LL", "ENCODE_ALL", \ "", \ "" ) @@ -4125,6 +4215,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_A", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_A", "ENCODE_ALL", \ "", \ "" ) @@ -4306,6 +4400,10 @@ "", \ "" ) +#:def_cmd_opt( "ILIST_LA", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ILIST_LA", "ENCODE_ALL", \ "", \ "" ) @@ -4495,6 +4593,10 @@ "", \ "" ) +#:def_cmd_opt( "MEMORY", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "MEMORY", "ENCODE_ALL", \ "", \ "" ) @@ -4684,6 +4786,10 @@ "", \ "" ) +#:def_cmd_opt( "MEMORY_A", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "MEMORY_A", "ENCODE_ALL", \ "", \ "" ) @@ -4844,6 +4950,10 @@ "", \ "" ) +#:def_cmd_opt( "DUMP", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "DUMP", "ENCODE_ALL", \ "", \ "" ) @@ -5017,6 +5127,10 @@ "", \ "" ) +#:def_cmd_opt( "SHA1", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "SHA1", "ENCODE_ALL", \ "", \ "" ) @@ -5185,6 +5299,67 @@ "", \ "" ) +#:def_cmd_opt( "SPLIT", "LOAD_PREFIX", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "PLUS", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "SECTIONS", \ + "", \ + "Dump info using configuration or section syntax. Use {--var name} as" \ + " prefix." ) + +#:def_cmd_opt( "SPLIT", "SH", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "BASH", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "JSON", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "PHP", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "MAKEDOC", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "VAR", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "ARRAY", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "AVAR", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "CASE", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "DEST", \ + "", \ + "" ) + +#:def_cmd_opt( "SPLIT", "DEST2", \ + "", \ + "" ) + #:def_cmd_opt( "IS_TEXTURE", "IGNORE", \ "", \ "" ) @@ -5371,6 +5546,10 @@ "", \ "" ) +#:def_cmd_opt( "DISTRIBUTION", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "DISTRIBUTION", "ENCODE_ALL", \ "", \ "" ) @@ -5603,6 +5782,10 @@ "", \ "" ) +#:def_cmd_opt( "CHECK", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "CHECK", "ENCODE_ALL", \ "", \ "" ) @@ -5944,6 +6127,10 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "ENCODE_ALL", \ "", \ "" ) @@ -8225,6 +8412,10 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "ENCODE_ALL", \ "", \ "" ) @@ -8590,6 +8781,10 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "ENCODE_ALL", \ "", \ "" ) @@ -11245,7 +11440,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wbmgt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wbmgt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wbmgt TEST [options]... [ignored]...", \ @@ -11261,19 +11465,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wbmgt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wbmgt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "POINTS", "POINTS|PTS", \ "wbmgt POINTS [--points=list]", \ @@ -11407,6 +11613,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -11420,7 +11630,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -12516,7 +12732,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wctct ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wctct EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wctct TEST [options]... [ignored]...", \ @@ -12532,19 +12757,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wctct ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wctct FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wctct SYMBOLS", \ @@ -12559,7 +12786,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wctct CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "FLOAT", "FLOAT", \ "wctct FLOAT number...", \ @@ -12668,6 +12896,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -12681,7 +12913,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -12900,6 +13138,11 @@ " give filename scanning the highest priority.\n" \ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" ) +#:def_opt( "CREATE_DISTRIB", "create-distrib|createdistrib", "GP", \ + "file", \ + "Create a LE-CODE distribution dump with a track list and more info" \ + " about the current distribution. Store the dump info a file." ) + #:def_opt( "LIST", "list", "C", \ "", \ "Cancel all previous {--rel} and {--full} and enter LIST mode" \ @@ -13909,7 +14152,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wimgt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wimgt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wimgt TEST [options]... [ignored]...", \ @@ -13925,19 +14177,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wimgt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wimgt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "LIST", "LIST|LS", \ "wimgt LIST [source]...", \ @@ -14030,6 +14284,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -14043,7 +14301,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -14810,7 +15074,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wkclt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wkclt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wkclt TEST [options]... [ignored]...", \ @@ -14826,19 +15099,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wkclt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wkclt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wkclt SYMBOLS", \ @@ -14853,7 +15128,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wkclt CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "MATRIX", "MATRIX", \ "wkclt MATRIX [patch-option]... [vector]...", \ @@ -15035,6 +15311,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -15048,7 +15328,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -15337,7 +15623,7 @@ "", \ "Print an ID with 8 characters instead of a SHA-1 sum with 40" \ " characters. The SHA-1 sum is used to calculate the ID. The ID" \ - " consists of '0'-'9' and 'a'-'w' (32 characters)." ) + " consists of '0'-'9' and 'a'-'v' (32 different characters)." ) #:def_opt( "BASE64", "base64", "CO", \ "[=mode]", \ @@ -17322,7 +17608,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wkmpt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wkmpt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wkmpt TEST [options]... [ignored]...", \ @@ -17338,19 +17633,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wkmpt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wkmpt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wkmpt SYMBOLS", \ @@ -17365,7 +17662,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wkmpt CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "MATRIX", "MATRIX", \ "wkmpt MATRIX [patch-option]... [vector]...", \ @@ -17542,6 +17840,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -17555,7 +17857,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -19442,7 +19750,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wlect ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wlect EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wlect TEST [options]... [ignored]...", \ @@ -19458,19 +19775,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wlect ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wlect FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wlect SYMBOLS", \ @@ -19485,7 +19804,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wlect CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "FLOAT", "FLOAT", \ "wlect FLOAT number...", \ @@ -19536,15 +19856,21 @@ " standard output if no other destination is defined." ) #:def_cmd( "CREATE", "CREATE|CR", \ - "wlect CREATE [keyword]", \ - "Create a file and print it to standard output. The kind of file is" \ - " defined by KEYWORD. Use command without keywords to get a list of" \ - " possible keywords.\n" \ - " The following keywords are possible: @LEX@ for a LEX text file with" \ - " all known sections except @TEST@. @LEX+@ for a LEX text file with" \ - " all known sections including @TEST@. @SET1, CANN, HIPT@ and @TEST@" \ - " (section names) for a LEX text file with 1 section only. @LPAR@ for" \ - " an example LE-CODE parameter file." ) + "wlect CREATE [keyword] ...", \ + "Create a file and print it to standard output. Options {--dest} and" \ + " {--DEST} can forc another destination. The kind of file is defined" \ + " by KEYWORD. The command can create LEX files, a LPAR file or a track" \ + " listing.\n" \ + " Use the command without keyword to get an extended description." ) + +#:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIS|DISTRIB", \ + "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.\n" \ + " Use the command without keyword to get an extended description.\n" \ + " This command is still under development. Its use is therefore" \ + " EXPERIMENTAL!" ) #:def_cmd( "CAT", "CAT", \ "wlect CAT [source]...", \ @@ -19611,6 +19937,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -19624,7 +19954,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -19666,6 +20002,25 @@ "This option is completely ignored by wlect. It only exists due to" \ " compatibility with the other tools." ) +#:def_opt( "LOAD_PREFIX", "load-prefix|loadprefix", "GP", \ + "file", \ + "Read in a PREFIX file and replace the internal prefix database with" \ + " the content. https://ct.wiimm.de/export/prefix is the authoritative" \ + " source for this." ) + +#:def_opt( "PLUS", "plus", "CP", \ + "chars", \ + "If a name begins with a plus sign, then all characters up to the" \ + " first space are recognized as a plus prefix. The first part consists" \ + " of all the plus signs followed by any other characters. The first" \ + " character of the second part is used to determine the sort value. If" \ + " the second part is empty, then the last plus sign is used instead.\n" \ + " The higher sorting value is now calculated from the number of plus" \ + " signs in the first part, the more plus signs, the smaller the value." \ + " The first character from the second part determines the lower value." \ + " If it is in parameter CHARS then the position determines the value," \ + " otherwise the ASCII value to which 500 is added." ) + #:def_opt( "CHDIR", "chdir", "GMP", \ "dir", \ "Set a new working directory for all following options, for all" \ @@ -19792,6 +20147,11 @@ " give filename scanning the highest priority.\n" \ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" ) +#:def_opt( "CREATE_DISTRIB", "create-distrib|createdistrib", "CP", \ + "file", \ + "Create a LE-CODE distribution dump with a track list and more info" \ + " about the current distribution. Store the dump info a file." ) + #:def_opt( "LE_DEFINE", "le-define|ledefine", "CP", \ "file", \ "Use this file as definition file to patch LE-CODE. The file format" \ @@ -19892,6 +20252,15 @@ " this directory are linked to the directory specified by option" \ " {--track-dir}. If linking fails, the file is copied." ) +#:def_opt( "SZS_MODE", "szs-mode|szsmode", "CP", \ + "mode", \ + "If a track is inserted via the SZS file, then the associated" \ + " directory is automatically included in the list of search" \ + " directories for option {--track-dir}. This option now sets the" \ + " transfer mode. @OFF@ turns this feature off. The values @COPY@," \ + " @MOVE@, @MOVE1@ and @LINK@ define one of the 4 modes. Default mode" \ + " is @LINK@." ) + #:def_opt( "COMPLETE", "C|complete", "C", \ "", \ " Append missing sections to the LEX file." ) @@ -20162,6 +20531,10 @@ "", \ "For LE-CODE binaries: If set, print a track slot usage table." ) +#:def_cmd_opt( "DUMP", "CREATE_DISTRIB", \ + "", \ + "" ) + #:def_cmd_opt( "DL", "LE_DEFINE", \ "", \ "" ) @@ -20215,6 +20588,10 @@ "", \ "For LE-CODE binaries: If set, print a track slot usage table." ) +#:def_cmd_opt( "DL", "CREATE_DISTRIB", \ + "", \ + "" ) + #:def_cmd_opt( "DLL", "LE_DEFINE", \ "", \ "" ) @@ -20268,6 +20645,10 @@ "", \ "For LE-CODE binaries: If set, print a track slot usage table." ) +#:def_cmd_opt( "DLL", "CREATE_DISTRIB", \ + "", \ + "" ) + #:def_cmd_opt( "BIN_DIFF", "QUIET", \ "", \ "Suppress all messages and tell result as exit status only." ) @@ -20372,6 +20753,10 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "CREATE_DISTRIB", \ + "", \ + "" ) + #:def_cmd_opt( "LPAR", "LE_DEFINE", \ "", \ "" ) @@ -20548,6 +20933,14 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "LE_DEFINE", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "LOAD_BMG", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "ENGINE", \ "", \ "" ) @@ -20576,6 +20969,86 @@ "", \ "" ) +#:def_cmd_opt( "DISTRIBUTION", "LOAD_PREFIX", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "PLUS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "TRACK_DIR", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "COPY_TRACKS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "MOVE_TRACKS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "MOVE1_TRACKS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "LINK_TRACKS", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "SZS_MODE", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "NO_HEADER", \ + "", \ + "Suppress the syntax information section in LE text files." ) + +#:def_cmd_opt( "DISTRIBUTION", "BRIEF", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "EXPORT", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "DEST", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "DEST2", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "ESC", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "OVERWRITE", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "NUMBER", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "REMOVE_DEST", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "UPDATE", \ + "", \ + "" ) + +#:def_cmd_opt( "DISTRIBUTION", "PRESERVE", \ + "", \ + "" ) + #:def_cmd_opt( "CAT", "COMPLETE", \ "", \ "" ) @@ -20737,7 +21210,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wmdlt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wmdlt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wmdlt TEST [options]... [ignored]...", \ @@ -20753,19 +21235,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wmdlt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wmdlt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wmdlt SYMBOLS", \ @@ -20780,7 +21264,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wmdlt CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "MATRIX", "MATRIX", \ "wmdlt MATRIX [patch-option]... [vector]...", \ @@ -20882,6 +21367,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -20895,7 +21384,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -22025,7 +22520,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wpatt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wpatt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wpatt TEST [options]... [ignored]...", \ @@ -22041,19 +22545,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wpatt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wpatt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "SYMBOLS", "SYMBOLS", \ "wpatt SYMBOLS", \ @@ -22068,7 +22574,8 @@ #:def_cmd( "CALCULATE", "CALCULATE", \ "wpatt CALCULATE expression...", \ - "Calculate each expression and print the result to standard output." ) + "Calculate each expression and print the result to standard output." \ + " Many tools know the CALCULATE command." ) #:def_cmd( "FLOAT", "FLOAT", \ "wpatt FLOAT number...", \ @@ -22147,6 +22654,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -22160,7 +22671,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -22616,7 +23133,16 @@ #:def_cmd( "ARGTEST", "ARGTEST", \ "wstrt ARGTEST ...", \ "This debug command accepts all kinds of parameters and prints one" \ - " line for each parameter." ) + " line for each parameter. All tools know the ARGTEST command." ) + +#:def_cmd( "EXPAND", "EXPAND", \ + "wstrt EXPAND ...", \ + "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). All tools know the EXPAND command." ) #:def_cmd( "TEST", "TEST", \ "wstrt TEST [options]... [ignored]...", \ @@ -22632,19 +23158,21 @@ #:def_cmd( "ERROR", "ERROR|ERR", \ "wstrt ERROR [error_code]", \ "Translate an exit code to a message name. If no exit code is entered," \ - " print a table with all error messages." ) + " print a table with all error messages. All tools know the ERROR" \ + " command." ) #: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." ) + " each file as list. All tools know the FILETYPE command." ) #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wstrt FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ " one keyword is entered, only matching file types are printed. A" \ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \ - " printed keywords (like 'ARCHIVE' or 'EXTRACT')." ) + " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the" \ + " FILEATTRIB command." ) #:def_cmd( "DUMP", "DUMP", \ "wstrt DUMP file...", \ @@ -22772,6 +23300,10 @@ " some other messages. The default is 120. This option is ignored if" \ " --width is set." ) +#:def_opt( "NO_PAGER", "no-pager|nopager", "G", \ + "", \ + "Forbid the internal usage of a pager." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -22785,7 +23317,13 @@ #:def_opt( "LOGGING", "L|logging", "GM", \ "", \ - "This debug option enables the logging of internal lists and maps." ) + "This debug option enables the logging of internal lists and maps. Set" \ + " it up to three times to be more verbose.\n" ) + +#:def_opt( "TIMING", "timing", "GM", \ + "", \ + "Activate the timing of some operations. Logging level 3 activates" \ + " them too.\n" ) #:def_opt( "WARN", "W|warn", "GP", \ "list", \ @@ -23414,6 +23952,10 @@ "", \ "" ) +#:def_cmd_opt( "HEXDUMP", "TIMING", \ + "", \ + "" ) + #:def_cmd_opt( "HEXDUMP", "INT1", \ "", \ "" ) |
