aboutsummaryrefslogtreecommitdiff
path: root/project/src/ui/ui-wctct.c
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/ui/ui-wctct.c')
-rw-r--r--project/src/ui/ui-wctct.c218
1 files changed, 141 insertions, 77 deletions
diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c
index 1344aa3..2d15c1f 100644
--- a/project/src/ui/ui-wctct.c
+++ b/project/src/ui/ui-wctct.c
@@ -453,6 +453,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] =
" --width is set."
},
+ { OPT_NO_PAGER, false, false, false, true, false, 0, "no-pager",
+ 0,
+ "Forbid the internal usage of a pager."
+ },
+
{ OPT_QUIET, false, false, false, false, false, 'q', "quiet",
0,
"Be quiet and print only error messages. Multiple usage is possible."
@@ -468,7 +473,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] =
{ OPT_LOGGING, false, false, false, false, false, 'L', "logging",
0,
- "This debug option enables the logging of internal lists and maps."
+ "This debug option enables the logging of internal lists and maps. Set"
+ " it up to three times to be more verbose.\n"
+ },
+
+ { OPT_TIMING, false, false, false, false, false, 0, "timing",
+ 0,
+ "Activate the timing of some operations. Logging level 3 activates"
+ " them too.\n"
},
{ OPT_WARN, false, false, false, false, false, 'W', "warn",
@@ -616,6 +628,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] =
">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<"
},
+ { OPT_CREATE_DISTRIB, false, false, false, false, false, 0, "create-distrib",
+ "file",
+ "Create a LE-CODE distribution dump with a track list and more info"
+ " about the current distribution. Store the dump info a file."
+ },
+
{ OPT_OLD, false, true, false, false, false, 0, "OLD",
0,
"Developer option: Cancel --NEW and use old implementation if"
@@ -672,7 +690,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] =
" 0x3b:0x41 and 0x44:0xfe."
},
- {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 83
+ {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 86
};
@@ -834,6 +852,7 @@ static const KeywordTab_t CommandTab[] =
{ CMD_HELP, "?", 0, 0 },
{ CMD_CONFIG, "CONFIG", 0, 0 },
{ CMD_ARGTEST, "ARGTEST", 0, 0 },
+ { CMD_EXPAND, "EXPAND", 0, 0 },
{ CMD_TEST, "TEST", 0, 0 },
{ CMD_COLORS, "COLORS", 0, 0 },
{ CMD_ERROR, "ERROR", "ERR", 0 },
@@ -875,9 +894,12 @@ static const struct option OptionLong[] =
{ "width", 1, 0, GO_WIDTH },
{ "max-width", 1, 0, GO_MAX_WIDTH },
{ "maxwidth", 1, 0, GO_MAX_WIDTH },
+ { "no-pager", 0, 0, GO_NO_PAGER },
+ { "nopager", 0, 0, GO_NO_PAGER },
{ "quiet", 0, 0, 'q' },
{ "verbose", 0, 0, 'v' },
{ "logging", 0, 0, 'L' },
+ { "timing", 0, 0, GO_TIMING },
{ "warn", 1, 0, 'W' },
{ "de", 0, 0, GO_DE },
{ "colors", 2, 0, GO_COLORS },
@@ -944,6 +966,8 @@ static const struct option OptionLong[] =
{ "force", 0, 0, GO_FORCE },
{ "repair-magics", 2, 0, GO_REPAIR_MAGICS },
{ "repairmagics", 2, 0, GO_REPAIR_MAGICS },
+ { "create-distrib", 1, 0, GO_CREATE_DISTRIB },
+ { "createdistrib", 1, 0, GO_CREATE_DISTRIB },
{ "OLD", 0, 0, GO_OLD },
{ "STD", 0, 0, GO_STD },
{ "NEW", 0, 0, GO_NEW },
@@ -1058,57 +1082,60 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] =
/* 0x083 */ OPT_COMPATIBLE,
/* 0x084 */ OPT_WIDTH,
/* 0x085 */ OPT_MAX_WIDTH,
- /* 0x086 */ OPT_DE,
- /* 0x087 */ OPT_COLORS,
- /* 0x088 */ OPT_NO_COLORS,
- /* 0x089 */ OPT_CT_CODE,
- /* 0x08a */ OPT_LE_CODE,
- /* 0x08b */ OPT_OLD_SPINY,
- /* 0x08c */ OPT_CRS1,
- /* 0x08d */ OPT_CHDIR,
- /* 0x08e */ OPT_ROUND,
- /* 0x08f */ OPT_RAW,
- /* 0x090 */ OPT_BMG_ENDIAN,
- /* 0x091 */ OPT_BMG_ENCODING,
- /* 0x092 */ OPT_BMG_INF_SIZE,
- /* 0x093 */ OPT_BMG_MID,
- /* 0x094 */ OPT_FORCE_ATTRIB,
- /* 0x095 */ OPT_DEF_ATTRIB,
- /* 0x096 */ OPT_NO_ATTRIB,
- /* 0x097 */ OPT_X_ESCAPES,
- /* 0x098 */ OPT_OLD_ESCAPES,
- /* 0x099 */ OPT_NO_BMG_COLORS,
- /* 0x09a */ OPT_BMG_COLORS,
- /* 0x09b */ OPT_NO_BMG_INLINE,
- /* 0x09c */ OPT_NO_ECHO,
- /* 0x09d */ OPT_UTF_8,
- /* 0x09e */ OPT_NO_UTF_8,
- /* 0x09f */ OPT_FORCE,
- /* 0x0a0 */ OPT_REPAIR_MAGICS,
- /* 0x0a1 */ OPT_OLD,
- /* 0x0a2 */ OPT_STD,
- /* 0x0a3 */ OPT_NEW,
- /* 0x0a4 */ OPT_EXTRACT,
- /* 0x0a5 */ OPT_LIST,
- /* 0x0a6 */ OPT_REF,
- /* 0x0a7 */ OPT_FULL,
- /* 0x0a8 */ OPT_HEX,
- /* 0x0a9 */ OPT_CT_DIR,
- /* 0x0aa */ OPT_CT_LOG,
- /* 0x0ab */ OPT_ALLOW_SLOTS,
- /* 0x0ac */ OPT_IMAGES,
- /* 0x0ad */ OPT_LOAD_BMG,
- /* 0x0ae */ OPT_PATCH_BMG,
- /* 0x0af */ OPT_MACRO_BMG,
- /* 0x0b0 */ OPT_FILTER_BMG,
- /* 0x0b1 */ OPT_PATCH_NAMES,
- /* 0x0b2 */ OPT_ORDER_BY,
- /* 0x0b3 */ OPT_ORDER_ALL,
- /* 0x0b4 */ OPT_DYNAMIC,
- /* 0x0b5 */ OPT_WRITE_TRACKS,
- /* 0x0b6 */ OPT_NUMBER,
- /* 0x0b7 */ OPT_SECTIONS,
- /* 0x0b8 */ 0,0,0,0, 0,0,0,0,
+ /* 0x086 */ OPT_NO_PAGER,
+ /* 0x087 */ OPT_TIMING,
+ /* 0x088 */ OPT_DE,
+ /* 0x089 */ OPT_COLORS,
+ /* 0x08a */ OPT_NO_COLORS,
+ /* 0x08b */ OPT_CT_CODE,
+ /* 0x08c */ OPT_LE_CODE,
+ /* 0x08d */ OPT_OLD_SPINY,
+ /* 0x08e */ OPT_CRS1,
+ /* 0x08f */ OPT_CHDIR,
+ /* 0x090 */ OPT_ROUND,
+ /* 0x091 */ OPT_RAW,
+ /* 0x092 */ OPT_BMG_ENDIAN,
+ /* 0x093 */ OPT_BMG_ENCODING,
+ /* 0x094 */ OPT_BMG_INF_SIZE,
+ /* 0x095 */ OPT_BMG_MID,
+ /* 0x096 */ OPT_FORCE_ATTRIB,
+ /* 0x097 */ OPT_DEF_ATTRIB,
+ /* 0x098 */ OPT_NO_ATTRIB,
+ /* 0x099 */ OPT_X_ESCAPES,
+ /* 0x09a */ OPT_OLD_ESCAPES,
+ /* 0x09b */ OPT_NO_BMG_COLORS,
+ /* 0x09c */ OPT_BMG_COLORS,
+ /* 0x09d */ OPT_NO_BMG_INLINE,
+ /* 0x09e */ OPT_NO_ECHO,
+ /* 0x09f */ OPT_UTF_8,
+ /* 0x0a0 */ OPT_NO_UTF_8,
+ /* 0x0a1 */ OPT_FORCE,
+ /* 0x0a2 */ OPT_REPAIR_MAGICS,
+ /* 0x0a3 */ OPT_CREATE_DISTRIB,
+ /* 0x0a4 */ OPT_OLD,
+ /* 0x0a5 */ OPT_STD,
+ /* 0x0a6 */ OPT_NEW,
+ /* 0x0a7 */ OPT_EXTRACT,
+ /* 0x0a8 */ OPT_LIST,
+ /* 0x0a9 */ OPT_REF,
+ /* 0x0aa */ OPT_FULL,
+ /* 0x0ab */ OPT_HEX,
+ /* 0x0ac */ OPT_CT_DIR,
+ /* 0x0ad */ OPT_CT_LOG,
+ /* 0x0ae */ OPT_ALLOW_SLOTS,
+ /* 0x0af */ OPT_IMAGES,
+ /* 0x0b0 */ OPT_LOAD_BMG,
+ /* 0x0b1 */ OPT_PATCH_BMG,
+ /* 0x0b2 */ OPT_MACRO_BMG,
+ /* 0x0b3 */ OPT_FILTER_BMG,
+ /* 0x0b4 */ OPT_PATCH_NAMES,
+ /* 0x0b5 */ OPT_ORDER_BY,
+ /* 0x0b6 */ OPT_ORDER_ALL,
+ /* 0x0b7 */ OPT_DYNAMIC,
+ /* 0x0b8 */ OPT_WRITE_TRACKS,
+ /* 0x0b9 */ OPT_NUMBER,
+ /* 0x0ba */ OPT_SECTIONS,
+ /* 0x0bb */ 0,0,0,0, 0,
/* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
/* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
/* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
@@ -1148,109 +1175,115 @@ static u8 option_allowed_cmd_ARGTEST[47] = // cmd #4
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1
};
-static u8 option_allowed_cmd_TEST[47] = // cmd #5
+static u8 option_allowed_cmd_EXPAND[47] = // cmd #5
+{
+ 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
+ 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1
+};
+
+static u8 option_allowed_cmd_TEST[47] = // cmd #6
{
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1
};
-static u8 option_allowed_cmd_COLORS[47] = // cmd #6
+static u8 option_allowed_cmd_COLORS[47] = // cmd #7
{
0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_ERROR[47] = // cmd #7
+static u8 option_allowed_cmd_ERROR[47] = // cmd #8
{
0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_FILETYPE[47] = // cmd #8
+static u8 option_allowed_cmd_FILETYPE[47] = // cmd #9
{
0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0
};
-static u8 option_allowed_cmd_FILEATTRIB[47] = // cmd #9
+static u8 option_allowed_cmd_FILEATTRIB[47] = // cmd #10
{
0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #10
+static u8 option_allowed_cmd_SYMBOLS[47] = // cmd #11
{
0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FUNCTIONS[47] = // cmd #11
+static u8 option_allowed_cmd_FUNCTIONS[47] = // cmd #12
{
0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_CALCULATE[47] = // cmd #12
+static u8 option_allowed_cmd_CALCULATE[47] = // cmd #13
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FLOAT[47] = // cmd #13
+static u8 option_allowed_cmd_FLOAT[47] = // cmd #14
{
0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_EXPORT[47] = // cmd #14
+static u8 option_allowed_cmd_EXPORT[47] = // cmd #15
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_RAWDUMP[47] = // cmd #15
+static u8 option_allowed_cmd_RAWDUMP[47] = // cmd #16
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_DUMP[47] = // cmd #16
+static u8 option_allowed_cmd_DUMP[47] = // cmd #17
{
0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1,
1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_CAT[47] = // cmd #17
+static u8 option_allowed_cmd_CAT[47] = // cmd #18
{
0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1,
1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0
};
-static u8 option_allowed_cmd_BMG[47] = // cmd #18
+static u8 option_allowed_cmd_BMG[47] = // cmd #19
{
0,0,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,1,1, 1,1,0,1,1,
1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0
};
-static u8 option_allowed_cmd_TRACKS[47] = // cmd #19
+static u8 option_allowed_cmd_TRACKS[47] = // cmd #20
{
0,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1,
1,1,1,1,1, 0,1,0,0,0, 0,0,0,0,0, 1,0
};
-static u8 option_allowed_cmd_DECODE[47] = // cmd #20
+static u8 option_allowed_cmd_DECODE[47] = // cmd #21
{
0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,1,1, 1,1,0,1,1,
1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_CREATE[47] = // cmd #21
+static u8 option_allowed_cmd_CREATE[47] = // cmd #22
{
0,0,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1,
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_PATCH[47] = // cmd #22
+static u8 option_allowed_cmd_PATCH[47] = // cmd #23
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,1,1,
1,1,1,1,1, 0,1,1,1,1, 1,1,1,1,1, 1,0
@@ -1272,9 +1305,11 @@ static const InfoOption_t * option_tab_tool[] =
OptionInfo + OPT_COMPATIBLE,
OptionInfo + OPT_WIDTH,
OptionInfo + OPT_MAX_WIDTH,
+ OptionInfo + OPT_NO_PAGER,
OptionInfo + OPT_QUIET,
OptionInfo + OPT_VERBOSE,
OptionInfo + OPT_LOGGING,
+ OptionInfo + OPT_TIMING,
OptionInfo + OPT_WARN,
OptionInfo + OPT_DE,
OptionInfo + OPT_COLORS,
@@ -1292,6 +1327,7 @@ static const InfoOption_t * option_tab_tool[] =
OptionInfo + OPT_TEST,
OptionInfo + OPT_FORCE,
OptionInfo + OPT_REPAIR_MAGICS,
+ OptionInfo + OPT_CREATE_DISTRIB,
OptionInfo + OPT_NONE, // separator
@@ -1334,6 +1370,12 @@ static const InfoOption_t * option_tab_cmd_ARGTEST[] =
0
};
+static const InfoOption_t * option_tab_cmd_EXPAND[] =
+{
+
+ 0
+};
+
static const InfoOption_t * option_tab_cmd_TEST[] =
{
@@ -1654,7 +1696,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"Wiimms CT-CODE Tool : Manage the CT-CODE extension. BRRES, TEX0,"
" CT-CODE, CT-TEXT and LE-BIN files are accepted as input.",
0,
- 28,
+ 31,
option_tab_tool,
0
},
@@ -1720,13 +1762,32 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
0,
"wctct ARGTEST ...",
"This debug command accepts all kinds of parameters and prints one"
- " line for each parameter.",
+ " line for each parameter. All tools know the ARGTEST command.",
0,
0,
option_tab_cmd_ARGTEST,
option_allowed_cmd_ARGTEST
},
+ { CMD_EXPAND,
+ false,
+ false,
+ false,
+ "EXPAND",
+ 0,
+ "wctct EXPAND ...",
+ "This debug command accepts (like ARGTEST) all kinds of parameters and"
+ " prints one line for each parameter. After that, the parameter is"
+ " treated as a filename with wildcards and all matching files are"
+ " searched. The special parameters '+h' and '/h' enable or disable the"
+ " search for hidden directories and files (files beginning with a"
+ " point). All tools know the EXPAND command.",
+ 0,
+ 0,
+ option_tab_cmd_EXPAND,
+ option_allowed_cmd_EXPAND
+ },
+
{ CMD_TEST,
false,
false,
@@ -1766,7 +1827,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"ERR",
"wctct ERROR [error_code]",
"Translate an exit code to a message name. If no exit code is entered,"
- " print a table with all error messages.",
+ " print a table with all error messages. All tools know the ERROR"
+ " command.",
0,
4,
option_tab_cmd_ERROR,
@@ -1781,7 +1843,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"FT",
"wctct FILETYPE file...",
"Scan the header of the entered files and print file type and path for"
- " each file as list.",
+ " each file as list. All tools know the FILETYPE command.",
0,
2,
option_tab_cmd_FILETYPE,
@@ -1798,7 +1860,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"Print a table with attributes for all known file types. If at least"
" one keyword is entered, only matching file types are printed. A"
" keyword is either a file type (like 'BRRES' or 'BMG') or one of the"
- " printed keywords (like 'ARCHIVE' or 'EXTRACT').",
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT'). All tools know the"
+ " FILEATTRIB command.",
0,
1,
option_tab_cmd_FILEATTRIB,
@@ -1843,7 +1906,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"CALCULATE",
0,
"wctct CALCULATE expression...",
- "Calculate each expression and print the result to standard output.",
+ "Calculate each expression and print the result to standard output."
+ " Many tools know the CALCULATE command.",
0,
1,
option_tab_cmd_CALCULATE,