diff options
Diffstat (limited to 'project/src/ui')
33 files changed, 1615 insertions, 921 deletions
diff --git a/project/src/ui/gen-ui.c b/project/src/ui/gen-ui.c index 823595c..d8518ce 100644 --- a/project/src/ui/gen-ui.c +++ b/project/src/ui/gen-ui.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/ui/tab-wbmgt.inc b/project/src/ui/tab-wbmgt.inc index f16a615..7f63fde 100644 --- a/project/src/ui/tab-wbmgt.inc +++ b/project/src/ui/tab-wbmgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -201,6 +201,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -443,6 +447,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wbmgt ARGTEST ---------- @@ -524,6 +529,7 @@ { T_CMD_BEG, "LIST", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -533,6 +539,7 @@ { T_CMD_BEG, "SLOTS", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -541,6 +548,7 @@ { T_CMD_BEG, "DIFF", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, diff --git a/project/src/ui/tab-wctct.inc b/project/src/ui/tab-wctct.inc index af35de7..9d4bbdf 100644 --- a/project/src/ui/tab-wctct.inc +++ b/project/src/ui/tab-wctct.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -188,6 +188,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -561,6 +565,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wctct ARGTEST ---------- diff --git a/project/src/ui/tab-wimgt.inc b/project/src/ui/tab-wimgt.inc index 2d6286a..6198c13 100644 --- a/project/src/ui/tab-wimgt.inc +++ b/project/src/ui/tab-wimgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -158,6 +158,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -391,6 +395,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wimgt ARGTEST ---------- diff --git a/project/src/ui/tab-wkclt.inc b/project/src/ui/tab-wkclt.inc index 04476f2..931b061 100644 --- a/project/src/ui/tab-wkclt.inc +++ b/project/src/ui/tab-wkclt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -255,6 +255,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -532,6 +536,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wkclt ARGTEST ---------- diff --git a/project/src/ui/tab-wkmpt.inc b/project/src/ui/tab-wkmpt.inc index 97070b7..686b547 100644 --- a/project/src/ui/tab-wkmpt.inc +++ b/project/src/ui/tab-wkmpt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -255,6 +255,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -657,6 +661,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wkmpt ARGTEST ---------- @@ -767,6 +772,7 @@ { T_CMD_BEG, "OBJECTS", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPT, "BRIEF", 0,0, "Don't print the file list and the info line(s)." diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc index e4b4772..e107ced 100644 --- a/project/src/ui/tab-wlect.inc +++ b/project/src/ui/tab-wlect.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -207,6 +207,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -372,6 +376,12 @@ "Delete LEX sections without any impact." " This option is executed after all --lt-* options." }, + { H_OPT_G, "LEX_RM_FEAT", "rm-features|rmfeatures|lex-rm-features|lexrmfeatures", + 0, + "Remove LEX setion FEA0 (features) if exists." + " It is executed after --lex-purge." + " {--lex-rm-features} is an alternative name." }, + { T_SEP_OPT, 0,0,0,0 }, //----- separator ----- { T_OPT_GM, "TEST", "t|test", @@ -643,6 +653,7 @@ // { T_COPT, "LT_ENGINE", 0,0,0 }, // { T_COPT, "LT_RANDOM", 0,0,0 }, // { T_COPT, "LEX_PURGE", 0,0,0 }, +// { H_COPT, "LEX_RM_FEAT", 0,0,0 }, //---------- wlect GROUP TRACK_COPY ---------- @@ -687,6 +698,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wlect ARGTEST ---------- @@ -843,6 +855,7 @@ { T_COPT, "LT_ENGINE", 0,0,0 }, { T_COPT, "LT_RANDOM", 0,0,0 }, { T_COPT, "LEX_PURGE", 0,0,0 }, + { H_COPT, "LEX_RM_FEAT", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "PARAM", 0,0,0 }, diff --git a/project/src/ui/tab-wmdlt.inc b/project/src/ui/tab-wmdlt.inc index c4a8e1c..d68652a 100644 --- a/project/src/ui/tab-wmdlt.inc +++ b/project/src/ui/tab-wmdlt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -181,6 +181,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -429,6 +433,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wmdlt ARGTEST ---------- diff --git a/project/src/ui/tab-wpatt.inc b/project/src/ui/tab-wpatt.inc index a55b2bf..fc86f58 100644 --- a/project/src/ui/tab-wpatt.inc +++ b/project/src/ui/tab-wpatt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -149,6 +149,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -327,6 +331,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wpatt ARGTEST ---------- diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc index fcdc3aa..19ecfa3 100644 --- a/project/src/ui/tab-wstrt.inc +++ b/project/src/ui/tab-wstrt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -191,6 +191,10 @@ "WIDTH", "width", 0, 0 /* copy of wszst */ }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + 0, 0 /* copy of wszst */ }, + { T_OPT_GM, "QUIET", "q|quiet", 0, 0 /* copy of wszst */ }, @@ -853,6 +857,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wstrt ARGTEST ---------- diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc index e84695d..e9e511c 100644 --- a/project/src/ui/tab-wszst.inc +++ b/project/src/ui/tab-wszst.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -229,6 +229,10 @@ "wszst _SUBFILE [files]", "Test sub-file system." }, + { H_DEF_CMD, "TESTNORM", "_NORM", + "wszst _NORM key...", + "This hidden command tests the iteration of norming." }, + { T_SEP_CMD, 0,0,0,0 }, //----- separator ----- { T_DEF_CMD, "LIST", "LIST|LS", @@ -330,6 +334,10 @@ "wszst ANALYZE [source]...", "Analyse track files and print results in machine readable format." }, + { H_DEF_CMD, "FEATURES", "FEATURES", + "wszst FEATURES [source]...", + "Analyse track files and a feature list in machine readable format." }, + { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIST", "wszst DISTRIBUTION result source...\n" "wszst DISTRIBUTION directory [source]...", @@ -640,6 +648,14 @@ " for help and some other messages" " and disable the automatic detection of the terminal width." }, + { T_OPT_GP|F_IGNORE, + "MAX_WIDTH", "max-width|maxwidth", + "maxwidth", + "Define the maximum terminal width (number of columns)" + " for help and some other messages" + " and disable the automatic detection of the terminal width." + " This option is ignored if {--width} is set." }, + { T_OPT_GM, "QUIET", "q|quiet", 0, "Be quiet and print only error messages." @@ -1060,7 +1076,7 @@ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL," " WIIMM, TRIANGLES, OUT-SWAP, G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4," " HEX23, HEX, DROP-UNUSED, DROP-FIXED, DROP-INVALID, DROP," - " RM-FACEDOWN, RM-FACEUP, FIX-ALL," + " RM-FACEDOWN, RM-FACEUP, FIX-ALL, TINY-0 ... TINY-7," " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." "\1 See https://szs.wiimm.de/opt/kcl for details." }, @@ -1154,7 +1170,7 @@ " MASK-PFLAGS, RM-LECODE, PURGE-GOBJ, FULL-DEFOBJ," " DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL," " 1LAP ... 9LAPS, MAX-LAPS, RM-EMPTY," - " INPLACE, SILENT@ and @LOG@." + " TINY-0 ... TINY-7, INPLACE, SILENT@ and @LOG@." "\1 See https://szs.wiimm.de/opt/kmp for details." }, { T_OPT_GP, "SPEED_MOD", "speed-mod|speedmod", @@ -1375,7 +1391,22 @@ 0, "Delete LEX sections without any impact." " Delete sub-file course.lex if it no longer contains a section." - " This option is executed after all --lt-* options." }, + " This option is executed after all --lt-* and --lex-* options." }, + + { H_OPT_G, "LEX_FEATURES", "lex-features|lexfeatures", + 0, + "Calculate LEX setion FEA0 (features) by analysing the track file." + " If no features found, delete the section and the possibly empty sub-file" + " course.lex. If features found, then insert the section or update" + " an existing section. If necessary, the sub-file course.lex is created." + " This option is executed after all --lt-* options and after --lex-purge." }, + + { H_OPT_G, "LEX_RM_FEAT", "lex-rm-features|lexrmfeatures", + 0, + "Remove LEX setion FEA0 (features) if exists" + " and the possibly empty sub-file course.lex." + " This option is ignored if --lex-features is set." + " It is executed after all --lt-* options and after --lex-purge." }, { T_OPT_CMP, "LOAD_BMG", "load-bmg|loadbmg", "file", @@ -1818,6 +1849,31 @@ "varname", "Shortcut for: {--array --var name}" }, + { T_OPT_GP, "CASE", "case", + "case", + "@CASE@ is one of @LOWER@, @AUTO@ (default) or @UPPER@." + "If @LOWER@ or @UPPER@ are set, then the lower/upper case" + " of the variable names is adjusted accordingly." }, + + { H_OPT_C, "PMODES", "pmodes|print-modes|printmodes", + 0, + "--pmodes is an abbreviation for --print-mode." + " If set, a comma-separated list of letters is added to the end of each feature." + " The letters used are:" + " @S@ (section), @V@ (visual), @B@ (battle), @R@ (racing)," + " @T@ (time trial), @L@ (local=offline) and @O@ (online)." }, + + { H_OPT_CP, "FMODES", "fmodes|feature-modes|featuremodes", + "list", + "--fmodes is an abbreviation for --feature-modes and declares an output filter." + " @LIST@ is a keyword list. The keywords are:" + " @SECTION, VISUAL, GAMEPLAY, BATTLE, RACING, TIMETRIAL, OFFLINE@ and @ONLINE@." + " A feature is only printed if *all* set keywords match." + "\n " + " Each keyword can also be used with a minus as prefix to define" + " a second condition. In this case the feature is excluded" + " from printing if *any* set keywords match." }, + { T_SEP_OPT, 0,0,0,0 }, //----- separator ----- { H_OPT_CP, "ANALYZE", "analyze|analyse", @@ -2318,6 +2374,8 @@ { T_COPT, "LT_ENGINE", 0,0,0 }, { T_COPT, "LT_RANDOM", 0,0,0 }, { T_COPT, "LEX_PURGE", 0,0,0 }, + { H_COPT, "LEX_FEATURES", 0,0,0 }, + { H_COPT, "LEX_RM_FEAT", 0,0,0 }, { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, @@ -2381,6 +2439,7 @@ { T_COPT, "VAR", 0,0,0 }, { T_COPT, "ARRAY", 0,0,0 }, { T_COPT, "AVAR", 0,0,0 }, + { T_COPT, "CASE", 0,0,0 }, //---------- wszst GROUP ALIGN ---------- @@ -2515,6 +2574,7 @@ { T_CMD_BEG, "HELP", 0,0,0 }, { T_COPT, "WIDTH", 0,0,0 }, + { T_COPT, "MAX_WIDTH", 0,0,0 }, { T_ALL_OPT, 0, 0,0,0 }, //---------- COMMAND wszst ARGTEST ---------- @@ -2876,6 +2936,26 @@ { T_COPT, "DEST", 0,0,0 }, { T_COPT, "DEST2", 0,0,0 }, + //---------- COMMAND wszst FEATURES ---------- + + { T_CMD_BEG, "FEATURES", 0,0,0 }, + { T_COPT, "BRIEF", 0,0, + "Suppres any comments at all." + " If set twice, suppress empty lines (for grouping) too." + " If set three times, omit inactive features (=0) too." }, + { T_COPT, "LONG", 0,0, + "Print additnal comments." }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_COPT, "QUIET", 0,0, + "Suppress logging of input and output files." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "SCRIPT", 0,0,0 }, + { T_COPT, "PMODES", 0,0,0 }, + { T_COPT, "FMODES", 0,0,0 }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "DEST", 0,0,0 }, + { T_COPT, "DEST2", 0,0,0 }, + //---------- COMMAND wszst DISTRIBUTION ---------- { T_CMD_BEG, "DISTRIBUTION", 0,0,0 }, diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c index 1a6c522..598864e 100644 --- a/project/src/ui/ui-wbmgt.c +++ b/project/src/ui/ui-wbmgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -337,6 +337,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -515,7 +522,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 == 61 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 62 }; @@ -641,6 +648,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -794,39 +803,40 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_POINTS, - /* 0x08b */ OPT_UTF_8, - /* 0x08c */ OPT_NO_UTF_8, - /* 0x08d */ OPT_FORCE, - /* 0x08e */ OPT_REPAIR_MAGICS, - /* 0x08f */ OPT_OLD, - /* 0x090 */ OPT_STD, - /* 0x091 */ OPT_NEW, - /* 0x092 */ OPT_EXTRACT, - /* 0x093 */ OPT_NUMBER, - /* 0x094 */ OPT_ALIGN, - /* 0x095 */ OPT_MACRO_BMG, - /* 0x096 */ OPT_FILTER_BMG, - /* 0x097 */ OPT_BMG_ENDIAN, - /* 0x098 */ OPT_BMG_ENCODING, - /* 0x099 */ OPT_BMG_INF_SIZE, - /* 0x09a */ OPT_BMG_MID, - /* 0x09b */ OPT_FORCE_ATTRIB, - /* 0x09c */ OPT_DEF_ATTRIB, - /* 0x09d */ OPT_NO_ATTRIB, - /* 0x09e */ OPT_X_ESCAPES, - /* 0x09f */ OPT_OLD_ESCAPES, - /* 0x0a0 */ OPT_NO_BMG_COLORS, - /* 0x0a1 */ OPT_BMG_COLORS, - /* 0x0a2 */ OPT_NO_BMG_INLINE, - /* 0x0a3 */ OPT_SECTIONS, - /* 0x0a4 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_POINTS, + /* 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_ALIGN, + /* 0x096 */ OPT_MACRO_BMG, + /* 0x097 */ OPT_FILTER_BMG, + /* 0x098 */ OPT_BMG_ENDIAN, + /* 0x099 */ OPT_BMG_ENCODING, + /* 0x09a */ OPT_BMG_INF_SIZE, + /* 0x09b */ OPT_BMG_MID, + /* 0x09c */ OPT_FORCE_ATTRIB, + /* 0x09d */ OPT_DEF_ATTRIB, + /* 0x09e */ OPT_NO_ATTRIB, + /* 0x09f */ OPT_X_ESCAPES, + /* 0x0a0 */ OPT_OLD_ESCAPES, + /* 0x0a1 */ OPT_NO_BMG_COLORS, + /* 0x0a2 */ OPT_BMG_COLORS, + /* 0x0a3 */ OPT_NO_BMG_INLINE, + /* 0x0a4 */ OPT_SECTIONS, + /* 0x0a5 */ 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, @@ -834,7 +844,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -982,6 +993,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1018,6 +1030,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1102,6 +1115,7 @@ static const InfoOption_t * option_tab_cmd_LIST[] = { OptionInfo + OPT_IGNORE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1113,6 +1127,7 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = { OptionInfo + OPT_IGNORE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1123,6 +1138,7 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = static const InfoOption_t * option_tab_cmd_DIFF[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, @@ -1353,7 +1369,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, - 23, + 24, option_tab_tool, 0 }, @@ -1391,7 +1407,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, @@ -1561,7 +1577,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "List messages to proof the content. Patches are applied before" " listing. The lines are cut to fit the terminal width.", 0, - 5, + 6, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -1576,7 +1592,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Print a slot ordered list with slot number, message id, delta and" " attributes. Patches are applied before listing.", 0, - 5, + 6, option_tab_cmd_SLOTS, option_allowed_cmd_SLOTS }, @@ -1594,7 +1610,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " each source file is compared with a file in the destination. Patches" " are applied to all sources before comparing.", 0, - 6, + 7, option_tab_cmd_DIFF, option_allowed_cmd_DIFF }, diff --git a/project/src/ui/ui-wbmgt.h b/project/src/ui/ui-wbmgt.h index 75625de..722ed02 100644 --- a/project/src/ui/ui-wbmgt.h +++ b/project/src/ui/ui-wbmgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -98,6 +98,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -122,7 +123,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 61 + OPT__N_TOTAL // == 62 } enumOptions; @@ -363,6 +364,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -409,7 +411,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wbmgt; diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c index d106ed3..8569f2c 100644 --- a/project/src/ui/ui-wctct.c +++ b/project/src/ui/ui-wctct.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -437,6 +437,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -646,7 +653,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 == 80 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 81 }; @@ -832,6 +839,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -1012,64 +1021,66 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_OLD_SPINY, - /* 0x08a */ OPT_CRS1, - /* 0x08b */ OPT_CHDIR, - /* 0x08c */ OPT_ROUND, - /* 0x08d */ OPT_RAW, - /* 0x08e */ OPT_BMG_ENDIAN, - /* 0x08f */ OPT_BMG_ENCODING, - /* 0x090 */ OPT_BMG_INF_SIZE, - /* 0x091 */ OPT_BMG_MID, - /* 0x092 */ OPT_FORCE_ATTRIB, - /* 0x093 */ OPT_DEF_ATTRIB, - /* 0x094 */ OPT_NO_ATTRIB, - /* 0x095 */ OPT_X_ESCAPES, - /* 0x096 */ OPT_OLD_ESCAPES, - /* 0x097 */ OPT_NO_BMG_COLORS, - /* 0x098 */ OPT_BMG_COLORS, - /* 0x099 */ OPT_NO_BMG_INLINE, - /* 0x09a */ OPT_NO_ECHO, - /* 0x09b */ OPT_UTF_8, - /* 0x09c */ OPT_NO_UTF_8, - /* 0x09d */ OPT_FORCE, - /* 0x09e */ OPT_REPAIR_MAGICS, - /* 0x09f */ OPT_OLD, - /* 0x0a0 */ OPT_STD, - /* 0x0a1 */ OPT_NEW, - /* 0x0a2 */ OPT_EXTRACT, - /* 0x0a3 */ OPT_LIST, - /* 0x0a4 */ OPT_REF, - /* 0x0a5 */ OPT_FULL, - /* 0x0a6 */ OPT_HEX, - /* 0x0a7 */ OPT_CT_DIR, - /* 0x0a8 */ OPT_CT_LOG, - /* 0x0a9 */ OPT_ALLOW_SLOTS, - /* 0x0aa */ OPT_IMAGES, - /* 0x0ab */ OPT_LOAD_BMG, - /* 0x0ac */ OPT_PATCH_BMG, - /* 0x0ad */ OPT_MACRO_BMG, - /* 0x0ae */ OPT_FILTER_BMG, - /* 0x0af */ OPT_PATCH_NAMES, - /* 0x0b0 */ OPT_ORDER_BY, - /* 0x0b1 */ OPT_ORDER_ALL, - /* 0x0b2 */ OPT_DYNAMIC, - /* 0x0b3 */ OPT_WRITE_TRACKS, - /* 0x0b4 */ OPT_NUMBER, - /* 0x0b5 */ OPT_SECTIONS, - /* 0x0b6 */ 0,0,0,0, 0,0,0,0, 0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_OLD_SPINY, + /* 0x08b */ OPT_CRS1, + /* 0x08c */ OPT_CHDIR, + /* 0x08d */ OPT_ROUND, + /* 0x08e */ OPT_RAW, + /* 0x08f */ OPT_BMG_ENDIAN, + /* 0x090 */ OPT_BMG_ENCODING, + /* 0x091 */ OPT_BMG_INF_SIZE, + /* 0x092 */ OPT_BMG_MID, + /* 0x093 */ OPT_FORCE_ATTRIB, + /* 0x094 */ OPT_DEF_ATTRIB, + /* 0x095 */ OPT_NO_ATTRIB, + /* 0x096 */ OPT_X_ESCAPES, + /* 0x097 */ OPT_OLD_ESCAPES, + /* 0x098 */ OPT_NO_BMG_COLORS, + /* 0x099 */ OPT_BMG_COLORS, + /* 0x09a */ OPT_NO_BMG_INLINE, + /* 0x09b */ OPT_NO_ECHO, + /* 0x09c */ OPT_UTF_8, + /* 0x09d */ OPT_NO_UTF_8, + /* 0x09e */ OPT_FORCE, + /* 0x09f */ OPT_REPAIR_MAGICS, + /* 0x0a0 */ OPT_OLD, + /* 0x0a1 */ OPT_STD, + /* 0x0a2 */ OPT_NEW, + /* 0x0a3 */ OPT_EXTRACT, + /* 0x0a4 */ OPT_LIST, + /* 0x0a5 */ OPT_REF, + /* 0x0a6 */ OPT_FULL, + /* 0x0a7 */ OPT_HEX, + /* 0x0a8 */ OPT_CT_DIR, + /* 0x0a9 */ OPT_CT_LOG, + /* 0x0aa */ OPT_ALLOW_SLOTS, + /* 0x0ab */ OPT_IMAGES, + /* 0x0ac */ OPT_LOAD_BMG, + /* 0x0ad */ OPT_PATCH_BMG, + /* 0x0ae */ OPT_MACRO_BMG, + /* 0x0af */ OPT_FILTER_BMG, + /* 0x0b0 */ OPT_PATCH_NAMES, + /* 0x0b1 */ OPT_ORDER_BY, + /* 0x0b2 */ OPT_ORDER_ALL, + /* 0x0b3 */ OPT_DYNAMIC, + /* 0x0b4 */ OPT_WRITE_TRACKS, + /* 0x0b5 */ OPT_NUMBER, + /* 0x0b6 */ OPT_SECTIONS, + /* 0x0b7 */ 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, /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1217,6 +1228,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1258,6 +1270,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1588,7 +1601,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, - 25, + 26, option_tab_tool, 0 }, @@ -1626,7 +1639,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wctct.h b/project/src/ui/ui-wctct.h index 184515b..cfe351a 100644 --- a/project/src/ui/ui-wctct.h +++ b/project/src/ui/ui-wctct.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -113,6 +113,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -141,7 +142,7 @@ typedef enum enumOptions OPT_CT_LOG, OPT_ALLOW_SLOTS, - OPT__N_TOTAL // == 80 + OPT__N_TOTAL // == 81 } enumOptions; @@ -433,6 +434,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -497,7 +499,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wctct; diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c index 0788b7f..0fae748 100644 --- a/project/src/ui/ui-wimgt.c +++ b/project/src/ui/ui-wimgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -300,6 +300,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -466,7 +473,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 == 54 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 55 }; @@ -582,6 +589,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -719,32 +728,33 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_UTF_8, - /* 0x08b */ OPT_NO_UTF_8, - /* 0x08c */ OPT_FORCE, - /* 0x08d */ OPT_REPAIR_MAGICS, - /* 0x08e */ OPT_OLD, - /* 0x08f */ OPT_STD, - /* 0x090 */ OPT_NEW, - /* 0x091 */ OPT_EXTRACT, - /* 0x092 */ OPT_NUMBER, - /* 0x093 */ OPT_MIPMAPS, - /* 0x094 */ OPT_NO_MIPMAPS, - /* 0x095 */ OPT_N_MIPMAPS, - /* 0x096 */ OPT_MAX_MIPMAPS, - /* 0x097 */ OPT_MIPMAP_SIZE, - /* 0x098 */ OPT_FAST_MIPMAPS, - /* 0x099 */ OPT_CMPR_DEFAULT, - /* 0x09a */ OPT_PRE_CONVERT, - /* 0x09b */ OPT_STRIP, - /* 0x09c */ OPT_SECTIONS, - /* 0x09d */ 0,0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_UTF_8, + /* 0x08c */ OPT_NO_UTF_8, + /* 0x08d */ OPT_FORCE, + /* 0x08e */ OPT_REPAIR_MAGICS, + /* 0x08f */ OPT_OLD, + /* 0x090 */ OPT_STD, + /* 0x091 */ OPT_NEW, + /* 0x092 */ OPT_EXTRACT, + /* 0x093 */ OPT_NUMBER, + /* 0x094 */ OPT_MIPMAPS, + /* 0x095 */ OPT_NO_MIPMAPS, + /* 0x096 */ OPT_N_MIPMAPS, + /* 0x097 */ OPT_MAX_MIPMAPS, + /* 0x098 */ OPT_MIPMAP_SIZE, + /* 0x099 */ OPT_FAST_MIPMAPS, + /* 0x09a */ OPT_CMPR_DEFAULT, + /* 0x09b */ OPT_PRE_CONVERT, + /* 0x09c */ OPT_STRIP, + /* 0x09d */ OPT_SECTIONS, + /* 0x09e */ 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, @@ -753,7 +763,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -850,6 +861,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -883,6 +895,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1122,7 +1135,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, - 20, + 21, option_tab_tool, 0 }, @@ -1160,7 +1173,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wimgt.h b/project/src/ui/ui-wimgt.h index 5cb93b9..42d5994 100644 --- a/project/src/ui/ui-wimgt.h +++ b/project/src/ui/ui-wimgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -92,6 +92,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -115,7 +116,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 54 + OPT__N_TOTAL // == 55 } enumOptions; @@ -296,6 +297,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -335,7 +337,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wimgt; diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c index 6678074..2102123 100644 --- a/project/src/ui/ui-wkclt.c +++ b/project/src/ui/ui-wkclt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -409,6 +409,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -494,8 +501,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " the octree creation. The other allowed keywords are: FAST, NEW," " CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP, G, USEMTL," " CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED, DROP-FIXED," - " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, CONV-FACEUP," - " WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" + " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, TINY-0 ..." + " TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kcl for details." }, @@ -626,7 +633,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 == 70 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 71 }; @@ -880,6 +887,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -1029,49 +1038,50 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_SCALE, - /* 0x08b */ OPT_SHIFT, - /* 0x08c */ OPT_XSS, - /* 0x08d */ OPT_YSS, - /* 0x08e */ OPT_ZSS, - /* 0x08f */ OPT_ROT, - /* 0x090 */ OPT_XROT, - /* 0x091 */ OPT_YROT, - /* 0x092 */ OPT_ZROT, - /* 0x093 */ OPT_TRANSLATE, - /* 0x094 */ OPT_NULL, - /* 0x095 */ OPT_NEXT, - /* 0x096 */ OPT_ASCALE, - /* 0x097 */ OPT_AROT, - /* 0x098 */ OPT_TFORM_SCRIPT, - /* 0x099 */ OPT_KCL, - /* 0x09a */ OPT_KCL_FLAG, - /* 0x09b */ OPT_KCL_SCRIPT, - /* 0x09c */ OPT_TRI_AREA, - /* 0x09d */ OPT_TRI_HEIGHT, - /* 0x09e */ OPT_FLAG_FILE, - /* 0x09f */ OPT_XTRIDATA, - /* 0x0a0 */ OPT_SLOT, - /* 0x0a1 */ OPT_ROUND, - /* 0x0a2 */ OPT_NO_ECHO, - /* 0x0a3 */ OPT_UTF_8, - /* 0x0a4 */ OPT_NO_UTF_8, - /* 0x0a5 */ OPT_FORCE, - /* 0x0a6 */ OPT_REPAIR_MAGICS, - /* 0x0a7 */ OPT_TINY, - /* 0x0a8 */ OPT_OLD, - /* 0x0a9 */ OPT_STD, - /* 0x0aa */ OPT_NEW, - /* 0x0ab */ OPT_EXTRACT, - /* 0x0ac */ OPT_NUMBER, - /* 0x0ad */ OPT_SECTIONS, - /* 0x0ae */ 0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_SCALE, + /* 0x08c */ OPT_SHIFT, + /* 0x08d */ OPT_XSS, + /* 0x08e */ OPT_YSS, + /* 0x08f */ OPT_ZSS, + /* 0x090 */ OPT_ROT, + /* 0x091 */ OPT_XROT, + /* 0x092 */ OPT_YROT, + /* 0x093 */ OPT_ZROT, + /* 0x094 */ OPT_TRANSLATE, + /* 0x095 */ OPT_NULL, + /* 0x096 */ OPT_NEXT, + /* 0x097 */ OPT_ASCALE, + /* 0x098 */ OPT_AROT, + /* 0x099 */ OPT_TFORM_SCRIPT, + /* 0x09a */ OPT_KCL, + /* 0x09b */ OPT_KCL_FLAG, + /* 0x09c */ OPT_KCL_SCRIPT, + /* 0x09d */ OPT_TRI_AREA, + /* 0x09e */ OPT_TRI_HEIGHT, + /* 0x09f */ OPT_FLAG_FILE, + /* 0x0a0 */ OPT_XTRIDATA, + /* 0x0a1 */ OPT_SLOT, + /* 0x0a2 */ OPT_ROUND, + /* 0x0a3 */ OPT_NO_ECHO, + /* 0x0a4 */ OPT_UTF_8, + /* 0x0a5 */ OPT_NO_UTF_8, + /* 0x0a6 */ OPT_FORCE, + /* 0x0a7 */ OPT_REPAIR_MAGICS, + /* 0x0a8 */ OPT_TINY, + /* 0x0a9 */ OPT_OLD, + /* 0x0aa */ OPT_STD, + /* 0x0ab */ OPT_NEW, + /* 0x0ac */ OPT_EXTRACT, + /* 0x0ad */ OPT_NUMBER, + /* 0x0ae */ OPT_SECTIONS, + /* 0x0af */ 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, @@ -1079,7 +1089,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1275,6 +1286,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1312,6 +1324,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1957,7 +1970,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KCL Tool : Analyze, modify, export and create KCL and OBJ" " files.", 0, - 24, + 25, option_tab_tool, 0 }, @@ -1995,7 +2008,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wkclt.h b/project/src/ui/ui-wkclt.h index a55da8b..41097b5 100644 --- a/project/src/ui/ui-wkclt.h +++ b/project/src/ui/ui-wkclt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -103,6 +103,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -131,7 +132,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 70 + OPT__N_TOTAL // == 71 } enumOptions; @@ -412,6 +413,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -468,7 +470,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wkclt; diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c index 1ce32eb..5a47964 100644 --- a/project/src/ui/ui-wkmpt.c +++ b/project/src/ui/ui-wkmpt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -529,6 +529,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -661,8 +668,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " the octree creation. The other allowed keywords are: FAST, NEW," " CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP, G, USEMTL," " CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED, DROP-FIXED," - " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, CONV-FACEUP," - " WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" + " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, TINY-0 ..." + " TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kcl for details." }, @@ -706,7 +713,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH, FIX-CKNEXT," " FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE, PURGE-GOBJ," " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ... 9LAPS," - " MAX-LAPS, RM-EMPTY, INPLACE, SILENT and LOG. See" + " MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kmp for details." }, @@ -851,7 +858,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 == 91 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 92 }; @@ -1132,6 +1139,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -1320,73 +1329,75 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_SCALE, - /* 0x08b */ OPT_SHIFT, - /* 0x08c */ OPT_XSS, - /* 0x08d */ OPT_YSS, - /* 0x08e */ OPT_ZSS, - /* 0x08f */ OPT_ROT, - /* 0x090 */ OPT_XROT, - /* 0x091 */ OPT_YROT, - /* 0x092 */ OPT_ZROT, - /* 0x093 */ OPT_YPOS, - /* 0x094 */ OPT_TRANSLATE, - /* 0x095 */ OPT_NULL, - /* 0x096 */ OPT_NEXT, - /* 0x097 */ OPT_ASCALE, - /* 0x098 */ OPT_AROT, - /* 0x099 */ OPT_TFORM_SCRIPT, - /* 0x09a */ OPT_RM_GOBJ, - /* 0x09b */ OPT_BATTLE, - /* 0x09c */ OPT_EXPORT_FLAGS, - /* 0x09d */ OPT_ROUTE_OPTIONS, - /* 0x09e */ OPT_WIM0, - /* 0x09f */ OPT_SLOT, - /* 0x0a0 */ OPT_POS_MODE, - /* 0x0a1 */ OPT_POS_FILE, - /* 0x0a2 */ OPT_PNG, - /* 0x0a3 */ OPT_LOAD_KCL, - /* 0x0a4 */ OPT_KCL, - /* 0x0a5 */ OPT_KCL_FLAG, - /* 0x0a6 */ OPT_KCL_SCRIPT, - /* 0x0a7 */ OPT_TRI_AREA, - /* 0x0a8 */ OPT_TRI_HEIGHT, - /* 0x0a9 */ OPT_FLAG_FILE, - /* 0x0aa */ OPT_XTRIDATA, - /* 0x0ab */ OPT_KMP, - /* 0x0ac */ OPT_SPEED_MOD, - /* 0x0ad */ OPT_KTPT2, - /* 0x0ae */ OPT_TFORM_KMP, - /* 0x0af */ OPT_REPAIR_XPF, - /* 0x0b0 */ OPT_GAMEMODES, - /* 0x0b1 */ OPT_ROUND, - /* 0x0b2 */ OPT_EPSILON, - /* 0x0b3 */ OPT_DIFF, - /* 0x0b4 */ OPT_NO_ECHO, - /* 0x0b5 */ OPT_UTF_8, - /* 0x0b6 */ OPT_NO_UTF_8, - /* 0x0b7 */ OPT_FORCE, - /* 0x0b8 */ OPT_REPAIR_MAGICS, - /* 0x0b9 */ OPT_TINY, - /* 0x0ba */ OPT_OLD, - /* 0x0bb */ OPT_STD, - /* 0x0bc */ OPT_NEW, - /* 0x0bd */ OPT_EXTRACT, - /* 0x0be */ OPT_NUMBER, - /* 0x0bf */ OPT_SECTIONS, - /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_SCALE, + /* 0x08c */ OPT_SHIFT, + /* 0x08d */ OPT_XSS, + /* 0x08e */ OPT_YSS, + /* 0x08f */ OPT_ZSS, + /* 0x090 */ OPT_ROT, + /* 0x091 */ OPT_XROT, + /* 0x092 */ OPT_YROT, + /* 0x093 */ OPT_ZROT, + /* 0x094 */ OPT_YPOS, + /* 0x095 */ OPT_TRANSLATE, + /* 0x096 */ OPT_NULL, + /* 0x097 */ OPT_NEXT, + /* 0x098 */ OPT_ASCALE, + /* 0x099 */ OPT_AROT, + /* 0x09a */ OPT_TFORM_SCRIPT, + /* 0x09b */ OPT_RM_GOBJ, + /* 0x09c */ OPT_BATTLE, + /* 0x09d */ OPT_EXPORT_FLAGS, + /* 0x09e */ OPT_ROUTE_OPTIONS, + /* 0x09f */ OPT_WIM0, + /* 0x0a0 */ OPT_SLOT, + /* 0x0a1 */ OPT_POS_MODE, + /* 0x0a2 */ OPT_POS_FILE, + /* 0x0a3 */ OPT_PNG, + /* 0x0a4 */ OPT_LOAD_KCL, + /* 0x0a5 */ OPT_KCL, + /* 0x0a6 */ OPT_KCL_FLAG, + /* 0x0a7 */ OPT_KCL_SCRIPT, + /* 0x0a8 */ OPT_TRI_AREA, + /* 0x0a9 */ OPT_TRI_HEIGHT, + /* 0x0aa */ OPT_FLAG_FILE, + /* 0x0ab */ OPT_XTRIDATA, + /* 0x0ac */ OPT_KMP, + /* 0x0ad */ OPT_SPEED_MOD, + /* 0x0ae */ OPT_KTPT2, + /* 0x0af */ OPT_TFORM_KMP, + /* 0x0b0 */ OPT_REPAIR_XPF, + /* 0x0b1 */ OPT_GAMEMODES, + /* 0x0b2 */ OPT_ROUND, + /* 0x0b3 */ OPT_EPSILON, + /* 0x0b4 */ OPT_DIFF, + /* 0x0b5 */ OPT_NO_ECHO, + /* 0x0b6 */ OPT_UTF_8, + /* 0x0b7 */ OPT_NO_UTF_8, + /* 0x0b8 */ OPT_FORCE, + /* 0x0b9 */ OPT_REPAIR_MAGICS, + /* 0x0ba */ OPT_TINY, + /* 0x0bb */ OPT_OLD, + /* 0x0bc */ OPT_STD, + /* 0x0bd */ OPT_NEW, + /* 0x0be */ OPT_EXTRACT, + /* 0x0bf */ OPT_NUMBER, + /* 0x0c0 */ OPT_SECTIONS, + /* 0x0c1 */ 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, /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1582,6 +1593,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1628,6 +1640,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1789,6 +1802,7 @@ static const InfoOption_t * option_tab_cmd_STARTPOS[] = static const InfoOption_t * option_tab_cmd_OBJECTS[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_NO_HEADER, &option_cmd_OBJECTS_BRIEF, &option_cmd_OBJECTS_LONG, @@ -2129,7 +2143,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KMP Tool : Analyze, modify, export and create (compile) KMP" " files.", 0, - 33, + 34, option_tab_tool, 0 }, @@ -2167,7 +2181,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, @@ -2395,7 +2409,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " object and file database. An online query is also available:" " https://szs.wiimm.de/cgi/mkw/object", 0, - 4, + 5, option_tab_cmd_OBJECTS, option_allowed_cmd_OBJECTS }, diff --git a/project/src/ui/ui-wkmpt.h b/project/src/ui/ui-wkmpt.h index 34468b7..2b8541d 100644 --- a/project/src/ui/ui-wkmpt.h +++ b/project/src/ui/ui-wkmpt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -115,6 +115,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -152,7 +153,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 91 + OPT__N_TOTAL // == 92 } enumOptions; @@ -449,6 +450,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -523,7 +525,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wkmpt; diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c index e74581c..309da13 100644 --- a/project/src/ui/ui-wlect.c +++ b/project/src/ui/ui-wlect.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -407,6 +407,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -533,6 +540,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " all --lt-* options." }, + { OPT_LEX_RM_FEAT, false, true, false, false, false, 0, "rm-features", + 0, + "Remove LEX setion FEA0 (features) if exists. It is executed after" + " --lex-purge. --lex-rm-features is an alternative name." + }, + { OPT_TEST, false, false, false, false, true, 't', "test", 0, "Run in test mode, modify nothing.\n" @@ -585,7 +598,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 == 76 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 78 }; @@ -742,6 +755,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -791,6 +806,10 @@ static const struct option OptionLong[] = { "ltrandom", 1, 0, GO_LT_RANDOM }, { "lex-purge", 0, 0, GO_LEX_PURGE }, { "lexpurge", 0, 0, GO_LEX_PURGE }, + { "rm-features", 0, 0, GO_LEX_RM_FEAT }, + { "rmfeatures", 0, 0, GO_LEX_RM_FEAT }, + { "lex-rm-features", 0, 0, GO_LEX_RM_FEAT }, + { "lexrmfeatures", 0, 0, GO_LEX_RM_FEAT }, { "test", 0, 0, 't' }, { "force", 0, 0, GO_FORCE }, { "repair-magics", 2, 0, GO_REPAIR_MAGICS }, @@ -913,63 +932,66 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_ROUND, - /* 0x08b */ OPT_NO_ECHO, - /* 0x08c */ OPT_UTF_8, - /* 0x08d */ OPT_NO_UTF_8, - /* 0x08e */ OPT_LT_CLEAR, - /* 0x08f */ OPT_LT_ONLINE, - /* 0x090 */ OPT_LT_N_PLAYERS, - /* 0x091 */ OPT_LT_COND_BIT, - /* 0x092 */ OPT_LT_GAME_MODE, - /* 0x093 */ OPT_LT_ENGINE, - /* 0x094 */ OPT_LT_RANDOM, - /* 0x095 */ OPT_LEX_PURGE, - /* 0x096 */ OPT_FORCE, - /* 0x097 */ OPT_REPAIR_MAGICS, - /* 0x098 */ OPT_OLD, - /* 0x099 */ OPT_STD, - /* 0x09a */ OPT_NEW, - /* 0x09b */ OPT_EXTRACT, - /* 0x09c */ OPT_LE_DEFINE, - /* 0x09d */ OPT_LPAR, - /* 0x09e */ OPT_ALIAS, - /* 0x09f */ OPT_ENGINE, - /* 0x0a0 */ OPT_200CC, - /* 0x0a1 */ OPT_PERFMON, - /* 0x0a2 */ OPT_CUSTOM_TT, - /* 0x0a3 */ OPT_XPFLAGS, - /* 0x0a4 */ OPT_SPEEDOMETER, - /* 0x0a5 */ OPT_RESERVED_1B9, - /* 0x0a6 */ OPT_RESERVED_1BA, - /* 0x0a7 */ OPT_RESERVED_1BB, - /* 0x0a8 */ OPT_TRACK_DIR, - /* 0x0a9 */ OPT_COPY_TRACKS, - /* 0x0aa */ OPT_MOVE_TRACKS, - /* 0x0ab */ OPT_MOVE1_TRACKS, - /* 0x0ac */ OPT_LINK_TRACKS, - /* 0x0ad */ OPT_LOAD_BMG, - /* 0x0ae */ OPT_PATCH_BMG, - /* 0x0af */ OPT_MACRO_BMG, - /* 0x0b0 */ OPT_PATCH_NAMES, - /* 0x0b1 */ OPT_ORDER_BY, - /* 0x0b2 */ OPT_ORDER_ALL, - /* 0x0b3 */ OPT_NUMBER, - /* 0x0b4 */ OPT_SECTIONS, - /* 0x0b5 */ 0,0,0,0, 0,0,0,0, 0,0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_ROUND, + /* 0x08c */ OPT_NO_ECHO, + /* 0x08d */ OPT_UTF_8, + /* 0x08e */ OPT_NO_UTF_8, + /* 0x08f */ OPT_LT_CLEAR, + /* 0x090 */ OPT_LT_ONLINE, + /* 0x091 */ OPT_LT_N_PLAYERS, + /* 0x092 */ OPT_LT_COND_BIT, + /* 0x093 */ OPT_LT_GAME_MODE, + /* 0x094 */ OPT_LT_ENGINE, + /* 0x095 */ OPT_LT_RANDOM, + /* 0x096 */ OPT_LEX_PURGE, + /* 0x097 */ OPT_LEX_RM_FEAT, + /* 0x098 */ OPT_FORCE, + /* 0x099 */ OPT_REPAIR_MAGICS, + /* 0x09a */ OPT_OLD, + /* 0x09b */ OPT_STD, + /* 0x09c */ OPT_NEW, + /* 0x09d */ OPT_EXTRACT, + /* 0x09e */ OPT_LE_DEFINE, + /* 0x09f */ OPT_LPAR, + /* 0x0a0 */ OPT_ALIAS, + /* 0x0a1 */ OPT_ENGINE, + /* 0x0a2 */ OPT_200CC, + /* 0x0a3 */ OPT_PERFMON, + /* 0x0a4 */ OPT_CUSTOM_TT, + /* 0x0a5 */ OPT_XPFLAGS, + /* 0x0a6 */ OPT_SPEEDOMETER, + /* 0x0a7 */ OPT_RESERVED_1B9, + /* 0x0a8 */ OPT_RESERVED_1BA, + /* 0x0a9 */ OPT_RESERVED_1BB, + /* 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, /* 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, /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1129,6 +1151,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1170,6 +1193,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1508,7 +1532,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, - 25, + 26, option_tab_tool, 0 }, @@ -1546,7 +1570,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wlect.h b/project/src/ui/ui-wlect.h index a170a51..f6a6d1e 100644 --- a/project/src/ui/ui-wlect.h +++ b/project/src/ui/ui-wlect.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -111,6 +111,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -129,6 +130,7 @@ typedef enum enumOptions OPT_LT_ENGINE, OPT_LT_RANDOM, OPT_LEX_PURGE, + OPT_LEX_RM_FEAT, OPT_TEST, OPT_FORCE, OPT_REPAIR_MAGICS, @@ -137,7 +139,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 76 + OPT__N_TOTAL // == 78 } enumOptions; @@ -394,6 +396,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -412,6 +415,7 @@ typedef enum enumGetOpt GO_LT_ENGINE, GO_LT_RANDOM, GO_LEX_PURGE, + GO_LEX_RM_FEAT, GO_FORCE, GO_REPAIR_MAGICS, GO_OLD, @@ -457,7 +461,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wlect; diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c index 15be6fc..ed922c2 100644 --- a/project/src/ui/ui-wmdlt.c +++ b/project/src/ui/ui-wmdlt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -359,6 +359,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -546,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 == 63 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 64 }; @@ -700,6 +707,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -832,42 +841,43 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_MDL, - /* 0x08b */ OPT_SCALE, - /* 0x08c */ OPT_SHIFT, - /* 0x08d */ OPT_XSS, - /* 0x08e */ OPT_YSS, - /* 0x08f */ OPT_ZSS, - /* 0x090 */ OPT_ROT, - /* 0x091 */ OPT_XROT, - /* 0x092 */ OPT_YROT, - /* 0x093 */ OPT_ZROT, - /* 0x094 */ OPT_TRANSLATE, - /* 0x095 */ OPT_NULL, - /* 0x096 */ OPT_NEXT, - /* 0x097 */ OPT_ASCALE, - /* 0x098 */ OPT_AROT, - /* 0x099 */ OPT_TFORM_SCRIPT, - /* 0x09a */ OPT_ROUND, - /* 0x09b */ OPT_NO_ECHO, - /* 0x09c */ OPT_UTF_8, - /* 0x09d */ OPT_NO_UTF_8, - /* 0x09e */ OPT_FORCE, - /* 0x09f */ OPT_REPAIR_MAGICS, - /* 0x0a0 */ OPT_TINY, - /* 0x0a1 */ OPT_OLD, - /* 0x0a2 */ OPT_STD, - /* 0x0a3 */ OPT_NEW, - /* 0x0a4 */ OPT_EXTRACT, - /* 0x0a5 */ OPT_NUMBER, - /* 0x0a6 */ OPT_SECTIONS, - /* 0x0a7 */ 0,0,0,0, 0,0,0,0, 0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_MDL, + /* 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_ROUND, + /* 0x09c */ OPT_NO_ECHO, + /* 0x09d */ OPT_UTF_8, + /* 0x09e */ OPT_NO_UTF_8, + /* 0x09f */ OPT_FORCE, + /* 0x0a0 */ OPT_REPAIR_MAGICS, + /* 0x0a1 */ OPT_TINY, + /* 0x0a2 */ OPT_OLD, + /* 0x0a3 */ OPT_STD, + /* 0x0a4 */ OPT_NEW, + /* 0x0a5 */ OPT_EXTRACT, + /* 0x0a6 */ OPT_NUMBER, + /* 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, @@ -875,7 +885,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1017,6 +1028,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1052,6 +1064,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1385,7 +1398,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, - 22, + 23, option_tab_tool, 0 }, @@ -1423,7 +1436,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wmdlt.h b/project/src/ui/ui-wmdlt.h index 7bca204..5eda1ff 100644 --- a/project/src/ui/ui-wmdlt.h +++ b/project/src/ui/ui-wmdlt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -99,6 +99,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -124,7 +125,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 63 + OPT__N_TOTAL // == 64 } enumOptions; @@ -355,6 +356,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -404,7 +406,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wmdlt; diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c index 4d27f28..8078f4e 100644 --- a/project/src/ui/ui-wpatt.c +++ b/project/src/ui/ui-wpatt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -201,6 +201,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -377,7 +384,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 == 47 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 48 }; @@ -497,6 +504,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -611,26 +620,27 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_ROUND, - /* 0x08b */ OPT_NO_ECHO, - /* 0x08c */ OPT_PAT, - /* 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_SECTIONS, - /* 0x097 */ 0,0,0,0, 0,0,0,0, 0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_ROUND, + /* 0x08c */ OPT_NO_ECHO, + /* 0x08d */ OPT_PAT, + /* 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_SECTIONS, + /* 0x098 */ 0,0,0,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, @@ -639,7 +649,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 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, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -741,6 +752,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -775,6 +787,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -934,7 +947,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, - 21, + 22, option_tab_tool, 0 }, @@ -972,7 +985,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wpatt.h b/project/src/ui/ui-wpatt.h index 89befd5..59b7c5f 100644 --- a/project/src/ui/ui-wpatt.h +++ b/project/src/ui/ui-wpatt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -84,6 +84,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -108,7 +109,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 47 + OPT__N_TOTAL // == 48 } enumOptions; @@ -278,6 +279,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -311,7 +313,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wpatt; diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c index 1f4f80b..3796b3b 100644 --- a/project/src/ui/ui-wstrt.c +++ b/project/src/ui/ui-wstrt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -508,6 +508,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -833,7 +840,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " directory." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 111 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 112 }; @@ -1001,6 +1008,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -1206,96 +1215,98 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_VS_REGION, - /* 0x08b */ OPT_BT_REGION, - /* 0x08c */ OPT_ALL_RANKS, - /* 0x08d */ OPT_POINTS, - /* 0x08e */ OPT_CHEAT, - /* 0x08f */ OPT_HTTPS, - /* 0x090 */ OPT_DOMAIN, - /* 0x091 */ OPT_WIIMMFI, - /* 0x092 */ OPT_TWIIMMFI, - /* 0x093 */ OPT_WC24, - /* 0x094 */ OPT_WCODE, - /* 0x095 */ OPT_ADD_WCODE, - /* 0x096 */ OPT_PB_MODE, - /* 0x097 */ OPT_PATCHED_BY, - /* 0x098 */ OPT_VS, - /* 0x099 */ OPT_VS2, - /* 0x09a */ OPT_BT, - /* 0x09b */ OPT_BT2, - /* 0x09c */ OPT_CANNON, - /* 0x09d */ OPT_MENO, - /* 0x09e */ OPT_UTF_8, - /* 0x09f */ OPT_NO_UTF_8, - /* 0x0a0 */ OPT_FORCE, - /* 0x0a1 */ OPT_REPAIR_MAGICS, - /* 0x0a2 */ OPT_OLD, - /* 0x0a3 */ OPT_STD, - /* 0x0a4 */ OPT_NEW, - /* 0x0a5 */ OPT_EXTRACT, - /* 0x0a6 */ OPT_NUMBER, - /* 0x0a7 */ OPT_CLEAN_DOL, - /* 0x0a8 */ OPT_ADD_LECODE, - /* 0x0a9 */ OPT_ADD_CTCODE, - /* 0x0aa */ OPT_CT_DIR, - /* 0x0ab */ OPT_MOVE_D8, - /* 0x0ac */ OPT_ADD_SECTION, - /* 0x0ad */ OPT_FULL_GCH, - /* 0x0ae */ OPT_GCT_NO_SEP, - /* 0x0af */ OPT_GCT_SEP, - /* 0x0b0 */ OPT_GCT_ASM_SEP, - /* 0x0b1 */ OPT_GCT_LIST, - /* 0x0b2 */ OPT_GCT_MOVE, - /* 0x0b3 */ OPT_GCT_ADDR, - /* 0x0b4 */ OPT_GCT_SPACE, - /* 0x0b5 */ OPT_ALLOW_USER_GCH, - /* 0x0b6 */ OPT_CREATE_SECT, - /* 0x0b7 */ OPT_WPF, - /* 0x0b8 */ OPT_SECTIONS, - /* 0x0b9 */ OPT_VADDR, - /* 0x0ba */ OPT_FADDR, - /* 0x0bb */ OPT_SNAME, - /* 0x0bc */ OPT_INT1, - /* 0x0bd */ OPT_INT2, - /* 0x0be */ OPT_INT3, - /* 0x0bf */ OPT_INT4, - /* 0x0c0 */ OPT_INT5, - /* 0x0c1 */ OPT_INT6, - /* 0x0c2 */ OPT_INT7, - /* 0x0c3 */ OPT_INT8, - /* 0x0c4 */ OPT_FLOAT, - /* 0x0c5 */ OPT_DOUBLE, - /* 0x0c6 */ OPT_LE, - /* 0x0c7 */ OPT_BE, - /* 0x0c8 */ OPT_ZEROS, - /* 0x0c9 */ OPT_HEX, - /* 0x0ca */ OPT_DEC, - /* 0x0cb */ OPT_C_SYNTAX, - /* 0x0cc */ OPT_ADDR, - /* 0x0cd */ OPT_ALIGN, - /* 0x0ce */ OPT_TRIGGER, - /* 0x0cf */ OPT_NO_ADDR, - /* 0x0d0 */ OPT_NO_NUMBERS, - /* 0x0d1 */ OPT_NO_TEXT, - /* 0x0d2 */ OPT_FORMAT, - /* 0x0d3 */ OPT_NO_NULL, - /* 0x0d4 */ OPT_NARROW, - /* 0x0d5 */ OPT_SMALL, - /* 0x0d6 */ OPT_WIDE, - /* 0x0d7 */ OPT_BYTES, - /* 0x0d8 */ 0,0,0,0, 0,0,0,0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_VS_REGION, + /* 0x08c */ OPT_BT_REGION, + /* 0x08d */ OPT_ALL_RANKS, + /* 0x08e */ OPT_POINTS, + /* 0x08f */ OPT_CHEAT, + /* 0x090 */ OPT_HTTPS, + /* 0x091 */ OPT_DOMAIN, + /* 0x092 */ OPT_WIIMMFI, + /* 0x093 */ OPT_TWIIMMFI, + /* 0x094 */ OPT_WC24, + /* 0x095 */ OPT_WCODE, + /* 0x096 */ OPT_ADD_WCODE, + /* 0x097 */ OPT_PB_MODE, + /* 0x098 */ OPT_PATCHED_BY, + /* 0x099 */ OPT_VS, + /* 0x09a */ OPT_VS2, + /* 0x09b */ OPT_BT, + /* 0x09c */ OPT_BT2, + /* 0x09d */ OPT_CANNON, + /* 0x09e */ OPT_MENO, + /* 0x09f */ OPT_UTF_8, + /* 0x0a0 */ OPT_NO_UTF_8, + /* 0x0a1 */ OPT_FORCE, + /* 0x0a2 */ OPT_REPAIR_MAGICS, + /* 0x0a3 */ OPT_OLD, + /* 0x0a4 */ OPT_STD, + /* 0x0a5 */ OPT_NEW, + /* 0x0a6 */ OPT_EXTRACT, + /* 0x0a7 */ OPT_NUMBER, + /* 0x0a8 */ OPT_CLEAN_DOL, + /* 0x0a9 */ OPT_ADD_LECODE, + /* 0x0aa */ OPT_ADD_CTCODE, + /* 0x0ab */ OPT_CT_DIR, + /* 0x0ac */ OPT_MOVE_D8, + /* 0x0ad */ OPT_ADD_SECTION, + /* 0x0ae */ OPT_FULL_GCH, + /* 0x0af */ OPT_GCT_NO_SEP, + /* 0x0b0 */ OPT_GCT_SEP, + /* 0x0b1 */ OPT_GCT_ASM_SEP, + /* 0x0b2 */ OPT_GCT_LIST, + /* 0x0b3 */ OPT_GCT_MOVE, + /* 0x0b4 */ OPT_GCT_ADDR, + /* 0x0b5 */ OPT_GCT_SPACE, + /* 0x0b6 */ OPT_ALLOW_USER_GCH, + /* 0x0b7 */ OPT_CREATE_SECT, + /* 0x0b8 */ OPT_WPF, + /* 0x0b9 */ OPT_SECTIONS, + /* 0x0ba */ OPT_VADDR, + /* 0x0bb */ OPT_FADDR, + /* 0x0bc */ OPT_SNAME, + /* 0x0bd */ OPT_INT1, + /* 0x0be */ OPT_INT2, + /* 0x0bf */ OPT_INT3, + /* 0x0c0 */ OPT_INT4, + /* 0x0c1 */ OPT_INT5, + /* 0x0c2 */ OPT_INT6, + /* 0x0c3 */ OPT_INT7, + /* 0x0c4 */ OPT_INT8, + /* 0x0c5 */ OPT_FLOAT, + /* 0x0c6 */ OPT_DOUBLE, + /* 0x0c7 */ OPT_LE, + /* 0x0c8 */ OPT_BE, + /* 0x0c9 */ OPT_ZEROS, + /* 0x0ca */ OPT_HEX, + /* 0x0cb */ OPT_DEC, + /* 0x0cc */ OPT_C_SYNTAX, + /* 0x0cd */ OPT_ADDR, + /* 0x0ce */ OPT_ALIGN, + /* 0x0cf */ OPT_TRIGGER, + /* 0x0d0 */ OPT_NO_ADDR, + /* 0x0d1 */ OPT_NO_NUMBERS, + /* 0x0d2 */ OPT_NO_TEXT, + /* 0x0d3 */ OPT_FORMAT, + /* 0x0d4 */ OPT_NO_NULL, + /* 0x0d5 */ OPT_NARROW, + /* 0x0d6 */ OPT_SMALL, + /* 0x0d7 */ OPT_WIDE, + /* 0x0d8 */ OPT_BYTES, + /* 0x0d9 */ 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, /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -1464,6 +1475,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -1517,6 +1529,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -1837,7 +1850,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, - 37, + 38, option_tab_tool, 0 }, @@ -1875,7 +1888,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, diff --git a/project/src/ui/ui-wstrt.h b/project/src/ui/ui-wstrt.h index e1a2f2b..21a3b74 100644 --- a/project/src/ui/ui-wstrt.h +++ b/project/src/ui/ui-wstrt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -129,6 +129,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -172,7 +173,7 @@ typedef enum enumOptions OPT_CLEAN_DOL, OPT_CT_DIR, - OPT__N_TOTAL // == 111 + OPT__N_TOTAL // == 112 } enumOptions; @@ -449,6 +450,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -547,7 +549,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wstrt; diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c index d5f36b5..b35a60c 100644 --- a/project/src/ui/ui-wszst.c +++ b/project/src/ui/ui-wszst.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -670,6 +670,25 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " formats." }, + { OPT_PMODES, false, true, false, false, false, 0, "pmodes", + 0, + "--pmodes is an abbreviation for --print-mode. If set, a" + " comma-separated list of letters is added to the end of each feature." + " The letters used are: S (section), V (visual), B (battle), R" + " (racing), T (time trial), L (local=offline) and O (online)." + }, + + { OPT_FMODES, false, true, false, false, false, 0, "fmodes", + "list", + "--fmodes is an abbreviation for --feature-modes and declares an" + " output filter. LIST is a keyword list. The keywords are: SECTION," + " VISUAL, GAMEPLAY, BATTLE, RACING, TIMETRIAL, OFFLINE and ONLINE. A" + " feature is only printed if *all* set keywords match.\n" + " Each keyword can also be used with a minus as prefix to define a" + " second condition. In this case the feature is excluded from printing" + " if *any* set keywords match." + }, + { OPT_ANALYZE, false, true, false, false, true, 0, "analyze", "outfile", "Run in analyze mode and write results to the entered file." @@ -1103,7 +1122,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 == 131 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 133 //----- global options ----- @@ -1147,6 +1166,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " messages and disable the automatic detection of the terminal width." }, + { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", + "maxwidth", + "Define the maximum terminal width (number of columns) for help and" + " some other messages and disable the automatic detection of the" + " terminal width. This option is ignored if --width is set." + }, + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", 0, "Be quiet and print only error messages. Multiple usage is possible." @@ -1279,8 +1305,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " the octree creation. The other allowed keywords are: FAST, NEW," " CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP, G, USEMTL," " CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED, DROP-FIXED," - " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, CONV-FACEUP," - " WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" + " DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL, TINY-0 ..." + " TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kcl for details." }, @@ -1324,7 +1350,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH, FIX-CKNEXT," " FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE, PURGE-GOBJ," " FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ... 9LAPS," - " MAX-LAPS, RM-EMPTY, INPLACE, SILENT and LOG. See" + " MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT and LOG. See" " https://szs.wiimm.de/opt/kmp for details." }, @@ -1488,7 +1514,24 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = 0, "Delete LEX sections without any impact. Delete sub-file course.lex if" " it no longer contains a section. This option is executed after all" - " --lt-* options." + " --lt-* and --lex-* options." + }, + + { OPT_LEX_FEATURES, false, true, false, false, false, 0, "lex-features", + 0, + "Calculate LEX setion FEA0 (features) by analysing the track file. If" + " no features found, delete the section and the possibly empty" + " sub-file course.lex. If features found, then insert the section or" + " update an existing section. If necessary, the sub-file course.lex is" + " created. This option is executed after all --lt-* options and after" + " --lex-purge." + }, + + { OPT_LEX_RM_FEAT, false, true, false, false, false, 0, "lex-rm-features", + 0, + "Remove LEX setion FEA0 (features) if exists and the possibly empty" + " sub-file course.lex. This option is ignored if --lex-features is" + " set. It is executed after all --lt-* options and after --lex-purge." }, { OPT_CACHE, false, false, false, false, false, 0, "cache", @@ -1664,6 +1707,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Shortcut for: '--array --var name'" }, + { OPT_CASE, false, false, false, false, false, 0, "case", + "case", + "CASE is one of LOWER, AUTO (default) or UPPER.If LOWER or UPPER are" + " set, then the lower/upper case of the variable names is adjusted" + " accordingly." + }, + { OPT_OLD, false, true, false, false, false, 0, "OLD", 0, "Developer option: Cancel --NEW and use old implementation if" @@ -1689,7 +1739,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 == 201 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 207 }; @@ -1972,6 +2022,25 @@ static const InfoOption_t option_cmd_ANALYZE_QUIET = "Suppress logging of input and output files." }; +static const InfoOption_t option_cmd_FEATURES_BRIEF = + { OPT_BRIEF, false, false, false, false, false, 'B', "brief", + 0, + "Suppres any comments at all. If set twice, suppress empty lines (for" + " grouping) too. If set three times, omit inactive features (=0) too." + }; + +static const InfoOption_t option_cmd_FEATURES_LONG = + { OPT_LONG, false, false, false, false, false, 'l', "long", + 0, + "Print additnal comments." + }; + +static const InfoOption_t option_cmd_FEATURES_QUIET = + { OPT_QUIET, false, false, false, false, false, 'q', "quiet", + 0, + "Suppress logging of input and output files." + }; + static const InfoOption_t option_cmd_DISTRIBUTION_SOURCE = { OPT_SOURCE, false, false, false, false, false, 's', "source", "path", @@ -2154,6 +2223,7 @@ static const KeywordTab_t CommandTab[] = { CMD_CODE, "_CODE", 0, 0 }, { CMD_RECODE, "_RECODE", 0, 0 }, { CMD_SUBFILE, "_SUBFILE", 0, 0 }, + { CMD_TESTNORM, "_NORM", 0, 0 }, { CMD_LIST, "LIST", "LS", 0 }, { CMD_LIST_L, "LIST-L", "LL", 0 }, { CMD_LIST_L, "LISTL", 0, 0 }, @@ -2180,6 +2250,7 @@ static const KeywordTab_t CommandTab[] = { CMD_SHA1, "SHA1", 0, 0 }, { CMD_ANALYZE, "ANALYZE", "ANA", 0 }, { CMD_ANALYZE, "ANALYSE", 0, 0 }, + { CMD_FEATURES, "FEATURES", 0, 0 }, { CMD_DISTRIBUTION, "DISTRIBUTION", "DIST", 0 }, { CMD_DIFF, "DIFF", "CMP", 0 }, { CMD_CHECK, "CHECK", 0, 0 }, @@ -2232,6 +2303,8 @@ static const struct option OptionLong[] = { "allowall", 0, 0, GO_ALLOW_ALL }, { "compatible", 1, 0, GO_COMPATIBLE }, { "width", 1, 0, GO_WIDTH }, + { "max-width", 1, 0, GO_MAX_WIDTH }, + { "maxwidth", 1, 0, GO_MAX_WIDTH }, { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, @@ -2351,6 +2424,10 @@ static const struct option OptionLong[] = { "ltrandom", 1, 0, GO_LT_RANDOM }, { "lex-purge", 0, 0, GO_LEX_PURGE }, { "lexpurge", 0, 0, GO_LEX_PURGE }, + { "lex-features", 0, 0, GO_LEX_FEATURES }, + { "lexfeatures", 0, 0, GO_LEX_FEATURES }, + { "lex-rm-features", 0, 0, GO_LEX_RM_FEAT }, + { "lexrmfeatures", 0, 0, GO_LEX_RM_FEAT }, { "load-bmg", 1, 0, GO_LOAD_BMG }, { "loadbmg", 1, 0, GO_LOAD_BMG }, { "patch-bmg", 1, 0, GO_PATCH_BMG }, @@ -2439,6 +2516,13 @@ static const struct option OptionLong[] = { "var", 1, 0, GO_VAR }, { "array", 0, 0, GO_ARRAY }, { "avar", 1, 0, GO_AVAR }, + { "case", 1, 0, GO_CASE }, + { "pmodes", 0, 0, GO_PMODES }, + { "print-modes", 0, 0, GO_PMODES }, + { "printmodes", 0, 0, GO_PMODES }, + { "fmodes", 1, 0, GO_FMODES }, + { "feature-modes", 1, 0, GO_FMODES }, + { "featuremodes", 1, 0, GO_FMODES }, { "analyze", 1, 0, GO_ANALYZE }, { "analyse", 1, 0, GO_ANALYZE }, { "analyze-mode", 1, 0, GO_ANALYZE_MODE }, @@ -2627,170 +2711,176 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x081 */ OPT_ALLOW_ALL, /* 0x082 */ OPT_COMPATIBLE, /* 0x083 */ OPT_WIDTH, - /* 0x084 */ OPT_DE, - /* 0x085 */ OPT_COLORS, - /* 0x086 */ OPT_NO_COLORS, - /* 0x087 */ OPT_CT_CODE, - /* 0x088 */ OPT_LE_CODE, - /* 0x089 */ OPT_CHDIR, - /* 0x08a */ OPT_TOUCH, - /* 0x08b */ OPT_AUTO, - /* 0x08c */ OPT_SET_FLAGS, - /* 0x08d */ OPT_SET_SCALE, - /* 0x08e */ OPT_SET_ROT, - /* 0x08f */ OPT_SET_X, - /* 0x090 */ OPT_SET_Y, - /* 0x091 */ OPT_SET_Z, - /* 0x092 */ OPT_XCENTER, - /* 0x093 */ OPT_YCENTER, - /* 0x094 */ OPT_ZCENTER, - /* 0x095 */ OPT_CENTER, - /* 0x096 */ OPT_SCALE, - /* 0x097 */ OPT_SHIFT, - /* 0x098 */ OPT_XSS, - /* 0x099 */ OPT_YSS, - /* 0x09a */ OPT_ZSS, - /* 0x09b */ OPT_ROT, - /* 0x09c */ OPT_XROT, - /* 0x09d */ OPT_YROT, - /* 0x09e */ OPT_ZROT, - /* 0x09f */ OPT_YPOS, - /* 0x0a0 */ OPT_TRANSLATE, - /* 0x0a1 */ OPT_NULL, - /* 0x0a2 */ OPT_NEXT, - /* 0x0a3 */ OPT_ASCALE, - /* 0x0a4 */ OPT_AROT, - /* 0x0a5 */ OPT_TFORM_SCRIPT, - /* 0x0a6 */ OPT_MINIMAP, - /* 0x0a7 */ OPT_RM_GOBJ, - /* 0x0a8 */ OPT_BATTLE, - /* 0x0a9 */ OPT_EXPORT_FLAGS, - /* 0x0aa */ OPT_ROUTE_OPTIONS, - /* 0x0ab */ OPT_WIM0, - /* 0x0ac */ OPT_SLOT, - /* 0x0ad */ OPT_LOAD_KCL, - /* 0x0ae */ OPT_KCL, - /* 0x0af */ OPT_KCL_FLAG, - /* 0x0b0 */ OPT_KCL_SCRIPT, - /* 0x0b1 */ OPT_TRI_AREA, - /* 0x0b2 */ OPT_TRI_HEIGHT, - /* 0x0b3 */ OPT_FLAG_FILE, - /* 0x0b4 */ OPT_XTRIDATA, - /* 0x0b5 */ OPT_KMP, - /* 0x0b6 */ OPT_SPEED_MOD, - /* 0x0b7 */ OPT_KTPT2, - /* 0x0b8 */ OPT_TFORM_KMP, - /* 0x0b9 */ OPT_REPAIR_XPF, - /* 0x0ba */ OPT_GAMEMODES, - /* 0x0bb */ OPT_MDL, - /* 0x0bc */ OPT_PAT, - /* 0x0bd */ OPT_PATCH_FILE, - /* 0x0be */ OPT_KMG_LIMIT, - /* 0x0bf */ OPT_KMG_COPY, - /* 0x0c0 */ OPT_LT_CLEAR, - /* 0x0c1 */ OPT_LT_ONLINE, - /* 0x0c2 */ OPT_LT_N_PLAYERS, - /* 0x0c3 */ OPT_LT_COND_BIT, - /* 0x0c4 */ OPT_LT_GAME_MODE, - /* 0x0c5 */ OPT_LT_ENGINE, - /* 0x0c6 */ OPT_LT_RANDOM, - /* 0x0c7 */ OPT_LEX_PURGE, - /* 0x0c8 */ OPT_LOAD_BMG, - /* 0x0c9 */ OPT_PATCH_BMG, - /* 0x0ca */ OPT_MACRO_BMG, - /* 0x0cb */ OPT_FILTER_BMG, - /* 0x0cc */ OPT_CACHE, - /* 0x0cd */ OPT_CNAME, - /* 0x0ce */ OPT_ID, - /* 0x0cf */ OPT_BASE64, - /* 0x0d0 */ OPT_DB64, - /* 0x0d1 */ OPT_CODING, - /* 0x0d2 */ OPT_VERIFY, - /* 0x0d3 */ OPT_ROUND, - /* 0x0d4 */ OPT_PIPE, - /* 0x0d5 */ OPT_DELTA, - /* 0x0d6 */ OPT_DIFF, - /* 0x0d7 */ OPT_EPSILON, - /* 0x0d8 */ OPT_BMG_ENDIAN, - /* 0x0d9 */ OPT_BMG_ENCODING, - /* 0x0da */ OPT_BMG_INF_SIZE, - /* 0x0db */ OPT_BMG_MID, - /* 0x0dc */ OPT_FORCE_ATTRIB, - /* 0x0dd */ OPT_DEF_ATTRIB, - /* 0x0de */ OPT_NO_ATTRIB, - /* 0x0df */ OPT_X_ESCAPES, - /* 0x0e0 */ OPT_OLD_ESCAPES, - /* 0x0e1 */ OPT_NO_BMG_COLORS, - /* 0x0e2 */ OPT_BMG_COLORS, - /* 0x0e3 */ OPT_NO_BMG_INLINE, - /* 0x0e4 */ OPT_AUTOADD_PATH, - /* 0x0e5 */ OPT_STRIP, - /* 0x0e6 */ OPT_UTF_8, - /* 0x0e7 */ OPT_NO_UTF_8, - /* 0x0e8 */ OPT_FORCE, - /* 0x0e9 */ OPT_REPAIR_MAGICS, - /* 0x0ea */ OPT_TINY, - /* 0x0eb */ OPT_YAZ0, - /* 0x0ec */ OPT_YAZ1, - /* 0x0ed */ OPT_XYZ, - /* 0x0ee */ OPT_BZ, - /* 0x0ef */ OPT_SH, - /* 0x0f0 */ OPT_BASH, - /* 0x0f1 */ OPT_JSON, - /* 0x0f2 */ OPT_PHP, - /* 0x0f3 */ OPT_MAKEDOC, - /* 0x0f4 */ OPT_VAR, - /* 0x0f5 */ OPT_ARRAY, - /* 0x0f6 */ OPT_AVAR, - /* 0x0f7 */ OPT_ANALYZE, - /* 0x0f8 */ OPT_ANALYZE_MODE, - /* 0x0f9 */ OPT_OLD, - /* 0x0fa */ OPT_STD, - /* 0x0fb */ OPT_NEW, - /* 0x0fc */ OPT_EXTRACT, - /* 0x0fd */ OPT_NUMBER, - /* 0x0fe */ OPT_REMOVE_SRC, - /* 0x0ff */ OPT_IGNORE_SETUP, - /* 0x100 */ OPT_PURGE, - /* 0x101 */ OPT_ALIGN_U8, - /* 0x102 */ OPT_ALIGN_PACK, - /* 0x103 */ OPT_ALIGN_BRRES, - /* 0x104 */ OPT_ALIGN_BREFF, - /* 0x105 */ OPT_ALIGN_BREFT, - /* 0x106 */ OPT_ALIGN, - /* 0x107 */ OPT_ENCODE_ALL, - /* 0x108 */ OPT_ENCODE_IMG, - /* 0x109 */ OPT_NO_ENCODE, - /* 0x10a */ OPT_NO_RECURSE, - /* 0x10b */ OPT_AUTO_ADD, - /* 0x10c */ OPT_NO_ECHO, - /* 0x10d */ OPT_PT_DIR, - /* 0x10e */ OPT_RM_AIPARAM, - /* 0x10f */ OPT_U8, - /* 0x110 */ OPT_SZS, - /* 0x111 */ OPT_WU8, - /* 0x112 */ OPT_XWU8, - /* 0x113 */ OPT_WBZ, - /* 0x114 */ OPT_PACK, - /* 0x115 */ OPT_BRRES, - /* 0x116 */ OPT_BREFF, - /* 0x117 */ OPT_BREFT, - /* 0x118 */ OPT_NO_COMPRESS, - /* 0x119 */ OPT_FAST, - /* 0x11a */ OPT_LINKS, - /* 0x11b */ OPT_BASEDIR, - /* 0x11c */ OPT_DECODE, - /* 0x11d */ OPT_MIPMAPS, - /* 0x11e */ OPT_NO_MIPMAPS, - /* 0x11f */ OPT_N_MIPMAPS, - /* 0x120 */ OPT_MAX_MIPMAPS, - /* 0x121 */ OPT_MIPMAP_SIZE, - /* 0x122 */ OPT_FAST_MIPMAPS, - /* 0x123 */ OPT_CMPR_DEFAULT, - /* 0x124 */ OPT_CUT, - /* 0x125 */ OPT_RAW, - /* 0x126 */ OPT_SECTIONS, - /* 0x127 */ 0,0,0,0, 0, + /* 0x084 */ OPT_MAX_WIDTH, + /* 0x085 */ OPT_DE, + /* 0x086 */ OPT_COLORS, + /* 0x087 */ OPT_NO_COLORS, + /* 0x088 */ OPT_CT_CODE, + /* 0x089 */ OPT_LE_CODE, + /* 0x08a */ OPT_CHDIR, + /* 0x08b */ OPT_TOUCH, + /* 0x08c */ OPT_AUTO, + /* 0x08d */ OPT_SET_FLAGS, + /* 0x08e */ OPT_SET_SCALE, + /* 0x08f */ OPT_SET_ROT, + /* 0x090 */ OPT_SET_X, + /* 0x091 */ OPT_SET_Y, + /* 0x092 */ OPT_SET_Z, + /* 0x093 */ OPT_XCENTER, + /* 0x094 */ OPT_YCENTER, + /* 0x095 */ OPT_ZCENTER, + /* 0x096 */ OPT_CENTER, + /* 0x097 */ OPT_SCALE, + /* 0x098 */ OPT_SHIFT, + /* 0x099 */ OPT_XSS, + /* 0x09a */ OPT_YSS, + /* 0x09b */ OPT_ZSS, + /* 0x09c */ OPT_ROT, + /* 0x09d */ OPT_XROT, + /* 0x09e */ OPT_YROT, + /* 0x09f */ OPT_ZROT, + /* 0x0a0 */ OPT_YPOS, + /* 0x0a1 */ OPT_TRANSLATE, + /* 0x0a2 */ OPT_NULL, + /* 0x0a3 */ OPT_NEXT, + /* 0x0a4 */ OPT_ASCALE, + /* 0x0a5 */ OPT_AROT, + /* 0x0a6 */ OPT_TFORM_SCRIPT, + /* 0x0a7 */ OPT_MINIMAP, + /* 0x0a8 */ OPT_RM_GOBJ, + /* 0x0a9 */ OPT_BATTLE, + /* 0x0aa */ OPT_EXPORT_FLAGS, + /* 0x0ab */ OPT_ROUTE_OPTIONS, + /* 0x0ac */ OPT_WIM0, + /* 0x0ad */ OPT_SLOT, + /* 0x0ae */ OPT_LOAD_KCL, + /* 0x0af */ OPT_KCL, + /* 0x0b0 */ OPT_KCL_FLAG, + /* 0x0b1 */ OPT_KCL_SCRIPT, + /* 0x0b2 */ OPT_TRI_AREA, + /* 0x0b3 */ OPT_TRI_HEIGHT, + /* 0x0b4 */ OPT_FLAG_FILE, + /* 0x0b5 */ OPT_XTRIDATA, + /* 0x0b6 */ OPT_KMP, + /* 0x0b7 */ OPT_SPEED_MOD, + /* 0x0b8 */ OPT_KTPT2, + /* 0x0b9 */ OPT_TFORM_KMP, + /* 0x0ba */ OPT_REPAIR_XPF, + /* 0x0bb */ OPT_GAMEMODES, + /* 0x0bc */ OPT_MDL, + /* 0x0bd */ OPT_PAT, + /* 0x0be */ OPT_PATCH_FILE, + /* 0x0bf */ OPT_KMG_LIMIT, + /* 0x0c0 */ OPT_KMG_COPY, + /* 0x0c1 */ OPT_LT_CLEAR, + /* 0x0c2 */ OPT_LT_ONLINE, + /* 0x0c3 */ OPT_LT_N_PLAYERS, + /* 0x0c4 */ OPT_LT_COND_BIT, + /* 0x0c5 */ OPT_LT_GAME_MODE, + /* 0x0c6 */ OPT_LT_ENGINE, + /* 0x0c7 */ OPT_LT_RANDOM, + /* 0x0c8 */ OPT_LEX_PURGE, + /* 0x0c9 */ OPT_LEX_FEATURES, + /* 0x0ca */ OPT_LEX_RM_FEAT, + /* 0x0cb */ OPT_LOAD_BMG, + /* 0x0cc */ OPT_PATCH_BMG, + /* 0x0cd */ OPT_MACRO_BMG, + /* 0x0ce */ OPT_FILTER_BMG, + /* 0x0cf */ OPT_CACHE, + /* 0x0d0 */ OPT_CNAME, + /* 0x0d1 */ OPT_ID, + /* 0x0d2 */ OPT_BASE64, + /* 0x0d3 */ OPT_DB64, + /* 0x0d4 */ OPT_CODING, + /* 0x0d5 */ OPT_VERIFY, + /* 0x0d6 */ OPT_ROUND, + /* 0x0d7 */ OPT_PIPE, + /* 0x0d8 */ OPT_DELTA, + /* 0x0d9 */ OPT_DIFF, + /* 0x0da */ OPT_EPSILON, + /* 0x0db */ OPT_BMG_ENDIAN, + /* 0x0dc */ OPT_BMG_ENCODING, + /* 0x0dd */ OPT_BMG_INF_SIZE, + /* 0x0de */ OPT_BMG_MID, + /* 0x0df */ OPT_FORCE_ATTRIB, + /* 0x0e0 */ OPT_DEF_ATTRIB, + /* 0x0e1 */ OPT_NO_ATTRIB, + /* 0x0e2 */ OPT_X_ESCAPES, + /* 0x0e3 */ OPT_OLD_ESCAPES, + /* 0x0e4 */ OPT_NO_BMG_COLORS, + /* 0x0e5 */ OPT_BMG_COLORS, + /* 0x0e6 */ OPT_NO_BMG_INLINE, + /* 0x0e7 */ OPT_AUTOADD_PATH, + /* 0x0e8 */ OPT_STRIP, + /* 0x0e9 */ OPT_UTF_8, + /* 0x0ea */ OPT_NO_UTF_8, + /* 0x0eb */ OPT_FORCE, + /* 0x0ec */ OPT_REPAIR_MAGICS, + /* 0x0ed */ OPT_TINY, + /* 0x0ee */ OPT_YAZ0, + /* 0x0ef */ OPT_YAZ1, + /* 0x0f0 */ OPT_XYZ, + /* 0x0f1 */ OPT_BZ, + /* 0x0f2 */ OPT_SH, + /* 0x0f3 */ OPT_BASH, + /* 0x0f4 */ OPT_JSON, + /* 0x0f5 */ OPT_PHP, + /* 0x0f6 */ OPT_MAKEDOC, + /* 0x0f7 */ OPT_VAR, + /* 0x0f8 */ OPT_ARRAY, + /* 0x0f9 */ OPT_AVAR, + /* 0x0fa */ OPT_CASE, + /* 0x0fb */ OPT_PMODES, + /* 0x0fc */ OPT_FMODES, + /* 0x0fd */ OPT_ANALYZE, + /* 0x0fe */ OPT_ANALYZE_MODE, + /* 0x0ff */ OPT_OLD, + /* 0x100 */ OPT_STD, + /* 0x101 */ OPT_NEW, + /* 0x102 */ OPT_EXTRACT, + /* 0x103 */ OPT_NUMBER, + /* 0x104 */ OPT_REMOVE_SRC, + /* 0x105 */ OPT_IGNORE_SETUP, + /* 0x106 */ OPT_PURGE, + /* 0x107 */ OPT_ALIGN_U8, + /* 0x108 */ OPT_ALIGN_PACK, + /* 0x109 */ OPT_ALIGN_BRRES, + /* 0x10a */ OPT_ALIGN_BREFF, + /* 0x10b */ OPT_ALIGN_BREFT, + /* 0x10c */ OPT_ALIGN, + /* 0x10d */ OPT_ENCODE_ALL, + /* 0x10e */ OPT_ENCODE_IMG, + /* 0x10f */ OPT_NO_ENCODE, + /* 0x110 */ OPT_NO_RECURSE, + /* 0x111 */ OPT_AUTO_ADD, + /* 0x112 */ OPT_NO_ECHO, + /* 0x113 */ OPT_PT_DIR, + /* 0x114 */ OPT_RM_AIPARAM, + /* 0x115 */ OPT_U8, + /* 0x116 */ OPT_SZS, + /* 0x117 */ OPT_WU8, + /* 0x118 */ OPT_XWU8, + /* 0x119 */ OPT_WBZ, + /* 0x11a */ OPT_PACK, + /* 0x11b */ OPT_BRRES, + /* 0x11c */ OPT_BREFF, + /* 0x11d */ OPT_BREFT, + /* 0x11e */ OPT_NO_COMPRESS, + /* 0x11f */ OPT_FAST, + /* 0x120 */ OPT_LINKS, + /* 0x121 */ OPT_BASEDIR, + /* 0x122 */ OPT_DECODE, + /* 0x123 */ OPT_MIPMAPS, + /* 0x124 */ OPT_NO_MIPMAPS, + /* 0x125 */ OPT_N_MIPMAPS, + /* 0x126 */ OPT_MAX_MIPMAPS, + /* 0x127 */ OPT_MIPMAP_SIZE, + /* 0x128 */ OPT_FAST_MIPMAPS, + /* 0x129 */ OPT_CMPR_DEFAULT, + /* 0x12a */ OPT_CUT, + /* 0x12b */ OPT_RAW, + /* 0x12c */ OPT_SECTIONS, + /* 0x12d */ 0,0,0,0, 0,0,0,0, 0, }; // @@ -2798,652 +2888,670 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[131] = // cmd #1 +static u8 option_allowed_cmd_VERSION[133] = // 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,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,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,1 }; -static u8 option_allowed_cmd_HELP[131] = // cmd #2 +static u8 option_allowed_cmd_HELP[133] = // 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 }; -static u8 option_allowed_cmd_ARGTEST[131] = // cmd #3 +static u8 option_allowed_cmd_ARGTEST[133] = // cmd #3 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 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[131] = // cmd #4 +static u8 option_allowed_cmd_TEST[133] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 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[131] = // cmd #5 +static u8 option_allowed_cmd_COLORS[133] = // cmd #5 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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 }; -static u8 option_allowed_cmd_ERROR[131] = // cmd #6 +static u8 option_allowed_cmd_ERROR[133] = // cmd #6 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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, 1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[131] = // cmd #7 +static u8 option_allowed_cmd_FILETYPE[133] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #8 +static u8 option_allowed_cmd_FILEATTRIB[133] = // 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,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 }; -static u8 option_allowed_cmd_BRSUB[131] = // cmd #9 +static u8 option_allowed_cmd_BRSUB[133] = // 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,0, 0,0,0,0,0, 0,0,0,0,0, - 0,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,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[133] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[133] = // 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,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 }; -static u8 option_allowed_cmd_CALCULATE[131] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[133] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #13 +static u8 option_allowed_cmd_MATRIX[133] = // cmd #13 { 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 }; -static u8 option_allowed_cmd_FLOAT[131] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[133] = // 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,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #15 +static u8 option_allowed_cmd_VR_CALC[133] = // 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,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 }; -static u8 option_allowed_cmd_VR_RACE[131] = // cmd #16 +static u8 option_allowed_cmd_VR_RACE[133] = // 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,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #17 +static u8 option_allowed_cmd_AUTOADD[133] = // cmd #17 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 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,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 }; -static u8 option_allowed_cmd_TRACKS[131] = // cmd #18 +static u8 option_allowed_cmd_TRACKS[133] = // 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,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,1,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 1,0,0 }; -static u8 option_allowed_cmd_SCANCACHE[131] = // cmd #19 +static u8 option_allowed_cmd_SCANCACHE[133] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 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,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #20 +static u8 option_allowed_cmd_EXPORT[133] = // 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,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #21 +static u8 option_allowed_cmd_CODE[133] = // cmd #21 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #22 +static u8 option_allowed_cmd_RECODE[133] = // 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, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #23 +static u8 option_allowed_cmd_SUBFILE[133] = // 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, 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,1,1,1, 1,1,0,1,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 +}; + +static u8 option_allowed_cmd_TESTNORM[133] = // cmd #24 +{ + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #24 +static u8 option_allowed_cmd_LIST[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #25 +static u8 option_allowed_cmd_LIST_L[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #26 +static u8 option_allowed_cmd_LIST_LL[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #27 +static u8 option_allowed_cmd_LIST_LLL[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #28 +static u8 option_allowed_cmd_LIST_A[133] = // 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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #29 +static u8 option_allowed_cmd_LIST_LA[133] = // 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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,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[131] = // cmd #30 +static u8 option_allowed_cmd_NAME_REF[133] = // cmd #31 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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 }; -static u8 option_allowed_cmd_ILIST[131] = // cmd #31 +static u8 option_allowed_cmd_ILIST[133] = // cmd #32 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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,1, 1,1,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[131] = // cmd #32 +static u8 option_allowed_cmd_ILIST_L[133] = // 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,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,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,1, 1,1,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[131] = // cmd #33 +static u8 option_allowed_cmd_ILIST_LL[133] = // cmd #34 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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,1, 1,1,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[131] = // cmd #34 +static u8 option_allowed_cmd_ILIST_A[133] = // 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,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,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,1, 1,1,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[131] = // cmd #35 +static u8 option_allowed_cmd_ILIST_LA[133] = // 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,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,1, 1,1,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[131] = // cmd #36 +static u8 option_allowed_cmd_MEMORY[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,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[131] = // cmd #37 +static u8 option_allowed_cmd_MEMORY_A[133] = // 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,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,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,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[131] = // cmd #38 +static u8 option_allowed_cmd_DUMP[133] = // cmd #39 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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, 1,1,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[131] = // cmd #39 +static u8 option_allowed_cmd_SHA1[133] = // 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,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,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, 1,1,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[131] = // cmd #40 +static u8 option_allowed_cmd_ANALYZE[133] = // cmd #41 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,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,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,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_DISTRIBUTION[131] = // cmd #41 +static u8 option_allowed_cmd_FEATURES[133] = // cmd #42 +{ + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,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,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,0 +}; + +static u8 option_allowed_cmd_DISTRIBUTION[133] = // 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,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,1, 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, 1,1,0,0,0, 0,1,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[131] = // cmd #42 +static u8 option_allowed_cmd_DIFF[133] = // 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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 0,0,0,0,0, 0,0,0,0,1, 1,0,0 }; -static u8 option_allowed_cmd_CHECK[131] = // cmd #43 +static u8 option_allowed_cmd_CHECK[133] = // cmd #45 { 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,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, 1,1,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[131] = // cmd #44 +static u8 option_allowed_cmd_SLOTS[133] = // cmd #46 { 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,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, 1,1,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[131] = // cmd #45 +static u8 option_allowed_cmd_STGI[133] = // 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,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #46 +static u8 option_allowed_cmd_ISARENA[133] = // 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,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,1, 0,0,0,0,0, + 0,0,0,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 }; -static u8 option_allowed_cmd_NORMALIZE[131] = // cmd #47 +static u8 option_allowed_cmd_NORMALIZE[133] = // cmd #49 { 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, 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,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[131] = // cmd #48 +static u8 option_allowed_cmd_PATCH[133] = // cmd #50 { 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, 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,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[131] = // cmd #49 +static u8 option_allowed_cmd_COPY[133] = // 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,0,0,0, 0,0,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,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[131] = // cmd #50 +static u8 option_allowed_cmd_DUPLICATE[133] = // 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,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, 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,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[131] = // cmd #51 +static u8 option_allowed_cmd_MINIMAP[133] = // cmd #53 { 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,1,0,1,1, 0,0,1,1,1, - 1,1,1,0,0, 0,0,1,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,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[131] = // cmd #52 +static u8 option_allowed_cmd_COMPRESS[133] = // cmd #54 { 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, 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,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[131] = // cmd #53 +static u8 option_allowed_cmd_DECOMPRESS[133] = // 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, 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,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[131] = // cmd #54 +static u8 option_allowed_cmd_ENCODE[133] = // 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, 1,1,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, 1,1,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[131] = // cmd #55 +static u8 option_allowed_cmd_CREATE[133] = // 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, 1,1,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, 1,1,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[131] = // cmd #56 +static u8 option_allowed_cmd_UPDATE[133] = // 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,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,1, 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, 1,1,0,0,0, 0,1,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[131] = // cmd #57 +static u8 option_allowed_cmd_EXTRACT[133] = // cmd #59 { 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,1,1,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,1,1,0, 0,0,0,0,1, 1,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[131] = // cmd #58 +static u8 option_allowed_cmd_XDECODE[133] = // 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,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,1,1,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,1,1,0, 0,0,0,0,1, 1,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[131] = // cmd #59 +static u8 option_allowed_cmd_XEXPORT[133] = // 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,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,1,1,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,1,1,0, 0,0,0,0,1, 1,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[131] = // cmd #60 +static u8 option_allowed_cmd_XALL[133] = // 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,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,1,1,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,1,1,0, 0,0,0,0,1, 1,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[131] = // cmd #61 +static u8 option_allowed_cmd_XCOMMON[133] = // cmd #63 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,1,1,1,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,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 }; -static u8 option_allowed_cmd_BINARY[131] = // cmd #62 +static u8 option_allowed_cmd_BINARY[133] = // cmd #64 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,1,1,1,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,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 }; -static u8 option_allowed_cmd_TEXT[131] = // cmd #63 +static u8 option_allowed_cmd_TEXT[133] = // cmd #65 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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, 1,1,1,1,1, 0,1,1,1,1, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, - 0,0,0,0,0, 0,0,0,0,0, 0 + 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,1,1,1, 1,1,0,1,1, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_CAT[131] = // cmd #64 +static u8 option_allowed_cmd_CAT[133] = // cmd #66 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,1, 0,0,0,0,0, - 0,0,0,0,0, 0,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 + 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,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,1,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_BMG[131] = // cmd #65 +static u8 option_allowed_cmd_BMG[133] = // cmd #67 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,1, 0,0,0,0,0, + 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,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[131] = // cmd #66 +static u8 option_allowed_cmd_KCL[133] = // 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,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,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,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[131] = // cmd #67 +static u8 option_allowed_cmd_KMP[133] = // cmd #69 { 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,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,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,1,0,0,0, 0,0,0,0,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[131] = // cmd #68 +static u8 option_allowed_cmd_LEX[133] = // 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,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,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,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #69 +static u8 option_allowed_cmd_INFO[133] = // cmd #71 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,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,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 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[131] = // cmd #70 +static u8 option_allowed_cmd_GHOST[133] = // cmd #72 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,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,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,0,0,0,0, 0,0,0,0,0, 0,0,0 }; -static u8 option_allowed_cmd_YAZDUMP[131] = // cmd #71 +static u8 option_allowed_cmd_YAZDUMP[133] = // cmd #73 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,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,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 }; -static u8 option_allowed_cmd_VEHICLE[131] = // cmd #72 +static u8 option_allowed_cmd_VEHICLE[133] = // cmd #74 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,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,0, 0,0,0,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,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0 }; @@ -3460,6 +3568,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_ALLOW_ALL, OptionInfo + OPT_COMPATIBLE, OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, @@ -3523,6 +3632,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_VAR, OptionInfo + OPT_ARRAY, OptionInfo + OPT_AVAR, + OptionInfo + OPT_CASE, 0 }; @@ -3539,6 +3649,7 @@ static const InfoOption_t * option_tab_cmd_VERSION[] = static const InfoOption_t * option_tab_cmd_HELP[] = { OptionInfo + OPT_WIDTH, + OptionInfo + OPT_MAX_WIDTH, 0 }; @@ -3743,6 +3854,12 @@ static const InfoOption_t * option_tab_cmd_SUBFILE[] = 0 }; +static const InfoOption_t * option_tab_cmd_TESTNORM[] = +{ + + 0 +}; + static const InfoOption_t * option_tab_cmd_LIST[] = { OptionInfo + OPT_RECURSE, @@ -4695,6 +4812,36 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = 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_FEATURES[] = +{ + &option_cmd_FEATURES_BRIEF, + &option_cmd_FEATURES_LONG, + OptionInfo + OPT_IGNORE, + &option_cmd_FEATURES_QUIET, + + OptionInfo + OPT_NONE, // separator + + 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_PMODES, + OptionInfo + OPT_FMODES, OptionInfo + OPT_NONE, // separator @@ -6525,6 +6672,7 @@ static const InfoOption_t * option_tab_cmd_GHOST[] = OptionInfo + OPT_VAR, OptionInfo + OPT_ARRAY, OptionInfo + OPT_AVAR, + OptionInfo + OPT_CASE, OptionInfo + OPT_NONE, // separator @@ -6583,7 +6731,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives. It is also a" " wrapper to all other tools.", 0, - 63, + 65, option_tab_tool, 0 }, @@ -6621,7 +6769,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " The third variant (with a valid command name) prints details about" " the declared command. The fourth variant prints an overview about" " all commands and all global options.", - 1, + 2, option_tab_cmd_HELP, option_allowed_cmd_HELP }, @@ -6976,6 +7124,20 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_SUBFILE }, + { CMD_TESTNORM, + true, + false, + false, + "_NORM", + 0, + "wszst _NORM key...", + "This hidden command tests the iteration of norming.", + 0, + 0, + option_tab_cmd_TESTNORM, + option_allowed_cmd_TESTNORM + }, + { CMD_LIST, false, false, @@ -7232,11 +7394,25 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst ANALYZE [source]...", "Analyse track files and print results in machine readable format.", 0, - 13, + 14, option_tab_cmd_ANALYZE, option_allowed_cmd_ANALYZE }, + { CMD_FEATURES, + true, + false, + false, + "FEATURES", + 0, + "wszst FEATURES [source]...", + "Analyse track files and a feature list in machine readable format.", + 0, + 17, + option_tab_cmd_FEATURES, + option_allowed_cmd_FEATURES + }, + { CMD_DISTRIBUTION, false, false, @@ -7757,7 +7933,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst GHOST [source]...", "Analyse each file and print a summary about the ghost data.", 0, - 12, + 13, option_tab_cmd_GHOST, option_allowed_cmd_GHOST }, diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h index bdeeeae..fabeee1 100644 --- a/project/src/ui/ui-wszst.h +++ b/project/src/ui/ui-wszst.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -127,6 +127,8 @@ typedef enum enumOptions OPT_SORT, OPT_TRANSFORM, OPT_STRIP, + OPT_PMODES, + OPT_FMODES, OPT_ANALYZE, OPT_ANALYZE_MODE, OPT_SOURCE, @@ -187,7 +189,7 @@ typedef enum enumOptions OPT_RAW, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 131 + OPT__N_SPECIFIC, // == 133 //----- global options ----- @@ -197,6 +199,7 @@ typedef enum enumOptions OPT_ALLOW_ALL, OPT_COMPATIBLE, OPT_WIDTH, + OPT_MAX_WIDTH, OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, @@ -233,6 +236,8 @@ typedef enum enumOptions OPT_LT_ENGINE, OPT_LT_RANDOM, OPT_LEX_PURGE, + OPT_LEX_FEATURES, + OPT_LEX_RM_FEAT, OPT_CACHE, OPT_CNAME, OPT_MAX_FILE_SIZE, @@ -257,12 +262,13 @@ typedef enum enumOptions OPT_VAR, OPT_ARRAY, OPT_AVAR, + OPT_CASE, OPT_OLD, OPT_STD, OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 201 + OPT__N_TOTAL // == 207 } enumOptions; @@ -348,6 +354,8 @@ typedef enum enumOptions // OB_SORT = 1llu << OPT_SORT, // OB_TRANSFORM = 1llu << OPT_TRANSFORM, // OB_STRIP = 1llu << OPT_STRIP, +// OB_PMODES = 1llu << OPT_PMODES, +// OB_FMODES = 1llu << OPT_FMODES, // OB_ANALYZE = 1llu << OPT_ANALYZE, // OB_ANALYZE_MODE = 1llu << OPT_ANALYZE_MODE, // OB_SOURCE = 1llu << OPT_SOURCE, @@ -698,6 +706,15 @@ typedef enum enumOptions // | OB_DEST // | OB_DEST2, // +// OB_CMD_FEATURES = OB_BRIEF +// | OB_LONG +// | OB_IGNORE +// | OB_GRP_SCRIPT +// | OB_PMODES +// | OB_FMODES +// | OB_DEST +// | OB_DEST2, +// // OB_CMD_DISTRIBUTION = OB_IGNORE // | OB_NORM // | OB_LINKS @@ -929,6 +946,7 @@ typedef enum enumCommands CMD_CODE, CMD_RECODE, CMD_SUBFILE, + CMD_TESTNORM, CMD_LIST, CMD_LIST_L, @@ -950,6 +968,7 @@ typedef enum enumCommands CMD_SHA1, CMD_ANALYZE, + CMD_FEATURES, CMD_DISTRIBUTION, CMD_DIFF, @@ -987,7 +1006,7 @@ typedef enum enumCommands CMD_VEHICLE, - CMD__N // == 73 + CMD__N // == 75 } enumCommands; @@ -1040,6 +1059,7 @@ typedef enum enumGetOpt GO_ALLOW_ALL, GO_COMPATIBLE, GO_WIDTH, + GO_MAX_WIDTH, GO_DE, GO_COLORS, GO_NO_COLORS, @@ -1108,6 +1128,8 @@ typedef enum enumGetOpt GO_LT_ENGINE, GO_LT_RANDOM, GO_LEX_PURGE, + GO_LEX_FEATURES, + GO_LEX_RM_FEAT, GO_LOAD_BMG, GO_PATCH_BMG, GO_MACRO_BMG, @@ -1155,6 +1177,9 @@ typedef enum enumGetOpt GO_VAR, GO_ARRAY, GO_AVAR, + GO_CASE, + GO_PMODES, + GO_FMODES, GO_ANALYZE, GO_ANALYZE_MODE, GO_OLD, @@ -1217,7 +1242,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x12c = 300 +//UIOPT_INDEX_SIZE := 0x136 = 310 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wszst; diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def index bf829ab..722bdb5 100644 --- a/project/src/ui/ui.def +++ b/project/src/ui/ui.def @@ -503,6 +503,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -865,7 +871,8 @@ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \ - " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." ) + " TINY-0 ... TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@" \ + " and @LOG@." ) #:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \ "joblist", \ @@ -935,7 +942,8 @@ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \ " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \ - " 9LAPS, MAX-LAPS, RM-EMPTY, INPLACE, SILENT@ and @LOG@." ) + " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT@ and" \ + " @LOG@." ) #:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \ "factor", \ @@ -1106,7 +1114,7 @@ "", \ "Delete LEX sections without any impact. Delete sub-file course.lex if" \ " it no longer contains a section. This option is executed after all" \ - " --lt-* options." ) + " --lt-* and --lex-* options." ) #:def_opt( "LOAD_BMG", "load-bmg|loadbmg", "CMP", \ "file", \ @@ -1490,6 +1498,12 @@ "varname", \ "Shortcut for: {--array --var name}" ) +#:def_opt( "CASE", "case", "GP", \ + "case", \ + "@CASE@ is one of @LOWER@, @AUTO@ (default) or @UPPER@.If @LOWER@ or" \ + " @UPPER@ are set, then the lower/upper case of the variable names is" \ + " adjusted accordingly." ) + #:def_opt( "SOURCE", "s|source|src", "CP", \ "path", \ "Define a secondary source path (directory/file).\n" \ @@ -1865,6 +1879,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "TEST", "VERBOSE", \ "", \ "Print the matrices of transformations." ) @@ -5025,6 +5043,10 @@ "", \ "" ) +#:def_cmd_opt( "ANALYZE", "CASE", \ + "", \ + "" ) + #:def_cmd_opt( "ANALYZE", "DEST", \ "", \ "" ) @@ -5033,6 +5055,75 @@ "", \ "" ) +#:def_cmd_opt( "FEATURES", "BRIEF", \ + "", \ + "Suppres any comments at all. If set twice, suppress empty lines (for" \ + " grouping) too. If set three times, omit inactive features (=0) too." ) + +#:def_cmd_opt( "FEATURES", "LONG", \ + "", \ + "Print additnal comments." ) + +#:def_cmd_opt( "FEATURES", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "QUIET", \ + "", \ + "Suppress logging of input and output files." ) + +#:def_cmd_opt( "FEATURES", "SH", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "BASH", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "JSON", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "PHP", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "MAKEDOC", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "VAR", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "ARRAY", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "AVAR", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "CASE", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "PMODES", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "FMODES", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "DEST", \ + "", \ + "" ) + +#:def_cmd_opt( "FEATURES", "DEST2", \ + "", \ + "" ) + #:def_cmd_opt( "DISTRIBUTION", "IGNORE", \ "", \ "" ) @@ -10888,6 +10979,10 @@ "", \ "" ) +#:def_cmd_opt( "GHOST", "CASE", \ + "", \ + "" ) + #:def_cmd_opt( "GHOST", "DEST", \ "", \ "" ) @@ -11137,6 +11232,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -11486,6 +11587,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) @@ -11562,6 +11667,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "PATCH_BMG", \ "", \ "" ) @@ -11582,6 +11691,10 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "PATCH_BMG", \ "", \ "" ) @@ -11598,6 +11711,10 @@ "", \ "" ) +#:def_cmd_opt( "DIFF", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "DIFF", "PATCH_BMG", \ "", \ "" ) @@ -12341,6 +12458,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -12775,6 +12898,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) @@ -13658,6 +13785,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -13950,6 +14083,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) @@ -14613,6 +14750,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -14833,7 +14976,8 @@ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \ - " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." ) + " TINY-0 ... TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@" \ + " and @LOG@." ) #:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \ "joblist", \ @@ -15039,6 +15183,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "TEST", "VERBOSE", \ "", \ "Print the matrices of transformations." ) @@ -16926,6 +17074,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -17259,7 +17413,8 @@ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \ - " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." ) + " TINY-0 ... TINY-7, CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@" \ + " and @LOG@." ) #:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \ "joblist", \ @@ -17329,7 +17484,8 @@ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \ " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \ - " 9LAPS, MAX-LAPS, RM-EMPTY, INPLACE, SILENT@ and @LOG@." ) + " 9LAPS, MAX-LAPS, RM-EMPTY, TINY-0 ... TINY-7, INPLACE, SILENT@ and" \ + " @LOG@." ) #:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \ "factor", \ @@ -17560,6 +17716,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "TEST", "VERBOSE", \ "", \ "Print the matrices of transformations." ) @@ -17891,6 +18051,10 @@ "", \ "" ) +#:def_cmd_opt( "OBJECTS", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "OBJECTS", "NO_HEADER", \ "", \ "" ) @@ -18945,6 +19109,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -19338,6 +19508,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) @@ -20141,6 +20315,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -20502,6 +20682,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "TEST", "VERBOSE", \ "", \ "Print the matrices of transformations." ) @@ -21361,6 +21545,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -21569,6 +21759,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) @@ -21923,6 +22117,12 @@ "Define the terminal width (number of columns) for help and some other" \ " messages and disable the automatic detection of the terminal width." ) +#:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ + "maxwidth", \ + "Define the maximum terminal width (number of columns) for help and" \ + " some other messages and disable the automatic detection of the" \ + " terminal width. This option is ignored if {--width} is set." ) + #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ "Be quiet and print only error messages. Multiple usage is possible." \ @@ -22440,6 +22640,10 @@ "", \ "" ) +#:def_cmd_opt( "HELP", "MAX_WIDTH", \ + "", \ + "" ) + #:def_cmd_opt( "COLORS", "COLORS", \ "", \ "" ) diff --git a/project/src/ui/ui.h b/project/src/ui/ui.h index 8f43684..72b5a90 100644 --- a/project/src/ui/ui.h +++ b/project/src/ui/ui.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * |
