aboutsummaryrefslogtreecommitdiff
path: root/project/src
diff options
context:
space:
mode:
Diffstat (limited to 'project/src')
-rw-r--r--project/src/addr_port.inc15
-rw-r--r--project/src/lib-checksum.c71
-rw-r--r--project/src/lib-checksum.h5
-rw-r--r--project/src/lib-file.c4
-rw-r--r--project/src/lib-kcl-image.c9
-rw-r--r--project/src/lib-kcl.c35
-rw-r--r--project/src/lib-kcl.h2
-rw-r--r--project/src/lib-kmp-text.c2
-rw-r--r--project/src/lib-ledis.c8
-rw-r--r--project/src/lib-ledis.h10
-rw-r--r--project/src/lib-lex.h2
-rw-r--r--project/src/lib-std.c41
-rw-r--r--project/src/lib-std.h12
-rw-r--r--project/src/lib-szs-create.c22
-rw-r--r--project/src/lib-szs.c7
-rw-r--r--project/src/prefix.inc171
-rw-r--r--project/src/ui/tab-wlect.inc2
-rw-r--r--project/src/ui/tab-wstrt.inc5
-rw-r--r--project/src/ui/tab-wszst.inc33
-rw-r--r--project/src/ui/ui-wbmgt.c5
-rw-r--r--project/src/ui/ui-wctct.c5
-rw-r--r--project/src/ui/ui-wimgt.c5
-rw-r--r--project/src/ui/ui-wkclt.c5
-rw-r--r--project/src/ui/ui-wkmpt.c5
-rw-r--r--project/src/ui/ui-wlect.c5
-rw-r--r--project/src/ui/ui-wmdlt.c5
-rw-r--r--project/src/ui/ui-wpatt.c5
-rw-r--r--project/src/ui/ui-wstrt.c12
-rw-r--r--project/src/ui/ui-wszst.c415
-rw-r--r--project/src/ui/ui-wszst.h13
-rw-r--r--project/src/ui/ui.def100
-rw-r--r--project/src/wszst.c37
-rw-r--r--project/src/wtest.c8
33 files changed, 689 insertions, 392 deletions
diff --git a/project/src/addr_port.inc b/project/src/addr_port.inc
index 49ad206..9d90de3 100644
--- a/project/src/addr_port.inc
+++ b/project/src/addr_port.inc
@@ -3,12 +3,12 @@ static addr_port_version_t addr_port_version =
{
.magic = "PORT-DB",
.db_version = 1,
- .revision = 8641,
- .timestamp = 1661635449,
- .n_records = 1685
+ .revision = 8780,
+ .timestamp = 1679746178,
+ .n_records = 1684
};
-static const addr_port_t addr_port_0[1685] =
+static const addr_port_t addr_port_0[1684] =
{
{{ 0x80000000, 0x80000000, 0x80000000, 0x80000000 }, 0x8040|0, 0x8040|0 }, // HEAD
{{ 0x80008114, 0x800080d4, 0x80008070, 0x80008188 }, 0xbc|2, 0xbc|2 }, // T1
@@ -589,7 +589,6 @@ static const addr_port_t addr_port_0[1685] =
{{ 0x8071b86c, 0x8071743c, 0x8071aed8, 0x80709c14 }, 0xad04|0, 0xad04|0 }, // REL1
{{ 0x80726570, 0x8073c5d8, 0x80725bdc, 0x80714918 }, 0x1c8c|2, 0x1c8c|2 }, // REL1
{{ 0x80728218, 0x8073e270, 0x80727884, 0x807165c0 }, 0x398|2, 0x398|2 }, // REL1
- {{ 0x807285b4, 0x80745450, 0x80727c20, 0x8071695c }, 0x4|3, 0x4|3 }, // REL1
{{ 0x807285c8, 0x8073e61c, 0x80727c34, 0x80716970 }, 0xd54|2, 0xd54|2 }, // REL1
{{ 0x8072931c, 0x808227a8, 0x80728988, 0x807176c4 }, 0x4|3, 0x4|3 }, // REL1
{{ 0x8072932c, 0x80724754, 0x80728998, 0x807176d4 }, 0x8|3, 0x8|3 }, // REL1
@@ -607,7 +606,7 @@ static const addr_port_t addr_port_0[1685] =
{{ 0x80730184, 0x80726dd4, 0x8072f7f0, 0x8071e52c }, 0x8e0|2, 0x8e0|2 }, // REL1
{{ 0x80730b34, 0x80741538, 0x807301a0, 0x8071eedc }, 0xe08|2, 0xe08|2 }, // REL1
{{ 0x8073194c, 0x80727794, 0x80730fb8, 0x8071fcf4 }, 0x3fe0|2, 0x3fe0|2 }, // REL1
- {{ 0x80735934, 0x80742350, 0x80734fa0, 0x80723cdc }, 0x33b8|2, 0x33b8|2 }, // REL1
+ {{ 0x80735934, 0x80742350, 0x80734fa0, 0x80723cdc }, 0x33b8|0, 0x33b8|0 }, // REL1
{{ 0x80738cec, 0x80741328, 0x80738358, 0x80727094 }, 0x8|3, 0x8|3 }, // REL1
{{ 0x80738da4, 0x8072b77c, 0x80738410, 0x8072714c }, 0x37a4|2, 0x37a4|2 }, // REL1
{{ 0x8073c548, 0x807457d0, 0x8073bbb4, 0x8072a8f0 }, 0x2898|2, 0x2898|2 }, // REL1
@@ -690,7 +689,7 @@ static const addr_port_t addr_port_0[1685] =
{{ 0x807dbcc8, 0x807cba20, 0x807db334, 0x807ca088 }, 0x4|3, 0x4|3 }, // REL1
{{ 0x807dbccc, 0x807cb734, 0x807db338, 0x807ca08c }, 0xbf0|2, 0xbf0|2 }, // REL1
{{ 0x807dc8c8, 0x807dc484, 0x807dbf34, 0x807cac88 }, 0x68|2, 0x68|2 }, // REL1
- {{ 0x807dc94c, 0x807cc32c, 0x807dbfb8, 0x807cad0c }, 0x3fe8|2, 0x3fe8|2 }, // REL1
+ {{ 0x807dc94c, 0x807cc32c, 0x807dbfb8, 0x807cad0c }, 0x3fe8|0, 0x3fe8|0 }, // REL1
{{ 0x807e0938, 0x8083c6ec, 0x807dffa4, 0x807cecf8 }, 0x1bc4|2, 0x1bc4|2 }, // REL1
{{ 0x807e24fc, 0x807df55c, 0x807e1b68, 0x807d08bc }, 0x70|2, 0x70|2 }, // REL1
{{ 0x807e259c, 0x807dc50c, 0x807e1c08, 0x807d095c }, 0x3028|0, 0x3028|0 }, // REL1
@@ -1695,5 +1694,5 @@ static const addr_port_t addr_port_0[1685] =
{{ 0x809c38bc, 0x809bf0b4, 0x809c291c, 0x809b1efc }, 0x8|0, 0x8|0 }, // MEM1
{{ 0x80ae9544, 0x80ae4d84, 0x80ae85a4, 0x80ad7b84 }, 0x4|0, 0x4|0 }, // MEM1
{{ 0xcd000000, 0xcd000000, 0xcd000000, 0xcd000000 }, 0x8000|0, 0x8000|0 }, // GPU
-}; // 1685 records
+}; // 1684 records
diff --git a/project/src/lib-checksum.c b/project/src/lib-checksum.c
index 6d89653..a04b07a 100644
--- a/project/src/lib-checksum.c
+++ b/project/src/lib-checksum.c
@@ -245,6 +245,48 @@ static u64 szs_cache_last_scan = 0;
///////////////////////////////////////////////////////////////////////////////
+void LogCacheActivity ( ccp keyword, ccp format, ... )
+{
+ static FILE *f = 0;
+ static char myid[12];
+
+ if (!f)
+ {
+ if (!opt_log_cache)
+ return;
+ f = fopen(opt_log_cache,"a");
+ if (!f)
+ {
+ ERROR1(ERR_CANT_CREATE,"Can't create log file: %s\n",opt_log_cache);
+ opt_log_cache = 0;
+ return;
+ }
+
+ char buf[4];
+ write_le32(buf,getpid());
+ buf[3] = GetTimeUSec(false);
+ EncodeBase64(myid,sizeof(myid),buf,4,0,true,0,0);
+ PRINT0("%5u %.4s -> %s\n",getpid(),buf,myid);
+ myid[5] = 0;
+ }
+
+ char buf[PATH_MAX+100];
+ *buf = 0;
+ if (format)
+ {
+ va_list arg;
+ va_start(arg,format);
+ vsnprintf(buf,sizeof(buf),format,arg);
+ va_end(arg);
+ }
+
+ fprintf(f,"%s %s %-4s %s\n",
+ PrintMTimeByFormat("%F %T.@@@",GetTimeMSec(false)), myid, keyword, buf );
+ fflush(f);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
void SetupSZSCache ( ccp dir_name, bool use_dirname )
{
PRINT("SetupSZSCache(%s,%d)\n",dir_name,use_dirname);
@@ -308,14 +350,19 @@ enumError LoadSZSCache(void)
szs_cache_loaded = true;
szs_cache_last_scan = 0;
- char buf[PATH_MAX];
- ccp path = PathCatPP(buf,sizeof(buf),szs_cache_dir,SZS_CACHE_FNAME);
+ const u_nsec_t start_time = GetTimerNSec();
+
+ char fbuf[PATH_MAX], buf[PATH_MAX];
+ ccp path = PathCatPP(fbuf,sizeof(fbuf),szs_cache_dir,SZS_CACHE_FNAME);
PRINT("LoadSZSCache() %s\n",path);
File_t F;
enumError err = OpenFile(&F,true,path,FM_SILENT,0,0);
if (err)
+ {
+ LogCacheActivity("!LOAD","Loading cache failed: %s",path);
return err;
+ }
const typeof(parallel_count) saved_parallel_count = parallel_count;
parallel_count = 0;
@@ -380,6 +427,12 @@ enumError LoadSZSCache(void)
}
CloseFile(&F,0);
+ if (opt_log_cache)
+ LogCacheActivity("LOAD","%u entries in %s: %s",
+ szs_cache.used,
+ PrintTimerNSec6(0,0,GetTimerNSec()-start_time,0),
+ path );
+
parallel_count = saved_parallel_count;
return ERR_OK;
@@ -400,18 +453,18 @@ static int cmp_szs_cache ( const void * va, const void * vb )
//-----------------------------------------------------------------------------
-enumError SaveSZSCache()
+enumError SaveSZSCache ( bool force )
{
if ( parallel_count > 0 )
return AppendSZSCache();
- if ( !szs_cache_dir || !szs_cache_dirty )
+ if ( !szs_cache_dir || !szs_cache_dirty && !force )
return ERR_NOTHING_TO_DO;
szs_cache_dirty = false;
char path_buf[PATH_MAX];
ccp path = PathCatPP(path_buf,sizeof(path_buf),szs_cache_dir,SZS_CACHE_FNAME);
- PRINT("SaveSZSCache() N=%u, %s\n",szs_cache.used,path);
+ PRINT1("SaveSZSCache() N=%u, %s\n",szs_cache.used,path);
File_t F;
enumError err = CreateFile(&F,true,path,FM_REMOVE);
@@ -560,8 +613,10 @@ ParamFieldItem_t * StoreSZSCache
}
bool found;
- ParamField_t *the_cache = parallel_count > 0 ? &szs_cache_append : &szs_cache;
- ParamFieldItem_t *it = FindInsertParamField(the_cache,checksum,false,0,&found);
+ ParamFieldItem_t *it = FindInsertParamField(&szs_cache,checksum,false,0,&found);
+ if ( !found && parallel_count > 0 )
+ it = FindInsertParamField(&szs_cache_append,checksum,false,0,&found);
+
if (found)
{
DASSERT(it);
@@ -584,7 +639,7 @@ ParamFieldItem_t * StoreSZSCache
return it;
FreeString(it->data);
- it->data = NULL;
+ it->data = fname ? STRDUP(fname) : 0;
}
if (it)
diff --git a/project/src/lib-checksum.h b/project/src/lib-checksum.h
index 0fc7650..30cffd4 100644
--- a/project/src/lib-checksum.h
+++ b/project/src/lib-checksum.h
@@ -93,6 +93,9 @@ extern ParamField_t szs_cache;
///////////////////////////////////////////////////////////////////////////////
+void LogCacheActivity ( ccp keyword, ccp format, ... )
+ __attribute__ ((__format__(__printf__,2,3)));
+
static inline bool IsSZSCacheEnabled()
{ return szs_cache_dir != 0; }
@@ -100,7 +103,7 @@ void SetupSZSCache ( ccp dir_name, bool use_dirname );
void ScanSZSCache ( ccp dir_name, bool purge );
enumError LoadSZSCache(void);
-enumError SaveSZSCache(void);
+enumError SaveSZSCache ( bool force );
enumError AppendSZSCache(void);
ParamFieldItem_t * StoreSZSCache
diff --git a/project/src/lib-file.c b/project/src/lib-file.c
index 5189f85..0bd1daa 100644
--- a/project/src/lib-file.c
+++ b/project/src/lib-file.c
@@ -4221,7 +4221,7 @@ enumError SavePrefixTable ( FILE *f, const mkw_prefix_t * tab )
fprintf(f,
"#PREFIX1\r\n"
- "#> prefix|info|flags|order|color_index|\r\n"
+ "@CONTENT=prefix|info|flags|order|color_index|\r\n"
"# Info flags: N: by Nintento, M: Original Mario Kart\r\n"
"# Functional flags: 1|2: Can be used as first|second part of a combi\r\n"
"#%.68s\r\n"
@@ -4546,7 +4546,7 @@ enumError SaveCategoryList ( FILE *f, const mkw_category_list_t * clist )
fprintf(f,
"#MTCAT03\r\n"
- "#> category|mode|ban|char1|char2|abbrev|name|info|fg_color|bg_color|color_name|attribs|\r\n"
+ "@CONTENT=category|mode|ban|char1|char2|abbrev|name|info|fg_color|bg_color|color_name|attribs|\r\n"
"# Category: Unique category identifier\r\n"
"# Mode is a bit field: 1: Unknown, 2: Default, 4: Custom,\r\n"
"# 0x10: Nintendo, 0x20: Hack of Nintendo, 0x40: Created to cheat\r\n"
diff --git a/project/src/lib-kcl-image.c b/project/src/lib-kcl-image.c
index c385fc7..973c574 100644
--- a/project/src/lib-kcl-image.c
+++ b/project/src/lib-kcl-image.c
@@ -205,6 +205,7 @@ int ScanOptPng ( ccp arg )
///////////////////////////////////////////////////////////////////////////////
/////////////// SaveImageKCL() ///////////////
///////////////////////////////////////////////////////////////////////////////
+// [[png_param_t]]
typedef struct png_param_t
{
@@ -523,10 +524,7 @@ enumError SaveImageKCL
//--- setup parameters
- png_param_t param;
- memset(&param,0,sizeof(param));
- param.kcl = kcl;
- param.type_mask = opt_png_type_mask;
+ png_param_t param = { .kcl = kcl, .type_mask = opt_png_type_mask };
InitializeIMG(&param.img);
SETCOLOR(param.col_bg,0,0,0x80,0xff);
@@ -559,8 +557,11 @@ enumError SaveImageKCL
//--- calc colors
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Warray-bounds"
Color_t *kclcol2 = (Color_t*)kcl_color;
param.kclcol2 = kclcol2 - N_KCL_FLAG;
+ #pragma GCC diagnostic pop
memset(param.kclcol1,0x00,sizeof(param.kclcol1));
uint *flag_count = AllocFlagCount();
diff --git a/project/src/lib-kcl.c b/project/src/lib-kcl.c
index 86f4b9f..3eb3812 100644
--- a/project/src/lib-kcl.c
+++ b/project/src/lib-kcl.c
@@ -2175,6 +2175,19 @@ static u32 calc_stat_oct
kcl->max_o_offset = val;
}
}
+
+ const uint max = kcl->octree_size;
+ if ( kcl->max_l_offset > max )
+ {
+ kcl->max_l_offset = max;
+ kcl->octree_valid = false;
+ }
+ if ( kcl->max_o_offset > max )
+ {
+ kcl->max_o_offset = max;
+ kcl->octree_valid = false;
+ }
+
return offset;
}
@@ -2427,18 +2440,24 @@ void CalcStatisticsKCL
//--- calc triangle usage
- noPRINT("OFF: %x .. %x\n",kcl->min_l_offset,kcl->max_l_offset);
+ PRINT("OFF: %x .. %x, max=%x\n",kcl->min_l_offset,kcl->max_l_offset,kcl->raw_data_size);
+
+ const u8 *max_vptr = kcl->raw_data + kcl->raw_data_size;
for ( offset = kcl->min_l_offset; offset < kcl->max_l_offset; offset += 2 )
{
- uint val = be16( kcl->octree + offset );
- if (val)
+ const u8 *vptr = kcl->octree + offset;
+ if ( vptr < max_vptr )
{
- if ( --val >= n_tri )
- kcl->n_invalid_tri_ref++;
- else if (!tri_used[val])
+ uint val = be16( kcl->octree + offset );
+ if (val)
{
- tri_used[val] = 1;
- kcl->n_tri_used++;
+ if ( --val >= n_tri )
+ kcl->n_invalid_tri_ref++;
+ else if (!tri_used[val])
+ {
+ tri_used[val] = 1;
+ kcl->n_tri_used++;
+ }
}
}
}
diff --git a/project/src/lib-kcl.h b/project/src/lib-kcl.h
index 027b32b..3d8e1d3 100644
--- a/project/src/lib-kcl.h
+++ b/project/src/lib-kcl.h
@@ -477,7 +477,7 @@ typedef struct kcl_t
u8 *octree; // NULL or pointer to octree
uint octree_size; // size of 'octree'
bool octree_valid; // octree & header data are valid
- bool octree_alloced; // true: FREE(octree)
+ bool octree_alloced; // true: FREE(octree) on reset
bool recreate_octree; // true: recreate octree before storing
diff --git a/project/src/lib-kmp-text.c b/project/src/lib-kmp-text.c
index 366069e..161765e 100644
--- a/project/src/lib-kmp-text.c
+++ b/project/src/lib-kmp-text.c
@@ -6995,7 +6995,7 @@ enumError SaveTextKMP
case GOBJ_ELINE_CONTROL:
{
const int idx = IS_M1(gobj->setting[7]) ? -1 : gobj->setting[7];
- if ( (uint)idx < KMP_MAX_GROUP && kmp->enph.gname[idx] )
+ if ( (uint)idx < KMP_MAX_GROUP )
snprintf(temp_buf,sizeof(temp_buf),"E.%s",kmp->enph.gname[idx]);
else
snprintf(temp_buf,sizeof(temp_buf),"%6d",idx);
diff --git a/project/src/lib-ledis.c b/project/src/lib-ledis.c
index 7d7433a..d815042 100644
--- a/project/src/lib-ledis.c
+++ b/project/src/lib-ledis.c
@@ -5181,7 +5181,7 @@ enumError CreateRefLD ( FILE *f, le_distrib_t *ld, bool add_strings )
lt->flags, IsHiddenLEFL(lt->flags),
lt->lap_count, lt->speed_factor,
GetSha1LT(lt,0,""),
- no_d ? 0 : GetSha1LT(lt,1,"") );
+ no_d ? "" : GetSha1LT(lt,1,"") );
if (add_strings)
{
@@ -6144,7 +6144,7 @@ enumError CreateCupIconsLD ( ld_out_param_t *lop, mem_t mem_opt, bool print_info
{0,0,0,0}
};
- le_strpar_t lepar = { .opt = LTT_NAME };
+ le_strpar_t lepar = { .opt = LEO_NAME };
KeyListParam_t keypar;
InitializeKeyListParam(&keypar);
keypar.func_arg = scan_source_opt;
@@ -6646,7 +6646,7 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt )
{0,0,0,0}
};
- le_strpar_t lepar = { .opt = LTT_NAME };
+ le_strpar_t lepar = { .opt = LEO_NAME };
KeyListParam_t keypar;
InitializeKeyListParam(&keypar);
keypar.func_arg = scan_source_opt;
@@ -6979,7 +6979,7 @@ enumError PatchLD ( le_distrib_t *ld, mem_t mem_opt, StringField_t *filelist )
{0,0,0,0}
};
- le_strpar_t lepar = { .opt = LTT_NAME };
+ le_strpar_t lepar = { .opt = LEO_NAME };
KeyListParam_t keypar;
InitializeKeyListParam(&keypar);
keypar.func_arg = scan_source_opt;
diff --git a/project/src/lib-ledis.h b/project/src/lib-ledis.h
index c00ecab..0a244b9 100644
--- a/project/src/lib-ledis.h
+++ b/project/src/lib-ledis.h
@@ -253,6 +253,16 @@ typedef enum le_options_t
LEO_LTT_SELECTOR = 0x0000000f, // mask to store le_track_text_t selector
+ LEO_UNDEFINED = LTT_UNDEFINED, // always NULL to support GetTextLEO()
+ LEO_SHA1 = LTT_SHA1, // access SHA1 checksum (standard)
+ LEO_SHA1_D = LTT_SHA1_D, // access SHA1 checksum (_d file)
+ LEO_IDENT = LTT_IDENT, // access identification (standard)
+ LEO_IDENT_D = LTT_IDENT_D, // access identification (_d file)
+ LEO_FILE = LTT_FILE, // access file name
+ LEO_NAME = LTT_NAME, // access name
+ LEO_XNAME = LTT_XNAME, // access xname
+ LEO_XNAME2 = LTT_XNAME2, // access xname with fallback to name
+
//-- BMG input source selector. If none is set then use all
diff --git a/project/src/lib-lex.h b/project/src/lib-lex.h
index 7081fbc..bd25b1e 100644
--- a/project/src/lib-lex.h
+++ b/project/src/lib-lex.h
@@ -174,7 +174,7 @@ typedef enum features_szs_value_t
{
// values for struct features_szs_t
- FZV_UNDEF, // feature not defined
+ FZV_UNDEF, // feature not used/defined
FZV_NO_IMPACT, // feature defined but without gameplay impact
FZV_MAYBE_IMPACT, // feature defined, gameplay impact is possible
FZV_IMPACT, // feature defined, with gameplay impact
diff --git a/project/src/lib-std.c b/project/src/lib-std.c
index 86ffde5..6886b86 100644
--- a/project/src/lib-std.c
+++ b/project/src/lib-std.c
@@ -148,6 +148,7 @@ EncodeMode_t opt_coding64 = ENCODE_OFF;
bool opt_verify = false;
ccp opt_cache = 0;
ccp opt_cname = 0;
+ccp opt_log_cache = 0;
int parallel_count = 0;
bool opt_round = false;
int brief_count = 0;
@@ -2513,20 +2514,38 @@ void CollectExpandParam
(
StringField_t *plist, // insert or append (inorder_count>0) to this list
ParamList_t *param, // first param to add
- int max // max num of param to add; -1: add all param
+ int max, // max num of param to add; -1: add all param
+ uint hidden // bit field:
+ // 1 : allow hidden files
+ // 2 : '+h' and '/h' enables or disables hidden files
)
{
if ( plist && param && max )
{
+ bool allow_hidden = hidden & 1;
for ( ; param; param = param->next )
{
if (*param->arg)
{
+ if ( hidden & 2 )
+ {
+ if (!strcmp(param->arg,"+h"))
+ {
+ allow_hidden = true;
+ continue;
+ }
+ if (!strcmp(param->arg,"_h"))
+ {
+ allow_hidden = false;
+ continue;
+ }
+ }
+
NORMALIZE_FILENAME_PARAM(param);
if ( inorder_count > 0 )
- AppendStringFieldExpand(plist,param->arg,0,false);
+ AppendStringFieldExpand(plist,param->arg,0,allow_hidden);
else
- InsertStringFieldExpand(plist,param->arg,0,false);
+ InsertStringFieldExpand(plist,param->arg,0,allow_hidden);
}
if (!--max)
break;
@@ -2534,6 +2553,20 @@ void CollectExpandParam
}
}
+///////////////////////////////////////////////////////////////////////////////
+
+enumError cmd_wildcards ( int argc, char ** argv )
+{
+ SetupPager();
+ StringField_t plist = {0};
+ CollectExpandParam(&plist,first_param,-1,2);
+
+ for ( int argi = 0; argi < plist.used; argi++ )
+ printf("%s\n",plist.field[argi]);
+ ResetStringField(&plist);
+ return ERR_OK;
+}
+
//
///////////////////////////////////////////////////////////////////////////////
/////////////// tiny support ///////////////
@@ -3932,7 +3965,7 @@ enumError cmd_expand ( int argc, char ** argv )
bool allow_hidden = false;
for ( ParamList_t *param = first_param; param; param = param->next )
{
- if (!strcmp(param->arg,"/h"))
+ if (!strcmp(param->arg,"_h"))
{
allow_hidden = false;
printf("%sIgnore hidden files.%s\n", colout->info, colout->reset );
diff --git a/project/src/lib-std.h b/project/src/lib-std.h
index 112f1ca..66eddad 100644
--- a/project/src/lib-std.h
+++ b/project/src/lib-std.h
@@ -1189,7 +1189,7 @@ typedef enum image_format_t
//-----------------------------------------------------------------------------
extern const KeywordTab_t cmdtab_image_format[];
-int ScanImageFormat ( ccp arg );
+image_format_t ScanImageFormat ( ccp arg );
ccp GetImageFormatName ( image_format_t iform, ccp unknown_value );
#define MAX_MIPMAPS 20
@@ -1218,7 +1218,7 @@ typedef enum palette_format_t
//-----------------------------------------------------------------------------
extern const KeywordTab_t cmdtab_palette_format[];
-int ScanPaletteFormat ( ccp arg );
+palette_format_t ScanPaletteFormat ( ccp arg );
ccp GetPaletteFormatName ( palette_format_t pform, ccp unknown_value );
//
@@ -1622,9 +1622,14 @@ void CollectExpandParam
(
StringField_t *plist, // insert or append (inorder_count>0) to this list
ParamList_t *param, // first param to add
- int max // max num of param to add; -1: add all param
+ int max, // max num of param to add; -1: add all param
+ uint hidden // bit field:
+ // 1 : allow hidden files
+ // 2 : '+h' and '/h' enables or disables hidden files
);
+enumError cmd_wildcards ( int argc, char ** argv );
+
//
///////////////////////////////////////////////////////////////////////////////
/////////////// general list support ///////////////
@@ -2748,6 +2753,7 @@ extern EncodeMode_t opt_coding64;
extern bool opt_verify;
extern ccp opt_cache;
extern ccp opt_cname;
+extern ccp opt_log_cache;
extern int parallel_count;
extern bool opt_round;
extern int brief_count;
diff --git a/project/src/lib-szs-create.c b/project/src/lib-szs-create.c
index 94262b2..651e02f 100644
--- a/project/src/lib-szs-create.c
+++ b/project/src/lib-szs-create.c
@@ -1205,21 +1205,7 @@ enumError LoadObjFileListSZS
if ( path[0] == '.' && path[1] == '/' )
path += 2;
int fidx = FindDbFile(path);
- if ( fidx < 0 )
- {
- bool found = false;
- int i;
- for ( i = 0; i < HAVESZS__N; i++ )
- if (strcasecmp(path,have_szs_file[i]))
- {
- found = true;
- break;
- }
-
- if (!found)
- szs->used_file->d[fidx] |= F_NOT_FOUND;
- }
- else
+ if ( fidx >= 0 )
{
u8 *flags = szs->used_file->d + fidx;
*flags |= F_FOUND;
@@ -1992,7 +1978,7 @@ static int add_missing_file
am->norm->u8.namepool_size += strlen(fname ? fname+1 : path) + 1;
am->norm->u8.total_size += ALIGN32(file->size,opt_align_u8);
- PRINT1("ADD-FILE[%d,%zd]: %s, %u bytes\n",
+ PRINT0("ADD-FILE[%d,%zd]: %s, %u bytes\n",
dir_id+1, file-szs->subfile.list, path, file->size );
}
am->last_subfile = file;
@@ -2128,7 +2114,7 @@ void AddSectionsLEX ( szs_file_t *szs, szs_norm_t *norm, const szs_have_t * have
}
if (add_course_lex)
- AddMissingFileSZS(szs,"course.lex", FF_LEX, norm, verbose >= 1 ? 0 : -1 );
+ AddMissingFileSZS(szs,"course.lex", FF_LEX, norm, verbose >= 2 ? 0 : -1 );
}
//
@@ -2629,7 +2615,7 @@ static void patch_file
)
{
DASSERT(it);
- DASSERT(data||!size);
+ DASSERT(new_data||!new_size);
szs_file_t *szs = it->szs;
DASSERT(szs);
diff --git a/project/src/lib-szs.c b/project/src/lib-szs.c
index 7daa0cc..571a36e 100644
--- a/project/src/lib-szs.c
+++ b/project/src/lib-szs.c
@@ -1442,6 +1442,7 @@ enumError ClassicCompressYAZ ( yaz_compr_t *yaz )
&& !memcmp(yaz->src,cache.data,cache.size))
{
PRINT("CACHE USED\n");
+ LogCacheActivity("USE","%s %s",it->key,(ccp)it->data);
cache.csize -= sizeof(yaz0_header_t);
memmove(cache.cdata,cache.cdata+sizeof(yaz0_header_t),cache.csize);
@@ -1458,8 +1459,12 @@ enumError ClassicCompressYAZ ( yaz_compr_t *yaz )
return ERR_OK;
}
}
+ else
+ LogCacheActivity("!USE","%s %s",it->key,(ccp)it->data);
ResetSZS(&cache);
}
+ else
+ LogCacheActivity("MISS","%s",iobuf);
if (it)
{
@@ -3113,7 +3118,7 @@ static int ui_check_func
void UiCheck ( ui_check_t *uc, szs_file_t *szs )
{
- DASSERT(ui);
+ DASSERT(uc);
DASSERT(szs);
memset(uc,0,sizeof(*uc));
uc->type = UIT_UNKNOWN;
diff --git a/project/src/prefix.inc b/project/src/prefix.inc
index 77023ec..96926a9 100644
--- a/project/src/prefix.inc
+++ b/project/src/prefix.inc
@@ -1,89 +1,98 @@
static const u8 prefix_inc_bz2[] =
{
- // decompressed size: 0xb23 = 2851 bytes
- 0x00,0x00,0x0b,0x23,
+ // decompressed size: 0xcb7 = 3255 bytes
+ 0x00,0x00,0x0c,0xb7,
// bzipped data
- 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x03,0x2c, 0x6d,0xb1,0x00,0x01,
- 0x09,0x5f,0x80,0x00, 0x12,0x61,0xef,0x7f, 0xf0,0x3f,0xef,0xdf, 0xf0,0x3f,0xff,0xff,
- 0xf4,0x50,0x04,0xbe, 0xee,0x63,0x42,0xb5, 0xd7,0x6c,0xb6,0xd1, 0x93,0x18,0x6a,0x69,
- 0xa5,0x3c,0x49,0x84, 0xda,0x8d,0x26,0x62, 0x62,0x69,0x3d,0x4c, 0x4c,0x8c,0x9a,0x34,
- 0xc8,0x00,0x1a,0x69, 0xa0,0xd1,0x21,0xa9, 0xe9,0xb5,0x53,0x7a, 0x6a,0x9f,0x92,0x9b,
- 0x49,0x93,0x23,0xd1, 0x18,0x41,0x84,0xd0, 0xd3,0x4d,0x00,0x64, 0x01,0xa6,0x84,0xd1,
- 0x32,0x6a,0x08,0xf5, 0x23,0xd4,0xf2,0x9f, 0xaa,0x1a,0x68,0x34, 0x68,0xc8,0x0c,0x40,
- 0x68,0x7a,0x80,0x1c, 0xc0,0x98,0x9a,0x0c, 0x26,0x4c,0x99,0x32, 0x30,0x98,0x26,0x9a,
- 0x64,0x62,0x60,0x08, 0x60,0x12,0x24,0x46, 0x9a,0x9a,0x64,0x99, 0xa9,0x93,0x4c,0x9a,
- 0xa7,0x93,0x28,0xf5, 0x3d,0x21,0xb4,0xd2, 0x36,0x51,0xea,0x69, 0xea,0x7a,0x9e,0x89,
- 0xa3,0xd4,0x34,0x90, 0x8f,0xf9,0x24,0x23, 0xe9,0xfa,0x6c,0xfd, 0x7c,0x39,0x57,0xce,
- 0xde,0xf7,0xe5,0xeb, 0xe9,0x2b,0xa2,0x24, 0xc1,0x97,0x66,0x8a, 0x4c,0xfe,0xeb,0x33,
- 0x6f,0x90,0x9e,0xc9, 0xc5,0x46,0xf6,0xa7, 0x7f,0xd9,0xe2,0xd1, 0x45,0xd6,0x58,0x58,
- 0x6f,0xfb,0x76,0x38, 0xb8,0xb6,0x53,0xa5, 0x7f,0x1c,0x36,0xa2, 0x00,0xa5,0x05,0x88,
- 0x18,0x21,0x85,0x04, 0x9d,0x73,0x91,0x28, 0xc4,0x4c,0x35,0xb1, 0x62,0x45,0x40,0x2a,
- 0x16,0x7c,0x1f,0x43, 0xa8,0xe0,0xfa,0x15, 0x39,0xa1,0x75,0x22, 0x9e,0x2f,0xc4,0xd2,
- 0x41,0x54,0xcf,0x1f, 0x12,0xc1,0x94,0x87, 0x7c,0xb8,0x97,0x0d, 0x13,0x41,0xeb,0x2a,
- 0x20,0xa9,0xe1,0x35, 0xc7,0x0b,0x35,0xa4, 0x2b,0x1e,0x3c,0x27, 0x4c,0x25,0x22,0xfd,
- 0xf3,0xcc,0x0f,0xf9, 0x55,0xd1,0xdb,0x89, 0xd1,0xc3,0x67,0x80, 0x50,0xf7,0xf5,0x83,
- 0xee,0x10,0x04,0x7f, 0x19,0x2e,0x17,0xf5, 0x77,0xf1,0xd0,0x49, 0xfc,0xb3,0x04,0xae,
- 0x48,0xaa,0xaf,0x8d, 0xd7,0x2b,0x57,0xbf, 0xb4,0xaa,0x59,0x0e, 0x7d,0xe3,0x6d,0xa4,
- 0xd2,0x00,0xb7,0x35, 0xf9,0xe1,0xca,0x4c, 0xef,0xb0,0x88,0x8e, 0x89,0x22,0x52,0x0b,
- 0x27,0x39,0x09,0x01, 0x3e,0xc8,0x5e,0x0c, 0x68,0x40,0x59,0x67, 0x5d,0xfd,0x7b,0x0d,
- 0x6e,0x38,0x65,0x84, 0x70,0x69,0xa8,0x17, 0x22,0x24,0x1c,0x4b, 0x26,0xeb,0x60,0xa2,
- 0x00,0x98,0xda,0x55, 0x1a,0x92,0x56,0x51, 0x3f,0x9f,0xd2,0x4e, 0x92,0x13,0x20,0x96,
- 0x0f,0xe9,0xbb,0xc6, 0xd3,0x55,0x0c,0x5e, 0xed,0xee,0x36,0x67, 0xbf,0x6b,0x2c,0xb2,
- 0x3e,0x4d,0x18,0xa6, 0x8e,0x7e,0x33,0x49, 0xcd,0x61,0x47,0xc7, 0x0d,0x91,0x45,0xe9,
- 0xa2,0x65,0x7c,0x8b, 0x09,0x30,0x9e,0xa8, 0x4c,0xb4,0xf3,0x90, 0xff,0xa9,0xec,0x76,
- 0xd0,0x96,0xd9,0x1b, 0xae,0x11,0xb5,0x82, 0x6f,0x01,0x86,0x3a, 0x1f,0x0e,0x9b,0xed,
- 0x65,0xa4,0x1f,0x1a, 0x09,0x60,0x8c,0x99, 0x6e,0x76,0x43,0x13, 0xe6,0xdd,0xbb,0x1b,
- 0xd1,0x78,0x03,0x18, 0x30,0xb5,0xc3,0x4f, 0x31,0xa7,0x44,0x91, 0x9a,0xde,0x49,0x00,
- 0x3a,0x0f,0x56,0x61, 0xce,0x65,0xb8,0x65, 0x61,0x00,0xd4,0x88, 0xcc,0xa2,0x46,0x14,
- 0xed,0x72,0xd3,0x0d, 0xe0,0x8a,0x22,0x25, 0x4a,0x13,0x4d,0xdb, 0xb5,0xd8,0x77,0x38,
- 0x0c,0xb6,0x2e,0x8a, 0x5f,0xee,0x66,0x2e, 0xba,0x47,0x0d,0x8b, 0x26,0x92,0xca,0xfa,
- 0xc9,0x49,0x9c,0x5c, 0x43,0x7e,0xe8,0x84, 0xc4,0xdb,0x19,0x28, 0xd8,0xe4,0xdb,0x68,
- 0x5e,0xe5,0x5d,0x0e, 0x05,0xca,0xd4,0x90, 0x5a,0x41,0x4d,0x80, 0x88,0x60,0xc8,0xc4,
- 0xa6,0x4a,0x8d,0xf8, 0xe7,0x26,0xd3,0x61, 0x86,0xc3,0x8a,0xf9, 0xa4,0x8b,0xf8,0x98,
- 0x10,0xd4,0xee,0x0c, 0x94,0x89,0x23,0x1b, 0xf5,0x61,0x73,0x38, 0x63,0x65,0x37,0x0e,
- 0xb8,0x07,0x77,0xc1, 0xf6,0x3a,0xf1,0x21, 0x47,0x47,0x69,0x2d, 0xaa,0x0e,0x75,0xfc,
- 0x61,0xb9,0xc9,0xbb, 0xd3,0xc6,0xc1,0x44, 0x9b,0xe1,0x94,0xb0, 0x36,0x35,0x2e,0xe8,
- 0x6d,0x3c,0x64,0x5a, 0x10,0x11,0x3b,0xaf, 0xa1,0x00,0x31,0xa0, 0x25,0x62,0x62,0xad,
- 0xb7,0x44,0x95,0x5d, 0x7f,0x32,0x9e,0xb2, 0x57,0x4e,0xbf,0xb1, 0x8d,0x6e,0xc4,0xae,
- 0x6e,0x41,0x77,0xc1, 0xed,0xd7,0x39,0x9b, 0xde,0x90,0x62,0x16, 0x2f,0x35,0x32,0xd0,
- 0x41,0x0e,0xe3,0x91, 0xd9,0x8f,0x18,0xe1, 0x8d,0x58,0xf5,0x30, 0xea,0x0e,0x0d,0x88,
- 0xcf,0xc0,0xdb,0x84, 0xb0,0xec,0xd9,0x9d, 0x72,0xd7,0xac,0x62, 0xe0,0xc8,0x21,0xad,
- 0xa4,0x20,0x80,0x28, 0x90,0x11,0x2f,0xad, 0x07,0xba,0xc8,0x86, 0xc2,0x15,0x89,0x1b,
- 0xcc,0x73,0xd5,0x17, 0x6a,0xc0,0x7e,0x16, 0x31,0x4f,0x6a,0xe7, 0xab,0xdb,0x79,0x42,
- 0x4b,0x9d,0x96,0x36, 0xe4,0x12,0x3a,0x5c, 0x80,0xce,0x2b,0xc3, 0x23,0x99,0x4b,0x59,
- 0x77,0x4e,0x88,0x52, 0x61,0x8d,0x52,0xdf, 0xbb,0x8f,0xaa,0xcd, 0x2c,0xd5,0xc3,0x55,
- 0x3b,0x01,0x59,0x8e, 0xca,0x69,0xd1,0xc0, 0xb7,0xd8,0xcb,0xbd, 0x94,0xd8,0x22,0x67,
- 0x2b,0x40,0xb6,0x75, 0x5d,0xcb,0x4d,0xc8, 0xc0,0xa2,0xdd,0xec, 0xd8,0x1e,0x64,0x13,
- 0x01,0x33,0x4c,0x26, 0x82,0x41,0xa9,0x2e, 0x54,0xc9,0x48,0xcc, 0xca,0x81,0xd5,0x59,
- 0x9b,0xd7,0xad,0x9c, 0x84,0x92,0xda,0xbc, 0xf7,0x7a,0x5d,0x38, 0xa0,0x65,0xa3,0x01,
- 0x14,0x92,0x9b,0xe0, 0xd6,0xe5,0x50,0x24, 0x20,0x12,0xa1,0x4c, 0xb1,0x54,0x74,0x25,
- 0x94,0x08,0x14,0xc6, 0x0f,0xb2,0xb6,0x4e, 0xfb,0x07,0x10,0x48, 0x94,0x9b,0x56,0x97,
- 0xb0,0x43,0x4c,0x4c, 0xf6,0xff,0xb0,0xab, 0x0e,0x88,0xd5,0xd6, 0x1e,0x4e,0x9b,0x47,
- 0x85,0xf9,0x42,0x74, 0x38,0x23,0x06,0x71, 0x9a,0xb3,0x79,0x39, 0x47,0x2a,0x19,0x8b,
- 0x2b,0xe1,0x8e,0x17, 0xa0,0x83,0x3e,0xc2, 0x46,0x35,0x8e,0x6d, 0x3c,0xc9,0x2c,0xa1,
- 0x36,0x11,0x21,0xb0, 0x5a,0xf8,0x42,0x93, 0x7a,0xa2,0xb9,0xcc, 0xdc,0x30,0x5a,0xf9,
- 0x0d,0xb9,0xfa,0x07, 0x86,0x0f,0xba,0x30, 0x33,0x98,0xdf,0x6f, 0x4b,0x48,0x4d,0xef,
- 0x2d,0x2c,0xf8,0xa2, 0x1b,0x8c,0xe4,0x2b, 0x1b,0x48,0x1b,0xb0, 0x69,0x3a,0xc9,0x9f,
- 0x5d,0x6c,0xd7,0x17, 0x49,0x96,0x99,0x41, 0xcf,0xcb,0x98,0x53, 0x37,0x56,0xfc,0x1d,
- 0x96,0xbb,0xfa,0xa7, 0xbd,0xfe,0x19,0xf5, 0xf9,0x94,0x03,0x43, 0xfc,0x98,0x07,0x29,
- 0x9e,0xa6,0x00,0xeb, 0x15,0x95,0xa2,0x21, 0xcc,0xcd,0xd8,0x85, 0x13,0x60,0x24,0x49,
- 0x69,0xad,0x81,0x7f, 0xf5,0xab,0xe7,0xe8, 0xe6,0xc9,0xe5,0xcf, 0x0c,0x88,0x8d,0xe9,
- 0x3c,0x78,0x85,0x4b, 0xe3,0xab,0x24,0x76, 0xe4,0xc0,0x09,0x4d, 0xf7,0x30,0x0b,0xd0,
- 0xe9,0xcd,0xc4,0x16, 0xd6,0x63,0xb6,0x8d, 0xe6,0x83,0x82,0x76, 0x3a,0x52,0xb4,0x99,
- 0xe3,0xe4,0x92,0xf5, 0x88,0x0f,0xaf,0x9c, 0x0b,0xce,0x70,0x97, 0xf9,0x10,0xda,0x48,
- 0xf4,0x61,0x37,0x64, 0xe1,0xb9,0x43,0x85, 0x0d,0xb8,0x8f,0x48, 0xf9,0xd2,0xe0,0xa0,
- 0x13,0xdf,0x52,0x24, 0xd8,0x80,0x1a,0x35, 0x34,0x79,0xa4,0x00, 0x1f,0x32,0x46,0x6e,
- 0xc6,0xa3,0x54,0xe6, 0x60,0x45,0xab,0x75, 0x4a,0x1b,0x49,0xf2, 0x5b,0x63,0x7c,0x2f,
- 0x96,0xcb,0x49,0xc9, 0xa3,0x27,0x97,0x9f, 0x7c,0xb0,0x61,0xb6, 0xa2,0xa2,0x9b,0x1f,
- 0x71,0x72,0x2e,0x73, 0x2e,0x0d,0xb8,0x16, 0x80,0xe7,0x5f,0xc3, 0xa7,0x74,0xea,0x0b,
- 0xa2,0x9c,0x6c,0x98, 0xc4,0xd5,0x5c,0xba, 0xcf,0x03,0xf4,0x2b, 0x41,0x4c,0x8b,0x1a,
- 0xe5,0xb9,0x54,0x37, 0xb5,0x25,0x50,0x4c, 0x8c,0x33,0x8d,0xf3, 0xeb,0x32,0x12,0x10,
- 0xb0,0xb4,0x2d,0xab, 0xa5,0xeb,0x5b,0x59, 0x65,0x96,0x45,0x92, 0xc8,0x63,0x1d,0x51,
- 0x26,0xb8,0xf1,0x16, 0x7a,0x46,0x4d,0x8c, 0xf0,0xac,0xc1,0x6a, 0xd3,0x54,0x33,0x11,
- 0x48,0x81,0xff,0x17, 0x72,0x45,0x38,0x50, 0x90,0x03,0x2c,0x6d, 0xb1,
- // 0x4dd = 1245 data bytes (44%)
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x9e,0x05, 0xfa,0xfd,0x00,0x01,
+ 0xcc,0xdf,0x80,0x00, 0x12,0x61,0xef,0x7f, 0xf2,0x7f,0xef,0xdf, 0xf0,0xbf,0xff,0xff,
+ 0xf4,0x50,0x05,0x5e, 0xc6,0xf7,0x8d,0x6b, 0xb2,0x75,0xdb,0x6c, 0xdb,0xdd,0xe7,0x07,
+ 0x71,0xe1,0xa2,0x4d, 0x30,0x93,0x4c,0x98, 0x98,0x8c,0x9a,0x60, 0x49,0xea,0x69,0x93,
+ 0x50,0xf4,0xd1,0xa8, 0x7a,0x9a,0x68,0x00, 0xd3,0xd4,0x1a,0x26, 0x89,0xb4,0xd2,0x1a,
+ 0x4d,0xa9,0x3c,0x9a, 0x90,0xf4,0xd4,0xf5, 0x1a,0x0c,0x80,0x32, 0x34,0x00,0x69,0xb5,
+ 0x00,0x12,0x9a,0x11, 0x02,0x69,0x3d,0x21, 0x91,0x19,0xa8,0x1e, 0x90,0xd0,0x64,0x03,
+ 0x41,0x90,0xd3,0x4d, 0x0d,0x00,0x48,0x92, 0x8a,0x7e,0x99,0x4d, 0xe4,0x4a,0x3d,0x1e,
+ 0xa0,0xd3,0x28,0xf5, 0x34,0xc2,0x30,0x04, 0x34,0xc1,0x19,0x00, 0x69,0x84,0x8a,0x69,
+ 0x51,0xb6,0xa9,0x93, 0x40,0x03,0x6a,0x68, 0x00,0x03,0x20,0x03, 0x40,0x34,0x00,0x18,
+ 0x20,0x5f,0xc6,0x73, 0x40,0x0b,0xe3,0xab, 0x0e,0x8f,0x76,0x0b, 0x0b,0xdf,0xd6,0xac,
+ 0x12,0x96,0x1f,0xd8, 0x78,0xd3,0xa4,0xa2, 0x1b,0x06,0x52,0xcc, 0x95,0xe3,0xf2,0xcf,
+ 0x1a,0x7d,0x84,0x74, 0x8d,0x8c,0x38,0x22, 0xee,0xe9,0xe5,0xbd, 0x5d,0x89,0xa0,0x98,
+ 0xd5,0xd7,0x87,0xde, 0x02,0xf1,0x2b,0x75, 0xc9,0x9f,0xd9,0x29, 0xa9,0x00,0xe3,0x21,
+ 0x33,0x14,0x30,0xd6, 0x98,0x70,0xb5,0xa2, 0xc4,0x4e,0x31,0x53, 0x13,0x9d,0x55,0x6d,
+ 0xaa,0x02,0x75,0xd7, 0x75,0x61,0x4a,0x4a, 0xde,0x03,0x3b,0xd8, 0x59,0x9c,0xdd,0x80,
+ 0xdb,0x53,0x74,0xcc, 0xb3,0x48,0x60,0x3f, 0x10,0xc5,0x4f,0x58, 0xbf,0xb2,0xf2,0xb3,
+ 0x1f,0x52,0xd9,0x8e, 0x11,0x2c,0x36,0x55, 0x26,0x95,0x55,0x10, 0x85,0x43,0x6b,0xf2,
+ 0x5a,0x5f,0x11,0x21, 0xcb,0x9d,0x24,0x5f, 0xef,0x9b,0xc0,0x1f, 0xd0,0x9b,0x9b,0x84,
+ 0x22,0x3a,0xb9,0xce, 0x07,0xbc,0x06,0x0f, 0x6e,0x20,0x1f,0xb9, 0x09,0x04,0x77,0xe5,
+ 0x5a,0x2e,0x9e,0xe7, 0x56,0xa9,0x88,0x49, 0xf7,0x6a,0x04,0xab, 0x48,0xb1,0x59,0x67,
+ 0x65,0x75,0x85,0x4b, 0x97,0x90,0xb1,0x2d, 0x51,0x4d,0xb5,0xe6, 0x21,0x24,0xcc,0x86,
+ 0x66,0x0e,0xfc,0x19, 0xb1,0xce,0xea,0x21, 0x1c,0xd5,0x2b,0x04, 0x44,0x47,0xbd,0x04,
+ 0xc8,0x56,0x93,0xf0, 0x96,0x01,0x8a,0x79, 0xdd,0xac,0x42,0x00, 0x62,0xb5,0xe3,0xc7,
+ 0xc5,0xbe,0x6f,0x27, 0x59,0x74,0xee,0x0f, 0xa7,0x27,0x8d,0x18, 0x06,0x74,0x56,0x84,
+ 0x94,0xd5,0x1d,0x10, 0x39,0xf5,0xb0,0x2d, 0x35,0x89,0xda,0x6e, 0xab,0xc3,0x96,0xf4,
+ 0x77,0x6e,0xe9,0xb2, 0xad,0x61,0x72,0x12, 0x40,0x7f,0x9d,0x7e, 0x6a,0x12,0xac,0x66,
+ 0x3d,0x75,0xe4,0x43, 0x9a,0x5c,0xc9,0x49, 0x87,0x5d,0x47,0xa1, 0x90,0x80,0x8c,0x85,
+ 0xf3,0x06,0x08,0x86, 0x8b,0x16,0x1a,0x73, 0xa0,0xfe,0xee,0x45, 0xe1,0x19,0x49,0x86,
+ 0xa2,0x84,0x26,0x29, 0x4d,0xc8,0x64,0x41, 0xd5,0x02,0xc2,0x75, 0x2a,0xd8,0x47,0x6a,
+ 0x0e,0x0b,0x46,0x37, 0xda,0x13,0x73,0x18, 0x52,0xdd,0x68,0xcf, 0xb9,0x8c,0xa9,0x91,
+ 0x51,0x25,0x2f,0x96, 0x21,0x2a,0x23,0x2b, 0x30,0x4d,0x90,0xd0, 0x3c,0xd9,0xb5,0x67,
+ 0xc3,0x04,0x08,0x01, 0x08,0x64,0x93,0x55, 0x3a,0x65,0x79,0xa3, 0x6a,0x18,0xbe,0xbb,
+ 0xd0,0x00,0xb5,0x65, 0xae,0xf2,0x75,0xdc, 0x3a,0xd0,0x24,0xa5, 0x61,0x36,0xac,0xac,
+ 0x0e,0x05,0x73,0xe3, 0x18,0xf2,0x18,0x2f, 0x49,0x92,0xb3,0x71, 0xf9,0x30,0x69,0xf0,
+ 0x3e,0x00,0xc3,0x11, 0x11,0xcd,0x42,0x6e, 0xcd,0x1a,0x2f,0x99, 0x9f,0x5d,0xe1,0x9c,
+ 0x5b,0x8a,0x9f,0x97, 0x51,0x34,0xdc,0x5c, 0x38,0x6c,0x57,0xb1, 0x2c,0xee,0xfc,0x76,
+ 0x49,0x48,0x66,0x4c, 0x83,0x67,0x3c,0x40, 0x31,0x31,0x83,0x19, 0x28,0xcc,0xe4,0xdb,
+ 0x69,0x0d,0x9f,0x85, 0xee,0xba,0xd5,0x46, 0x5b,0x67,0x6e,0x0f, 0x1c,0x43,0x3b,0xc6,
+ 0x4c,0x2f,0xbc,0xc1, 0x91,0x87,0x99,0x3b, 0x8b,0x7e,0xf9,0xf4, 0x15,0xb8,0x2f,0x1b,
+ 0x38,0x31,0xe5,0x1e, 0xfe,0x4f,0x30,0x2b, 0xa2,0x8e,0xd1,0x92, 0x19,0x42,0x40,0x66,
+ 0x48,0x10,0x12,0x6a, 0xbb,0x2a,0x29,0x8e, 0xf5,0x20,0xb8,0x03, 0x6b,0xc0,0xcf,0xa4,
+ 0x6e,0x3e,0x73,0x6c, 0x48,0x12,0x2f,0xe2, 0x1c,0xa5,0x23,0x8c, 0x92,0x68,0xc0,0x37,
+ 0xbc,0xdb,0xd1,0x1e, 0xbd,0xa2,0xd5,0xcd, 0xd2,0x0a,0x4e,0x1d, 0x2f,0x44,0xea,0xe4,
+ 0x0f,0x5d,0xeb,0x2a, 0x88,0x88,0xaa,0xae, 0x40,0x10,0x8a,0x82, 0x71,0x50,0x50,0xac,
+ 0xb3,0x57,0x6f,0x51, 0x40,0xa6,0x73,0x40, 0xbf,0xd4,0x29,0x3d, 0xbe,0x22,0x92,0x5a,
+ 0x09,0x36,0xc0,0x07, 0xb9,0xcd,0x9a,0xa6, 0x4e,0x15,0xb6,0x08, 0x63,0x05,0x3e,0x0b,
+ 0x61,0x57,0x69,0x08, 0xa4,0x9c,0x52,0x51, 0x4c,0xad,0x86,0x9b, 0x34,0x63,0xcf,0x07,
+ 0x38,0x48,0x30,0xf1, 0x8b,0x00,0x4d,0xc9, 0xa8,0x29,0xbf,0x7d, 0x35,0xb1,0x72,0xed,
+ 0xcd,0xe0,0x2a,0xe2, 0xd5,0xc1,0x83,0x4c, 0x65,0xca,0x28,0x75, 0x04,0x42,0x13,0x27,
+ 0x3e,0xbb,0x53,0xab, 0xc3,0x41,0xeb,0x31, 0xbc,0x33,0x48,0xf3, 0x7d,0x67,0xbb,0x6d,
+ 0x39,0x96,0x40,0x5f, 0x19,0x49,0xf0,0xac, 0xa4,0x7b,0x2e,0xb4, 0x3f,0xbb,0x09,0x03,
+ 0x2d,0xc8,0x79,0x74, 0xaa,0xfb,0x24,0x28, 0x3a,0x28,0xc1,0x9c, 0x6c,0x43,0x49,0xad,
+ 0x22,0x2e,0x2d,0xd9, 0x93,0xb4,0x20,0xda, 0xb8,0x69,0xcc,0x6a, 0xa6,0x6c,0x35,0x2f,
+ 0x39,0x8a,0xe6,0xae, 0x56,0xf7,0x00,0x4a, 0x8a,0x85,0xe7,0x8d, 0xf0,0xab,0x8c,0x33,
+ 0x95,0xec,0xd5,0x40, 0x02,0x83,0x0a,0x59, 0x54,0x60,0x11,0x53, 0xb2,0x6d,0xb7,0x47,
+ 0x20,0x16,0xce,0xfc, 0xfd,0xd4,0xbc,0xcf, 0x48,0x2c,0x02,0xb6, 0xb8,0x11,0x71,0x93,
+ 0x89,0x44,0xc9,0xad, 0x0b,0xdd,0x71,0x3a, 0x10,0xdc,0x02,0x69, 0xe0,0x34,0x49,0xe5,
+ 0x6a,0x66,0x65,0x0b, 0xb9,0x13,0xd0,0x80, 0x23,0xd7,0x9b,0x02, 0xd1,0x46,0x74,0x51,
+ 0x19,0x40,0x38,0xe8, 0xc9,0x6f,0x3f,0x42, 0x48,0xda,0xd6,0xb4, 0x42,0x4e,0x3a,0xb3,
+ 0x38,0xf0,0x82,0x59, 0x29,0x76,0x07,0x66, 0x81,0x02,0xcf,0x85, 0x27,0x35,0x0a,0xbc,
+ 0x41,0x32,0x21,0xb5, 0x35,0x53,0x04,0x34, 0xd0,0x32,0xf7,0xe4, 0x95,0x2d,0xef,0xe5,
+ 0x4e,0xf9,0x49,0x69, 0x5f,0x0c,0x59,0x85, 0x76,0xb4,0xc9,0x53, 0x19,0x16,0x9d,0xe3,
+ 0x7e,0x0e,0x35,0x1b, 0x87,0x5a,0xc0,0x5c, 0x7b,0x6b,0xda,0x32, 0xec,0x37,0xa5,0x0b,
+ 0x82,0x0e,0xfe,0x46, 0x58,0x2b,0xb0,0xec, 0xcf,0x60,0x00,0x4c, 0x20,0x5d,0xf1,0x01,
+ 0x2c,0x03,0x68,0x5b, 0x1a,0x61,0x12,0x7b, 0x11,0x7c,0xb1,0xda, 0x4f,0x4d,0xcb,0x67,
+ 0x68,0xcd,0x3d,0xd1, 0xd2,0x94,0x8b,0xfe, 0x32,0xb4,0xa1,0x74, 0xea,0xdf,0x69,0x24,
+ 0xdd,0x67,0xa1,0xbc, 0x3b,0xc8,0x86,0xe2, 0x64,0x2c,0x2c,0x69, 0x03,0x66,0x14,0xd0,
+ 0x3a,0xe1,0x0b,0xb3, 0x4e,0xf3,0x8e,0xf6, 0xc2,0x2a,0x6e,0xbb, 0x71,0x70,0xde,0x34,
+ 0x9a,0x2e,0xbf,0x15, 0x4a,0xe9,0x7c,0xdc, 0x74,0x1f,0x5b,0xf2, 0xe3,0xab,0x59,0x50,
+ 0x32,0x55,0xf4,0x38, 0x14,0xbd,0xdb,0x5e, 0x89,0x04,0x6d,0xb4, 0xd9,0x7d,0x8d,0x19,
+ 0xad,0xb6,0xd9,0x57, 0x2a,0xc1,0x2e,0x41, 0x6c,0x8d,0x29,0x58, 0xea,0x50,0xf6,0x92,
+ 0xff,0xec,0x2f,0xaf, 0x27,0x2f,0x97,0x4d, 0x2b,0xe9,0xac,0x00, 0x47,0x85,0x69,0xc4,
+ 0x76,0xbf,0x1c,0xb7, 0x5a,0x63,0x65,0xc1, 0x4b,0x27,0x82,0x1b, 0x72,0x1d,0x7a,0xe8,
+ 0xc7,0x25,0x07,0xc3, 0x08,0x5d,0xbb,0x63, 0xcd,0x48,0x35,0xb2, 0xaa,0xb2,0x6e,0xb2,
+ 0x47,0xe9,0xf9,0xa1, 0x9b,0xfa,0xee,0x1d, 0x9d,0x4e,0x07,0x54, 0xb8,0xc7,0xed,0xdc,
+ 0x49,0x98,0x6e,0xb4, 0x12,0xa9,0x2e,0x91, 0x0e,0x9d,0x9d,0x24, 0xef,0xd6,0xff,0x8b,
+ 0x2a,0x0b,0x00,0x4e, 0xba,0x12,0x86,0xd0, 0x90,0x34,0x65,0xb4, 0x74,0x89,0x20,0xb3,
+ 0x0d,0x6e,0xf2,0x54, 0xaf,0x57,0x10,0x16, 0xf8,0x73,0xad,0x23, 0xc4,0xd5,0x91,0x1e,
+ 0x0c,0x6c,0x4f,0x86, 0x75,0xe2,0xea,0x2f, 0xdd,0x7f,0x4f,0x97, 0x95,0x34,0x53,0x05,
+ 0x2f,0x85,0x1d,0x76, 0x6c,0xcb,0x21,0xf5, 0x3c,0x1c,0x3f,0xe3, 0x22,0x0a,0x21,0x24,
+ 0x9a,0x16,0x8d,0x5b, 0xf9,0xd6,0xa0,0xbb, 0x2d,0xbd,0x68,0x46, 0x15,0x38,0x2a,0xba,
+ 0x29,0x17,0x6b,0x9e, 0x66,0xe8,0x4a,0xe1, 0xbd,0x54,0x66,0xbb, 0x2e,0x7e,0x08,0x4b,
+ 0xe2,0x8d,0x9d,0xb5, 0x01,0x56,0xb1,0xce, 0xaf,0x63,0x86,0x27, 0x30,0xc3,0x62,0x98,
+ 0xab,0x1d,0x6a,0xb9, 0x29,0x38,0xe3,0x8e, 0x38,0xc5,0xd8,0xcc, 0x61,0x8c,0x0a,0xb5,
+ 0xdd,0xbf,0x5c,0x39, 0x65,0x13,0x8e,0x23, 0x34,0xba,0x32,0x9c, 0x41,0xa3,0x2d,0x6c,
+ 0x44,0x37,0x9a,0xd8, 0x89,0xff,0x17,0x72, 0x45,0x38,0x50,0x90, 0x9e,0x05,0xfa,0xfd,
+ // 0x570 = 1392 data bytes (43%)
};
static BZ2Manager_t prefix_inc_mgr
diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc
index b00f880..90cdd5d 100644
--- a/project/src/ui/tab-wlect.inc
+++ b/project/src/ui/tab-wlect.inc
@@ -191,7 +191,7 @@
"This command manages data for LE-CODE track distributions."
" It reads any number of source files with different file types,"
" collects the data and creates any number of files with different file types."
- " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details."
+ " " WILDCARDS
"\n "
" Use the command without keyword to get an extended description." },
diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc
index a227ca9..f78c073 100644
--- a/project/src/ui/tab-wstrt.inc
+++ b/project/src/ui/tab-wstrt.inc
@@ -120,8 +120,11 @@
" Keywords are @PAL@ (default), @USA@, @JAPAN@, @KOREA@, or any abbreviation of them."
" They select the region for the following addresses."
" The hex numbers (with or without @0x@ prefix) are interpreted as addresses."
- " If an address begins with @m@ or @s@,"
+ " If an address begins with @m@, @M@, @s@ or @S@,"
" then it is interpreted as a file offset for @main.dol@ or @staticr.rel@."
+ " If the number begins with a point (@.@), then it is interpreted as a cheat code."
+ " In this case, the lowest 25 bits are interpreted as address"
+ " and the highest 7 bits are saved and used for the address output."
" All addresses are ported to all other regions."
" The result is printed as colorized table."
"\1 See https://szs.wiimm.de/cmd/wstrt/port for more details." },
diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc
index 9984290..aa60a17 100644
--- a/project/src/ui/tab-wszst.inc
+++ b/project/src/ui/tab-wszst.inc
@@ -98,10 +98,20 @@
" 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)."
+ " The special parameters '+h' and '_h' enable or disable the search"
+ " for hidden directories and files (files beginning with a point)"
+ " for the following parameters."
" All tools know the EXPAND command." },
+ { T_DEF_CMD, "WILDCARDS", "WILDCARDS",
+ "wszst WILDCARDS pattern...",
+ " Each parameter is treated as a filename. "
+ WILDCARDS_SORT
+ " The special parameters '+h' and '_h' enable or disable the search"
+ " for hidden directories and files (files beginning with a point)"
+ " for the following parameters."
+ " Finally, one line is printed for each file name of the list." },
+
{ T_DEF_CMD, "TEST", "TEST",
"wszst TEST [options]... [ignored]...",
"This debugging command accepts all options and parameters"
@@ -754,7 +764,7 @@
" Multiple usage is possible."
" The impact is command dependent." },
- { T_OPT_GM, "LOGGING", "L|logging",
+ { T_OPT_GM, "LOGGING", "L|logging|log",
0,
"This debug option enables the logging of internal lists and maps."
" Set it up to three times to be more verbose." },
@@ -1649,6 +1659,11 @@
" This parameter overrides the generated cache name."
" The name is used only once for the very first cache candidate." },
+ { T_OPT_GP, "LOG_CACHE", "log-cache|logcache",
+ "file",
+ "Define a file to log chache activities."
+ " The file is openend in append-mode." },
+
{ T_OPT_G, "PARALLEL", "parallel",
0,
"Tell the tool that it will be called multiple times in parallel."
@@ -2800,6 +2815,12 @@
{ T_CMD_BEG, "EXPAND", 0,0,0 },
{ T_ALL_OPT, 0, 0,0,0 },
+ //---------- COMMAND wszst WILDCARDS ----------
+
+ { T_CMD_BEG, "WILDCARDS", 0,0,0 },
+ { T_COPT, "IGNORE", 0,0,0 },
+ { T_COPT, "IN_ORDER", 0,0,0 },
+
//---------- COMMAND wszst TEST ----------
{ T_CMD_BEG, "TEST", 0,0,0 },
@@ -2969,7 +2990,11 @@
{ T_CMD_BEG, "SCANCACHE", 0,0,0 },
{ T_COPT, "CACHE", 0,0,0 },
+ { T_COPT, "LOG_CACHE", 0,0,0 },
{ T_COPT, "PURGE", 0,0,0 },
+ { T_COPT, "FAST", 0,0,
+ "Scan 'cache-content.txt' and remove duplicates."
+ " Ignore option {--purge}." },
//---------- COMMAND wszst _EXPORT ----------
@@ -3206,7 +3231,7 @@
{ T_CMD_BEG, "FEATURES", 0,0,0 },
{ T_COPT, "BRIEF", 0,0,
- "Suppres any comments at all."
+ "Suppres comments at all."
" If set twice, suppress empty lines (for grouping) too."
" If set three times, omit inactive features (value 0) too." },
{ T_COPT, "LONG", 0,0,
diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c
index 3f24b35..03d997b 100644
--- a/project/src/ui/ui-wbmgt.c
+++ b/project/src/ui/ui-wbmgt.c
@@ -1548,9 +1548,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c
index 4422f73..580e0db 100644
--- a/project/src/ui/ui-wctct.c
+++ b/project/src/ui/ui-wctct.c
@@ -1790,9 +1790,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c
index 4ebf300..2893524 100644
--- a/project/src/ui/ui-wimgt.c
+++ b/project/src/ui/ui-wimgt.c
@@ -1316,9 +1316,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c
index 88708d8..52faa2a 100644
--- a/project/src/ui/ui-wkclt.c
+++ b/project/src/ui/ui-wkclt.c
@@ -2258,9 +2258,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c
index 4862f38..0e908e5 100644
--- a/project/src/ui/ui-wkmpt.c
+++ b/project/src/ui/ui-wkmpt.c
@@ -2322,9 +2322,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c
index 69dd141..a751fdd 100644
--- a/project/src/ui/ui-wlect.c
+++ b/project/src/ui/ui-wlect.c
@@ -1927,9 +1927,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c
index 99a2d21..3908322 100644
--- a/project/src/ui/ui-wmdlt.c
+++ b/project/src/ui/ui-wmdlt.c
@@ -1579,9 +1579,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c
index c5d8e3b..7181a33 100644
--- a/project/src/ui/ui-wpatt.c
+++ b/project/src/ui/ui-wpatt.c
@@ -1126,9 +1126,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c
index d59f2c0..2c606ed 100644
--- a/project/src/ui/ui-wstrt.c
+++ b/project/src/ui/ui-wstrt.c
@@ -2165,9 +2165,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
@@ -2325,8 +2326,11 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
" PAL (default), USA, JAPAN, KOREA, or any abbreviation of them. They"
" select the region for the following addresses. The hex numbers (with"
" or without 0x prefix) are interpreted as addresses. If an address"
- " begins with m or s, then it is interpreted as a file offset for"
- " main.dol or staticr.rel. All addresses are ported to all other"
+ " begins with m, M, s or S, then it is interpreted as a file offset"
+ " for main.dol or staticr.rel. If the number begins with a point (.),"
+ " then it is interpreted as a cheat code. In this case, the lowest 25"
+ " bits are interpreted as address and the highest 7 bits are saved and"
+ " used for the address output. All addresses are ported to all other"
" regions. The result is printed as colorized table. See"
" https://szs.wiimm.de/cmd/wstrt/port for more details.",
0,
diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c
index d397063..8a813a4 100644
--- a/project/src/ui/ui-wszst.c
+++ b/project/src/ui/ui-wszst.c
@@ -1676,6 +1676,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] =
" candidate."
},
+ { OPT_LOG_CACHE, false, false, false, false, false, 0, "log-cache",
+ "file",
+ "Define a file to log chache activities. The file is openend in"
+ " append-mode."
+ },
+
{ OPT_PARALLEL, false, false, false, false, false, 0, "parallel",
0,
"Tell the tool that it will be called multiple times in parallel."
@@ -1865,7 +1871,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 == 224
+ {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 225
};
@@ -2082,6 +2088,13 @@ static const InfoOption_t option_cmd_TRACKS_LONG =
" old BRRES sub file formats too."
};
+static const InfoOption_t option_cmd_SCANCACHE_FAST =
+ { OPT_FAST, false, false, false, false, false, 0, "fast",
+ 0,
+ "Scan 'cache-content.txt' and remove duplicates. Ignore option"
+ " --purge."
+ };
+
static const InfoOption_t option_cmd_SIZEOF_SORT =
{ OPT_SORT, false, false, false, false, false, 'S', "sort",
"mode",
@@ -2197,7 +2210,7 @@ static const InfoOption_t option_cmd_IS_TEXTURE_LONG =
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"
+ "Suppres comments at all. If set twice, suppress empty lines (for"
" grouping) too. If set three times, omit inactive features (value 0)"
" too."
};
@@ -2383,6 +2396,7 @@ static const KeywordTab_t CommandTab[] =
{ CMD_INSTALL, "INSTALL", 0, 0 },
{ CMD_ARGTEST, "ARGTEST", 0, 0 },
{ CMD_EXPAND, "EXPAND", 0, 0 },
+ { CMD_WILDCARDS, "WILDCARDS", 0, 0 },
{ CMD_TEST, "TEST", 0, 0 },
{ CMD_COLORS, "COLORS", 0, 0 },
{ CMD_ERROR, "ERROR", "ERR", 0 },
@@ -2497,6 +2511,7 @@ static const struct option OptionLong[] =
{ "quiet", 0, 0, 'q' },
{ "verbose", 0, 0, 'v' },
{ "logging", 0, 0, 'L' },
+ { "log", 0, 0, 'L' },
{ "extended-errors", 0, 0, 'Y' },
{ "extendederrors", 0, 0, 'Y' },
{ "xerr", 0, 0, 'Y' },
@@ -2651,6 +2666,8 @@ static const struct option OptionLong[] =
{ "nocopy", 0, 0, GO_NO_COPY },
{ "cache", 1, 0, GO_CACHE },
{ "cname", 1, 0, GO_CNAME },
+ { "log-cache", 1, 0, GO_LOG_CACHE },
+ { "logcache", 1, 0, GO_LOG_CACHE },
{ "parallel", 0, 0, GO_PARALLEL },
{ "id", 0, 0, GO_ID },
{ "base64", 2, 0, GO_BASE64 },
@@ -3013,102 +3030,103 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] =
/* 0x0da */ OPT_NO_COPY,
/* 0x0db */ OPT_CACHE,
/* 0x0dc */ OPT_CNAME,
- /* 0x0dd */ OPT_PARALLEL,
- /* 0x0de */ OPT_ID,
- /* 0x0df */ OPT_BASE64,
- /* 0x0e0 */ OPT_DB64,
- /* 0x0e1 */ OPT_CODING,
- /* 0x0e2 */ OPT_VERIFY,
- /* 0x0e3 */ OPT_ROUND,
- /* 0x0e4 */ OPT_IN_ORDER,
- /* 0x0e5 */ OPT_PIPE,
- /* 0x0e6 */ OPT_DELTA,
- /* 0x0e7 */ OPT_DIFF,
- /* 0x0e8 */ OPT_EPSILON,
- /* 0x0e9 */ OPT_BMG_ENDIAN,
- /* 0x0ea */ OPT_BMG_ENCODING,
- /* 0x0eb */ OPT_BMG_INF_SIZE,
- /* 0x0ec */ OPT_BMG_MID,
- /* 0x0ed */ OPT_FORCE_ATTRIB,
- /* 0x0ee */ OPT_DEF_ATTRIB,
- /* 0x0ef */ OPT_NO_ATTRIB,
- /* 0x0f0 */ OPT_X_ESCAPES,
- /* 0x0f1 */ OPT_OLD_ESCAPES,
- /* 0x0f2 */ OPT_NO_BMG_COLORS,
- /* 0x0f3 */ OPT_BMG_COLORS,
- /* 0x0f4 */ OPT_NO_BMG_INLINE,
- /* 0x0f5 */ OPT_AUTOADD_PATH,
- /* 0x0f6 */ OPT_STRIP,
- /* 0x0f7 */ OPT_UTF_8,
- /* 0x0f8 */ OPT_NO_UTF_8,
- /* 0x0f9 */ OPT_FORCE,
- /* 0x0fa */ OPT_REPAIR_MAGICS,
- /* 0x0fb */ OPT_TINY,
- /* 0x0fc */ OPT_YAZ0,
- /* 0x0fd */ OPT_YAZ1,
- /* 0x0fe */ OPT_XYZ,
- /* 0x0ff */ OPT_BZ,
- /* 0x100 */ OPT_SH,
- /* 0x101 */ OPT_BASH,
- /* 0x102 */ OPT_JSON,
- /* 0x103 */ OPT_PHP,
- /* 0x104 */ OPT_MAKEDOC,
- /* 0x105 */ OPT_VAR,
- /* 0x106 */ OPT_ARRAY,
- /* 0x107 */ OPT_AVAR,
- /* 0x108 */ OPT_CASE,
- /* 0x109 */ OPT_FMODES,
- /* 0x10a */ OPT_INSTALL,
- /* 0x10b */ OPT_ANALYZE,
- /* 0x10c */ OPT_ANALYZE_MODE,
- /* 0x10d */ OPT_OLD,
- /* 0x10e */ OPT_STD,
- /* 0x10f */ OPT_NEW,
- /* 0x110 */ OPT_EXTRACT,
- /* 0x111 */ OPT_REFERENCE,
- /* 0x112 */ OPT_NUMBER,
- /* 0x113 */ OPT_REMOVE_SRC,
- /* 0x114 */ OPT_IGNORE_SETUP,
- /* 0x115 */ OPT_PURGE,
- /* 0x116 */ OPT_ALIGN_U8,
- /* 0x117 */ OPT_ALIGN_PACK,
- /* 0x118 */ OPT_ALIGN_BRRES,
- /* 0x119 */ OPT_ALIGN_BREFF,
- /* 0x11a */ OPT_ALIGN_BREFT,
- /* 0x11b */ OPT_ALIGN,
- /* 0x11c */ OPT_ENCODE_ALL,
- /* 0x11d */ OPT_ENCODE_IMG,
- /* 0x11e */ OPT_NO_ENCODE,
- /* 0x11f */ OPT_NO_RECURSE,
- /* 0x120 */ OPT_AUTO_ADD,
- /* 0x121 */ OPT_NO_ECHO,
- /* 0x122 */ OPT_PT_DIR,
- /* 0x123 */ OPT_RM_AIPARAM,
- /* 0x124 */ OPT_U8,
- /* 0x125 */ OPT_SZS,
- /* 0x126 */ OPT_WU8,
- /* 0x127 */ OPT_XWU8,
- /* 0x128 */ OPT_WBZ,
- /* 0x129 */ OPT_PACK,
- /* 0x12a */ OPT_BRRES,
- /* 0x12b */ OPT_BREFF,
- /* 0x12c */ OPT_BREFT,
- /* 0x12d */ OPT_NO_COMPRESS,
- /* 0x12e */ OPT_FAST,
- /* 0x12f */ OPT_LINKS,
- /* 0x130 */ OPT_BASEDIR,
- /* 0x131 */ OPT_DECODE,
- /* 0x132 */ OPT_MIPMAPS,
- /* 0x133 */ OPT_NO_MIPMAPS,
- /* 0x134 */ OPT_N_MIPMAPS,
- /* 0x135 */ OPT_MAX_MIPMAPS,
- /* 0x136 */ OPT_MIPMAP_SIZE,
- /* 0x137 */ OPT_FAST_MIPMAPS,
- /* 0x138 */ OPT_CMPR_DEFAULT,
- /* 0x139 */ OPT_CUT,
- /* 0x13a */ OPT_RAW,
- /* 0x13b */ OPT_SECTIONS,
- /* 0x13c */ 0,0,0,0,
+ /* 0x0dd */ OPT_LOG_CACHE,
+ /* 0x0de */ OPT_PARALLEL,
+ /* 0x0df */ OPT_ID,
+ /* 0x0e0 */ OPT_BASE64,
+ /* 0x0e1 */ OPT_DB64,
+ /* 0x0e2 */ OPT_CODING,
+ /* 0x0e3 */ OPT_VERIFY,
+ /* 0x0e4 */ OPT_ROUND,
+ /* 0x0e5 */ OPT_IN_ORDER,
+ /* 0x0e6 */ OPT_PIPE,
+ /* 0x0e7 */ OPT_DELTA,
+ /* 0x0e8 */ OPT_DIFF,
+ /* 0x0e9 */ OPT_EPSILON,
+ /* 0x0ea */ OPT_BMG_ENDIAN,
+ /* 0x0eb */ OPT_BMG_ENCODING,
+ /* 0x0ec */ OPT_BMG_INF_SIZE,
+ /* 0x0ed */ OPT_BMG_MID,
+ /* 0x0ee */ OPT_FORCE_ATTRIB,
+ /* 0x0ef */ OPT_DEF_ATTRIB,
+ /* 0x0f0 */ OPT_NO_ATTRIB,
+ /* 0x0f1 */ OPT_X_ESCAPES,
+ /* 0x0f2 */ OPT_OLD_ESCAPES,
+ /* 0x0f3 */ OPT_NO_BMG_COLORS,
+ /* 0x0f4 */ OPT_BMG_COLORS,
+ /* 0x0f5 */ OPT_NO_BMG_INLINE,
+ /* 0x0f6 */ OPT_AUTOADD_PATH,
+ /* 0x0f7 */ OPT_STRIP,
+ /* 0x0f8 */ OPT_UTF_8,
+ /* 0x0f9 */ OPT_NO_UTF_8,
+ /* 0x0fa */ OPT_FORCE,
+ /* 0x0fb */ OPT_REPAIR_MAGICS,
+ /* 0x0fc */ OPT_TINY,
+ /* 0x0fd */ OPT_YAZ0,
+ /* 0x0fe */ OPT_YAZ1,
+ /* 0x0ff */ OPT_XYZ,
+ /* 0x100 */ OPT_BZ,
+ /* 0x101 */ OPT_SH,
+ /* 0x102 */ OPT_BASH,
+ /* 0x103 */ OPT_JSON,
+ /* 0x104 */ OPT_PHP,
+ /* 0x105 */ OPT_MAKEDOC,
+ /* 0x106 */ OPT_VAR,
+ /* 0x107 */ OPT_ARRAY,
+ /* 0x108 */ OPT_AVAR,
+ /* 0x109 */ OPT_CASE,
+ /* 0x10a */ OPT_FMODES,
+ /* 0x10b */ OPT_INSTALL,
+ /* 0x10c */ OPT_ANALYZE,
+ /* 0x10d */ OPT_ANALYZE_MODE,
+ /* 0x10e */ OPT_OLD,
+ /* 0x10f */ OPT_STD,
+ /* 0x110 */ OPT_NEW,
+ /* 0x111 */ OPT_EXTRACT,
+ /* 0x112 */ OPT_REFERENCE,
+ /* 0x113 */ OPT_NUMBER,
+ /* 0x114 */ OPT_REMOVE_SRC,
+ /* 0x115 */ OPT_IGNORE_SETUP,
+ /* 0x116 */ OPT_PURGE,
+ /* 0x117 */ OPT_ALIGN_U8,
+ /* 0x118 */ OPT_ALIGN_PACK,
+ /* 0x119 */ OPT_ALIGN_BRRES,
+ /* 0x11a */ OPT_ALIGN_BREFF,
+ /* 0x11b */ OPT_ALIGN_BREFT,
+ /* 0x11c */ OPT_ALIGN,
+ /* 0x11d */ OPT_ENCODE_ALL,
+ /* 0x11e */ OPT_ENCODE_IMG,
+ /* 0x11f */ OPT_NO_ENCODE,
+ /* 0x120 */ OPT_NO_RECURSE,
+ /* 0x121 */ OPT_AUTO_ADD,
+ /* 0x122 */ OPT_NO_ECHO,
+ /* 0x123 */ OPT_PT_DIR,
+ /* 0x124 */ OPT_RM_AIPARAM,
+ /* 0x125 */ OPT_U8,
+ /* 0x126 */ OPT_SZS,
+ /* 0x127 */ OPT_WU8,
+ /* 0x128 */ OPT_XWU8,
+ /* 0x129 */ OPT_WBZ,
+ /* 0x12a */ OPT_PACK,
+ /* 0x12b */ OPT_BRRES,
+ /* 0x12c */ OPT_BREFF,
+ /* 0x12d */ OPT_BREFT,
+ /* 0x12e */ OPT_NO_COMPRESS,
+ /* 0x12f */ OPT_FAST,
+ /* 0x130 */ OPT_LINKS,
+ /* 0x131 */ OPT_BASEDIR,
+ /* 0x132 */ OPT_DECODE,
+ /* 0x133 */ OPT_MIPMAPS,
+ /* 0x134 */ OPT_NO_MIPMAPS,
+ /* 0x135 */ OPT_N_MIPMAPS,
+ /* 0x136 */ OPT_MAX_MIPMAPS,
+ /* 0x137 */ OPT_MIPMAP_SIZE,
+ /* 0x138 */ OPT_FAST_MIPMAPS,
+ /* 0x139 */ OPT_CMPR_DEFAULT,
+ /* 0x13a */ OPT_CUT,
+ /* 0x13b */ OPT_RAW,
+ /* 0x13c */ OPT_SECTIONS,
+ /* 0x13d */ 0,0,0,
};
//
@@ -3170,7 +3188,16 @@ static u8 option_allowed_cmd_EXPAND[142] = // cmd #6
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[142] = // cmd #7
+static u8 option_allowed_cmd_WILDCARDS[142] = // cmd #7
+{
+ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
+ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0,
+ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
+ 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
+ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
+};
+
+static u8 option_allowed_cmd_TEST[142] = // cmd #8
{
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
@@ -3179,7 +3206,7 @@ static u8 option_allowed_cmd_TEST[142] = // cmd #7
1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1
};
-static u8 option_allowed_cmd_COLORS[142] = // cmd #8
+static u8 option_allowed_cmd_COLORS[142] = // cmd #9
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0,
@@ -3188,7 +3215,7 @@ static u8 option_allowed_cmd_COLORS[142] = // cmd #8
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_ERROR[142] = // cmd #9
+static u8 option_allowed_cmd_ERROR[142] = // cmd #10
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0,
@@ -3197,7 +3224,7 @@ static u8 option_allowed_cmd_ERROR[142] = // cmd #9
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_FILETYPE[142] = // cmd #10
+static u8 option_allowed_cmd_FILETYPE[142] = // cmd #11
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3206,7 +3233,7 @@ static u8 option_allowed_cmd_FILETYPE[142] = // cmd #10
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_UI_CHECK[142] = // cmd #11
+static u8 option_allowed_cmd_UI_CHECK[142] = // cmd #12
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3215,7 +3242,7 @@ static u8 option_allowed_cmd_UI_CHECK[142] = // cmd #11
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FILEATTRIB[142] = // cmd #12
+static u8 option_allowed_cmd_FILEATTRIB[142] = // cmd #13
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0,
@@ -3224,7 +3251,7 @@ static u8 option_allowed_cmd_FILEATTRIB[142] = // cmd #12
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_BRSUB[142] = // cmd #13
+static u8 option_allowed_cmd_BRSUB[142] = // cmd #14
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3233,7 +3260,7 @@ static u8 option_allowed_cmd_BRSUB[142] = // cmd #13
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_SYMBOLS[142] = // cmd #14
+static u8 option_allowed_cmd_SYMBOLS[142] = // cmd #15
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0,
@@ -3242,7 +3269,7 @@ static u8 option_allowed_cmd_SYMBOLS[142] = // cmd #14
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FUNCTIONS[142] = // cmd #15
+static u8 option_allowed_cmd_FUNCTIONS[142] = // cmd #16
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0,
@@ -3251,7 +3278,7 @@ static u8 option_allowed_cmd_FUNCTIONS[142] = // cmd #15
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_CALCULATE[142] = // cmd #16
+static u8 option_allowed_cmd_CALCULATE[142] = // 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,
@@ -3260,7 +3287,7 @@ static u8 option_allowed_cmd_CALCULATE[142] = // cmd #16
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_MATRIX[142] = // cmd #17
+static u8 option_allowed_cmd_MATRIX[142] = // cmd #18
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0,
@@ -3269,7 +3296,7 @@ static u8 option_allowed_cmd_MATRIX[142] = // cmd #17
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FLOAT[142] = // cmd #18
+static u8 option_allowed_cmd_FLOAT[142] = // cmd #19
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0,
@@ -3278,7 +3305,7 @@ static u8 option_allowed_cmd_FLOAT[142] = // cmd #18
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_VR_CALC[142] = // cmd #19
+static u8 option_allowed_cmd_VR_CALC[142] = // cmd #20
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0,
@@ -3287,7 +3314,7 @@ static u8 option_allowed_cmd_VR_CALC[142] = // cmd #19
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_VR_RACE[142] = // cmd #20
+static u8 option_allowed_cmd_VR_RACE[142] = // cmd #21
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3296,7 +3323,7 @@ static u8 option_allowed_cmd_VR_RACE[142] = // cmd #20
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_AUTOADD[142] = // cmd #21
+static u8 option_allowed_cmd_AUTOADD[142] = // 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,
@@ -3305,7 +3332,7 @@ static u8 option_allowed_cmd_AUTOADD[142] = // cmd #21
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_TRACKS[142] = // cmd #22
+static u8 option_allowed_cmd_TRACKS[142] = // cmd #23
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,1,0,
@@ -3314,16 +3341,16 @@ static u8 option_allowed_cmd_TRACKS[142] = // cmd #22
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0
};
-static u8 option_allowed_cmd_SCANCACHE[142] = // cmd #23
+static u8 option_allowed_cmd_SCANCACHE[142] = // cmd #24
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
- 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
+ 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_EXPORT[142] = // cmd #24
+static u8 option_allowed_cmd_EXPORT[142] = // cmd #25
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3332,7 +3359,7 @@ static u8 option_allowed_cmd_EXPORT[142] = // cmd #24
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_SIZEOF[142] = // cmd #25
+static u8 option_allowed_cmd_SIZEOF[142] = // cmd #26
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0,
@@ -3341,7 +3368,7 @@ static u8 option_allowed_cmd_SIZEOF[142] = // cmd #25
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_CODE[142] = // cmd #26
+static u8 option_allowed_cmd_CODE[142] = // cmd #27
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3350,7 +3377,7 @@ static u8 option_allowed_cmd_CODE[142] = // cmd #26
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_RECODE[142] = // cmd #27
+static u8 option_allowed_cmd_RECODE[142] = // cmd #28
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3359,7 +3386,7 @@ static u8 option_allowed_cmd_RECODE[142] = // cmd #27
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_SUBFILE[142] = // cmd #28
+static u8 option_allowed_cmd_SUBFILE[142] = // cmd #29
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3368,7 +3395,7 @@ static u8 option_allowed_cmd_SUBFILE[142] = // cmd #28
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_TESTNORM[142] = // cmd #29
+static u8 option_allowed_cmd_TESTNORM[142] = // cmd #30
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3377,7 +3404,7 @@ static u8 option_allowed_cmd_TESTNORM[142] = // cmd #29
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_LIST[142] = // cmd #30
+static u8 option_allowed_cmd_LIST[142] = // cmd #31
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3386,7 +3413,7 @@ static u8 option_allowed_cmd_LIST[142] = // cmd #30
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_LIST_L[142] = // cmd #31
+static u8 option_allowed_cmd_LIST_L[142] = // cmd #32
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3395,7 +3422,7 @@ static u8 option_allowed_cmd_LIST_L[142] = // cmd #31
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_LIST_LL[142] = // cmd #32
+static u8 option_allowed_cmd_LIST_LL[142] = // cmd #33
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3404,7 +3431,7 @@ static u8 option_allowed_cmd_LIST_LL[142] = // cmd #32
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_LIST_LLL[142] = // cmd #33
+static u8 option_allowed_cmd_LIST_LLL[142] = // cmd #34
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3413,7 +3440,7 @@ static u8 option_allowed_cmd_LIST_LLL[142] = // cmd #33
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_LIST_A[142] = // cmd #34
+static u8 option_allowed_cmd_LIST_A[142] = // cmd #35
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3422,7 +3449,7 @@ static u8 option_allowed_cmd_LIST_A[142] = // cmd #34
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_LIST_LA[142] = // cmd #35
+static u8 option_allowed_cmd_LIST_LA[142] = // cmd #36
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0,
@@ -3431,7 +3458,7 @@ static u8 option_allowed_cmd_LIST_LA[142] = // cmd #35
1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_NAME_REF[142] = // cmd #36
+static u8 option_allowed_cmd_NAME_REF[142] = // cmd #37
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0,
@@ -3440,7 +3467,7 @@ static u8 option_allowed_cmd_NAME_REF[142] = // cmd #36
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_ILIST[142] = // cmd #37
+static u8 option_allowed_cmd_ILIST[142] = // cmd #38
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3449,7 +3476,7 @@ static u8 option_allowed_cmd_ILIST[142] = // cmd #37
1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_ILIST_L[142] = // cmd #38
+static u8 option_allowed_cmd_ILIST_L[142] = // cmd #39
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3458,7 +3485,7 @@ static u8 option_allowed_cmd_ILIST_L[142] = // cmd #38
1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_ILIST_LL[142] = // cmd #39
+static u8 option_allowed_cmd_ILIST_LL[142] = // cmd #40
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3467,7 +3494,7 @@ static u8 option_allowed_cmd_ILIST_LL[142] = // cmd #39
1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_ILIST_A[142] = // cmd #40
+static u8 option_allowed_cmd_ILIST_A[142] = // cmd #41
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3476,7 +3503,7 @@ static u8 option_allowed_cmd_ILIST_A[142] = // cmd #40
1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_ILIST_LA[142] = // cmd #41
+static u8 option_allowed_cmd_ILIST_LA[142] = // cmd #42
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,
@@ -3485,7 +3512,7 @@ static u8 option_allowed_cmd_ILIST_LA[142] = // cmd #41
1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_MEMORY[142] = // cmd #42
+static u8 option_allowed_cmd_MEMORY[142] = // cmd #43
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3494,7 +3521,7 @@ static u8 option_allowed_cmd_MEMORY[142] = // cmd #42
1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_MEMORY_A[142] = // cmd #43
+static u8 option_allowed_cmd_MEMORY_A[142] = // cmd #44
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3503,7 +3530,7 @@ static u8 option_allowed_cmd_MEMORY_A[142] = // cmd #43
1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0
};
-static u8 option_allowed_cmd_DUMP[142] = // cmd #44
+static u8 option_allowed_cmd_DUMP[142] = // cmd #45
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3512,7 +3539,7 @@ static u8 option_allowed_cmd_DUMP[142] = // cmd #44
1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_SHA1[142] = // cmd #45
+static u8 option_allowed_cmd_SHA1[142] = // cmd #46
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 0,1,0,0,0,
@@ -3521,7 +3548,7 @@ static u8 option_allowed_cmd_SHA1[142] = // cmd #45
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[142] = // cmd #46
+static u8 option_allowed_cmd_ANALYZE[142] = // cmd #47
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3530,7 +3557,7 @@ static u8 option_allowed_cmd_ANALYZE[142] = // cmd #46
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_SPLIT[142] = // cmd #47
+static u8 option_allowed_cmd_SPLIT[142] = // cmd #48
{
0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3539,7 +3566,7 @@ static u8 option_allowed_cmd_SPLIT[142] = // cmd #47
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_IS_TEXTURE[142] = // cmd #48
+static u8 option_allowed_cmd_IS_TEXTURE[142] = // cmd #49
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3548,7 +3575,7 @@ static u8 option_allowed_cmd_IS_TEXTURE[142] = // cmd #48
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_FEATURES[142] = // cmd #49
+static u8 option_allowed_cmd_FEATURES[142] = // cmd #50
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0,
@@ -3557,7 +3584,7 @@ static u8 option_allowed_cmd_FEATURES[142] = // cmd #49
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_DISTRIBUTION[142] = // cmd #50
+static u8 option_allowed_cmd_DISTRIBUTION[142] = // cmd #51
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0,
@@ -3566,7 +3593,7 @@ static u8 option_allowed_cmd_DISTRIBUTION[142] = // cmd #50
1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_DIFF[142] = // cmd #51
+static u8 option_allowed_cmd_DIFF[142] = // cmd #52
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3575,7 +3602,7 @@ static u8 option_allowed_cmd_DIFF[142] = // cmd #51
0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,1,1, 0,0
};
-static u8 option_allowed_cmd_CHECK[142] = // cmd #52
+static u8 option_allowed_cmd_CHECK[142] = // cmd #53
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,1, 0,1,0,0,0,
@@ -3584,7 +3611,7 @@ static u8 option_allowed_cmd_CHECK[142] = // cmd #52
1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_SLOTS[142] = // cmd #53
+static u8 option_allowed_cmd_SLOTS[142] = // cmd #54
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,0,0,0,
@@ -3593,7 +3620,7 @@ static u8 option_allowed_cmd_SLOTS[142] = // cmd #53
1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_STGI[142] = // cmd #54
+static u8 option_allowed_cmd_STGI[142] = // cmd #55
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0,
@@ -3602,7 +3629,7 @@ static u8 option_allowed_cmd_STGI[142] = // cmd #54
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_ISARENA[142] = // cmd #55
+static u8 option_allowed_cmd_ISARENA[142] = // cmd #56
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0,
@@ -3611,7 +3638,7 @@ static u8 option_allowed_cmd_ISARENA[142] = // cmd #55
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_NORMALIZE[142] = // cmd #56
+static u8 option_allowed_cmd_NORMALIZE[142] = // cmd #57
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3620,7 +3647,7 @@ static u8 option_allowed_cmd_NORMALIZE[142] = // cmd #56
0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_PATCH[142] = // cmd #57
+static u8 option_allowed_cmd_PATCH[142] = // cmd #58
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3629,7 +3656,7 @@ static u8 option_allowed_cmd_PATCH[142] = // cmd #57
0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_COPY[142] = // cmd #58
+static u8 option_allowed_cmd_COPY[142] = // cmd #59
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3638,7 +3665,7 @@ static u8 option_allowed_cmd_COPY[142] = // cmd #58
0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_DUPLICATE[142] = // cmd #59
+static u8 option_allowed_cmd_DUPLICATE[142] = // cmd #60
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3647,7 +3674,7 @@ static u8 option_allowed_cmd_DUPLICATE[142] = // cmd #59
0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_MINIMAP[142] = // cmd #60
+static u8 option_allowed_cmd_MINIMAP[142] = // cmd #61
{
0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,
@@ -3656,7 +3683,7 @@ static u8 option_allowed_cmd_MINIMAP[142] = // cmd #60
0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_COMPRESS[142] = // cmd #61
+static u8 option_allowed_cmd_COMPRESS[142] = // cmd #62
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3665,7 +3692,7 @@ static u8 option_allowed_cmd_COMPRESS[142] = // cmd #61
0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_DECOMPRESS[142] = // cmd #62
+static u8 option_allowed_cmd_DECOMPRESS[142] = // cmd #63
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3674,7 +3701,7 @@ static u8 option_allowed_cmd_DECOMPRESS[142] = // cmd #62
0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_ENCODE[142] = // cmd #63
+static u8 option_allowed_cmd_ENCODE[142] = // cmd #64
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3683,7 +3710,7 @@ static u8 option_allowed_cmd_ENCODE[142] = // cmd #63
0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_CREATE[142] = // cmd #64
+static u8 option_allowed_cmd_CREATE[142] = // cmd #65
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3692,7 +3719,7 @@ static u8 option_allowed_cmd_CREATE[142] = // cmd #64
1,1,1,1,1, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0
};
-static u8 option_allowed_cmd_UPDATE[142] = // cmd #65
+static u8 option_allowed_cmd_UPDATE[142] = // cmd #66
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3701,7 +3728,7 @@ static u8 option_allowed_cmd_UPDATE[142] = // cmd #65
0,0,1,1,1, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,1, 0,0
};
-static u8 option_allowed_cmd_EXTRACT[142] = // cmd #66
+static u8 option_allowed_cmd_EXTRACT[142] = // cmd #67
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1,
@@ -3710,7 +3737,7 @@ static u8 option_allowed_cmd_EXTRACT[142] = // cmd #66
0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_XDECODE[142] = // cmd #67
+static u8 option_allowed_cmd_XDECODE[142] = // cmd #68
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1,
@@ -3719,7 +3746,7 @@ static u8 option_allowed_cmd_XDECODE[142] = // cmd #67
0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_XEXPORT[142] = // cmd #68
+static u8 option_allowed_cmd_XEXPORT[142] = // cmd #69
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1,
@@ -3728,7 +3755,7 @@ static u8 option_allowed_cmd_XEXPORT[142] = // cmd #68
0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_XALL[142] = // cmd #69
+static u8 option_allowed_cmd_XALL[142] = // cmd #70
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1,
@@ -3737,7 +3764,7 @@ static u8 option_allowed_cmd_XALL[142] = // cmd #69
0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0
};
-static u8 option_allowed_cmd_XCOMMON[142] = // cmd #70
+static u8 option_allowed_cmd_XCOMMON[142] = // cmd #71
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3746,7 +3773,7 @@ static u8 option_allowed_cmd_XCOMMON[142] = // cmd #70
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_BINARY[142] = // cmd #71
+static u8 option_allowed_cmd_BINARY[142] = // cmd #72
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3755,7 +3782,7 @@ static u8 option_allowed_cmd_BINARY[142] = // cmd #71
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_TEXT[142] = // cmd #72
+static u8 option_allowed_cmd_TEXT[142] = // cmd #73
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1,
@@ -3764,7 +3791,7 @@ static u8 option_allowed_cmd_TEXT[142] = // cmd #72
0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_CAT[142] = // cmd #73
+static u8 option_allowed_cmd_CAT[142] = // cmd #74
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1,
@@ -3773,7 +3800,7 @@ static u8 option_allowed_cmd_CAT[142] = // cmd #73
0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_BMG[142] = // cmd #74
+static u8 option_allowed_cmd_BMG[142] = // cmd #75
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0,
@@ -3782,7 +3809,7 @@ static u8 option_allowed_cmd_BMG[142] = // cmd #74
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_KCL[142] = // cmd #75
+static u8 option_allowed_cmd_KCL[142] = // cmd #76
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0,
@@ -3791,7 +3818,7 @@ static u8 option_allowed_cmd_KCL[142] = // cmd #75
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_KMP[142] = // cmd #76
+static u8 option_allowed_cmd_KMP[142] = // cmd #77
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0,
@@ -3800,7 +3827,7 @@ static u8 option_allowed_cmd_KMP[142] = // cmd #76
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_LEX[142] = // cmd #77
+static u8 option_allowed_cmd_LEX[142] = // cmd #78
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0,
@@ -3809,7 +3836,7 @@ static u8 option_allowed_cmd_LEX[142] = // cmd #77
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_INFO[142] = // cmd #78
+static u8 option_allowed_cmd_INFO[142] = // cmd #79
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0,
@@ -3818,7 +3845,7 @@ static u8 option_allowed_cmd_INFO[142] = // cmd #78
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_GHOST[142] = // cmd #79
+static u8 option_allowed_cmd_GHOST[142] = // cmd #80
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0,
@@ -3827,7 +3854,7 @@ static u8 option_allowed_cmd_GHOST[142] = // cmd #79
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1
};
-static u8 option_allowed_cmd_YAZDUMP[142] = // cmd #80
+static u8 option_allowed_cmd_YAZDUMP[142] = // cmd #81
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
@@ -3836,7 +3863,7 @@ static u8 option_allowed_cmd_YAZDUMP[142] = // cmd #80
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0
};
-static u8 option_allowed_cmd_VEHICLE[142] = // cmd #81
+static u8 option_allowed_cmd_VEHICLE[142] = // cmd #82
{
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0,
@@ -3906,6 +3933,7 @@ static const InfoOption_t * option_tab_tool[] =
OptionInfo + OPT_LEX_RM_FEAT,
OptionInfo + OPT_CACHE,
OptionInfo + OPT_CNAME,
+ OptionInfo + OPT_LOG_CACHE,
OptionInfo + OPT_PARALLEL,
OptionInfo + OPT_MAX_FILE_SIZE,
OptionInfo + OPT_TRACKS,
@@ -3997,6 +4025,14 @@ static const InfoOption_t * option_tab_cmd_EXPAND[] =
0
};
+static const InfoOption_t * option_tab_cmd_WILDCARDS[] =
+{
+ OptionInfo + OPT_IGNORE,
+ OptionInfo + OPT_IN_ORDER,
+
+ 0
+};
+
static const InfoOption_t * option_tab_cmd_TEST[] =
{
&option_cmd_TEST_VERBOSE,
@@ -4161,7 +4197,9 @@ static const InfoOption_t * option_tab_cmd_TRACKS[] =
static const InfoOption_t * option_tab_cmd_SCANCACHE[] =
{
OptionInfo + OPT_CACHE,
+ OptionInfo + OPT_LOG_CACHE,
OptionInfo + OPT_PURGE,
+ &option_cmd_SCANCACHE_FAST,
0
};
@@ -7270,7 +7308,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
" SZS, U8, PACK, BRRES, BREFF and BREFT archives. Additonally, RARC"
" archive can be extracted. It is also a wrapper to all other tools.",
0,
- 75,
+ 76,
option_tab_tool,
0
},
@@ -7369,15 +7407,36 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
"This debug command accepts (like ARGTEST) all kinds of parameters and"
" prints one line for each parameter. After that, the parameter is"
" treated as a filename with wildcards and all matching files are"
- " searched. The special parameters '+h' and '/h' enable or disable the"
+ " 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.",
+ " point) for the following parameters. All tools know the EXPAND"
+ " command.",
0,
0,
option_tab_cmd_EXPAND,
option_allowed_cmd_EXPAND
},
+ { CMD_WILDCARDS,
+ false,
+ false,
+ false,
+ "WILDCARDS",
+ 0,
+ "wszst WILDCARDS pattern...",
+ " Each parameter is treated as a filename. Wildcards are accepted, see"
+ " https://szs.wiimm.de/doc/wildcards for details. After evaluating the"
+ " wildcards, all input files are sorted according to their path and"
+ " duplicates are deleted. The special parameters '+h' and '_h' enable"
+ " or disable the search for hidden directories and files (files"
+ " beginning with a point) for the following parameters. Finally, one"
+ " line is printed for each file name of the list.",
+ 0,
+ 2,
+ option_tab_cmd_WILDCARDS,
+ option_allowed_cmd_WILDCARDS
+ },
+
{ CMD_TEST,
false,
false,
@@ -7671,7 +7730,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] =
" directory. The file is used by option --cache to optimize file"
" access.",
0,
- 2,
+ 4,
option_tab_cmd_SCANCACHE,
option_allowed_cmd_SCANCACHE
},
diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h
index d0fa879..2db44e8 100644
--- a/project/src/ui/ui-wszst.h
+++ b/project/src/ui/ui-wszst.h
@@ -256,6 +256,7 @@ typedef enum enumOptions
OPT_LEX_RM_FEAT,
OPT_CACHE,
OPT_CNAME,
+ OPT_LOG_CACHE,
OPT_PARALLEL,
OPT_MAX_FILE_SIZE,
OPT_TRACKS,
@@ -285,7 +286,7 @@ typedef enum enumOptions
OPT_NEW,
OPT_EXTRACT,
- OPT__N_TOTAL // == 224
+ OPT__N_TOTAL // == 225
} enumOptions;
@@ -598,6 +599,9 @@ typedef enum enumOptions
//
// OB_CMD_EXPAND = ~(u64)0,
//
+// OB_CMD_WILDCARDS = OB_IGNORE
+// | OB_IN_ORDER,
+//
// OB_CMD_TEST = ~(u64)0,
//
// OB_CMD_COLORS = OB_LONG
@@ -654,7 +658,8 @@ typedef enum enumOptions
// | OB_PIPE
// | OB_LOAD_BMG,
//
-// OB_CMD_SCANCACHE = OB_PURGE,
+// OB_CMD_SCANCACHE = OB_PURGE
+// | OB_FAST,
//
// OB_CMD_EXPORT = 0,
//
@@ -989,6 +994,7 @@ typedef enum enumCommands
CMD_INSTALL,
CMD_ARGTEST,
CMD_EXPAND,
+ CMD_WILDCARDS,
CMD_TEST,
CMD_COLORS,
CMD_ERROR,
@@ -1073,7 +1079,7 @@ typedef enum enumCommands
CMD_VEHICLE,
- CMD__N // == 82
+ CMD__N // == 83
} enumCommands;
@@ -1217,6 +1223,7 @@ typedef enum enumGetOpt
GO_NO_COPY,
GO_CACHE,
GO_CNAME,
+ GO_LOG_CACHE,
GO_PARALLEL,
GO_ID,
GO_BASE64,
diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def
index bbe5c8a..51bcbd5 100644
--- a/project/src/ui/ui.def
+++ b/project/src/ui/ui.def
@@ -50,9 +50,20 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
+
+#:def_cmd( "WILDCARDS", "WILDCARDS", \
+ "wszst WILDCARDS pattern...", \
+ " Each parameter is treated as a filename. $Wildcards$ are accepted." \
+ " After evaluating the wildcards, all input files are sorted according" \
+ " to their path and duplicates are deleted. The special parameters" \
+ " '+h' and '_h' enable or disable the search for hidden directories" \
+ " and files (files beginning with a point) for the following" \
+ " parameters. Finally, one line is printed for each file name of the" \
+ " list." )
#:def_cmd( "TEST", "TEST", \
"wszst TEST [options]... [ignored]...", \
@@ -600,7 +611,7 @@
"Be verbose and print more progress information. Multiple usage is" \
" possible. The impact is command dependent." )
-#:def_opt( "LOGGING", "L|logging", "GM", \
+#:def_opt( "LOGGING", "L|logging|log", "GM", \
"", \
"This debug option enables the logging of internal lists and maps. Set" \
" it up to three times to be more verbose." )
@@ -1363,6 +1374,11 @@
" cache name. The name is used only once for the very first cache" \
" candidate." )
+#:def_opt( "LOG_CACHE", "log-cache|logcache", "GP", \
+ "file", \
+ "Define a file to log chache activities. The file is openend in" \
+ " append-mode." )
+
#:def_opt( "PARALLEL", "parallel", "G", \
"", \
"Tell the tool that it will be called multiple times in parallel." \
@@ -2144,6 +2160,14 @@
"", \
"" )
+#:def_cmd_opt( "WILDCARDS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "WILDCARDS", "IN_ORDER", \
+ "", \
+ "" )
+
#:def_cmd_opt( "TEST", "VERBOSE", \
"", \
"Print the matrices of transformations." )
@@ -2416,10 +2440,19 @@
"", \
"" )
+#:def_cmd_opt( "SCANCACHE", "LOG_CACHE", \
+ "", \
+ "" )
+
#:def_cmd_opt( "SCANCACHE", "PURGE", \
"", \
"" )
+#:def_cmd_opt( "SCANCACHE", "FAST", \
+ "", \
+ "Scan 'cache-content.txt' and remove duplicates. Ignore option" \
+ " {--purge}." )
+
#:def_cmd_opt( "SIZEOF", "SORT", \
"", \
"Define a sort mode. Keywords are: @NONE@ (default), @NAME@ end" \
@@ -5597,7 +5630,7 @@
#:def_cmd_opt( "FEATURES", "BRIEF", \
"", \
- "Suppres any comments at all. If set twice, suppress empty lines (for" \
+ "Suppres comments at all. If set twice, suppress empty lines (for" \
" grouping) too. If set three times, omit inactive features (value 0)" \
" too." )
@@ -12043,9 +12076,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wbmgt TEST [options]... [ignored]...", \
@@ -13341,9 +13375,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wctct TEST [options]... [ignored]...", \
@@ -14767,9 +14802,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wimgt TEST [options]... [ignored]...", \
@@ -15702,9 +15738,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wkclt TEST [options]... [ignored]...", \
@@ -18242,9 +18279,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wkmpt TEST [options]... [ignored]...", \
@@ -20390,9 +20428,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wlect TEST [options]... [ignored]...", \
@@ -20509,8 +20548,7 @@
"This command manages data for LE-CODE track distributions. It reads" \
" any number of source files with different file types, collects the" \
" data and creates any number of files with different file types." \
- " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for" \
- " details.\n" \
+ " $Wildcards$ are accepted.\n" \
" Use the command without keyword to get an extended description." )
#:def_cmd( "CAT", "CAT", \
@@ -22058,9 +22096,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wmdlt TEST [options]... [ignored]...", \
@@ -23374,9 +23413,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wpatt TEST [options]... [ignored]...", \
@@ -23993,9 +24033,10 @@
"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" \
+ " 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." )
+ " point) for the following parameters. All tools know the EXPAND" \
+ " command." )
#:def_cmd( "TEST", "TEST", \
"wstrt TEST [options]... [ignored]...", \
@@ -24044,10 +24085,13 @@
" @PAL@ (default), @USA@, @JAPAN@, @KOREA@, or any abbreviation of" \
" them. They select the region for the following addresses. The hex" \
" numbers (with or without @0x@ prefix) are interpreted as addresses." \
- " If an address begins with @m@ or @s@, then it is interpreted as a" \
- " file offset for @main.dol@ or @staticr.rel@. All addresses are" \
- " ported to all other regions. The result is printed as colorized" \
- " table." )
+ " If an address begins with @m@, @M@, @s@ or @S@, then it is" \
+ " interpreted as a file offset for @main.dol@ or @staticr.rel@. If the" \
+ " number begins with a point (@.@), then it is interpreted as a cheat" \
+ " code. In this case, the lowest 25 bits are interpreted as address" \
+ " and the highest 7 bits are saved and used for the address output." \
+ " All addresses are ported to all other regions. The result is printed" \
+ " as colorized table." )
#:def_cmd( "WHERE", "WHERE", \
"wstrt WHERE address...", \
diff --git a/project/src/wszst.c b/project/src/wszst.c
index cd5969b..767583d 100644
--- a/project/src/wszst.c
+++ b/project/src/wszst.c
@@ -806,7 +806,7 @@ enumError cmd_ui_check()
SetupPager();
StringField_t plist = {0};
- CollectExpandParam(&plist,first_param,-1);
+ CollectExpandParam(&plist,first_param,-1,0);
const bool have_dump = long_count >= 1;
const bool have_header = !have_dump && !brief_count && print_header;
@@ -1294,14 +1294,25 @@ static enumError cmd_scancache()
{
if (opt_cache)
AddParam(opt_cache);
+
if ( n_param != 1 )
return ERROR0(ERR_SYNTAX,"Exact one parameter (directory) expected.\n");
- if (!IsDirectory(first_param->arg,false))
- return ERROR0(ERR_SEMANTIC,"Directory expected: %s\n",first_param->arg);
+ szs_cache_dir = first_param->arg;
+ if (!IsDirectory(szs_cache_dir,false))
+ return ERROR0(ERR_SEMANTIC,"Directory expected: %s\n",szs_cache_dir);
+
+ bool force = false;
+ parallel_count = 0;
+ if (opt_fast)
+ {
+ LoadSZSCache();
+ force = true;
+ }
+ else
+ ScanSZSCache(first_param->arg,opt_purge);
- ScanSZSCache(first_param->arg,opt_purge);
- return SaveSZSCache();
+ return SaveSZSCache(force);
}
//
@@ -1854,7 +1865,7 @@ static enumError cmd_list ( int long_level )
}
StringField_t plist = {0};
- CollectExpandParam(&plist,first_param,-1);
+ CollectExpandParam(&plist,first_param,-1,0);
for ( int argi = 0; argi < plist.used; argi++ )
{
@@ -3739,6 +3750,8 @@ static enumError patch_file_helper
SearchPaths(fname,0,false,patch_file_search,&param);
return param.count
? param.max_err
+ : opt_ignore > 0
+ ? ERR_NOTHING_TO_DO
: ERROR0(ERR_CANT_OPEN,"File not found: %s\n",fname);
}
@@ -3898,7 +3911,7 @@ static enumError patch_file_helper
FreeExMem(&orig);
FreeExMem(&data);
ResetSZS(&szs);
- return err;
+ return parallel_count > 0 && err == ERR_NOTHING_TO_DO ? ERR_OK : err;
}
//-----------------------------------------------------------------------------
@@ -4475,7 +4488,7 @@ static enumError cmd_compress()
CompressSZS(&szs,true);
szs.dest_fname = 0;
- if ( szs.cache_used && (int)max_err < ERR_CACHE_USED )
+ if ( szs.cache_used && (int)max_err < ERR_CACHE_USED && parallel_count <= 0 )
max_err = ERR_CACHE_USED;
File_t F;
@@ -5876,6 +5889,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
case GO_NO_BMG_INLINE: opt_bmg_inline_attrib = false; break;
case GO_CACHE: opt_cache = optarg; break;
case GO_CNAME: opt_cname = optarg; break;
+ case GO_LOG_CACHE: opt_log_cache = optarg; break;
case GO_PARALLEL: parallel_count++; break;
case GO_ID: opt_id = true; break;
case GO_BASE64: opt_base64 = true; err += ScanOptCoding64(optarg); break;
@@ -5965,6 +5979,7 @@ static enumError CheckCommand ( int argc, char ** argv )
case CMD_INSTALL: err = cmd_install(); break;
case CMD_ARGTEST: err = cmd_argtest(argc,argv); break;
case CMD_EXPAND: err = cmd_expand(argc,argv); break;
+ case CMD_WILDCARDS: err = cmd_wildcards(argc,argv); break;
case CMD_TEST: err = cmd_test(); break;
case CMD_COLORS: err = Command_COLORS(brief_count?-brief_count:long_count,0,0); break;
case CMD_ERROR: err = cmd_error(); break;
@@ -6058,7 +6073,7 @@ static enumError CheckCommand ( int argc, char ** argv )
help_exit(false);
}
- SaveSZSCache();
+ SaveSZSCache(false);
return PrintErrorStat(err,verbose,cmd_ct->name1);
}
@@ -6227,7 +6242,7 @@ int main_wrapper ( int argc, char ** argv )
const uint bash = param & C_BASH;
const uint desttype = param & C_M_DEST;
- char mypath[PATH_MAX], dest[PATH_MAX+20];
+ char mypath[PATH_MAX], dest[sizeof(mypath)+20];
GetProgramPath(mypath,sizeof(mypath),true,argv[0]);
if (verbose)
printf("My Path: %s\n",mypath);
@@ -6236,7 +6251,7 @@ int main_wrapper ( int argc, char ** argv )
&& Count1Bits(&desttype,sizeof(desttype)) == 1
&& *mypath )
{
- memcpy(dest,mypath,sizeof(dest));
+ memcpy(dest,mypath,sizeof(mypath));
char *fname = strrchr(dest,'/');
fname = fname ? fname+1 : dest;
if (!*fname)
diff --git a/project/src/wtest.c b/project/src/wtest.c
index 02b3cb9..e66c89e 100644
--- a/project/src/wtest.c
+++ b/project/src/wtest.c
@@ -1890,7 +1890,7 @@ int test ( int argc, char ** argv )
c.g = 0x02;
c.b = 0x03;
c.a = 0x04;
- printf("col=%x\n",c.val);
+ printf("col:%x\n",c.val);
return 0;
}
@@ -4545,6 +4545,7 @@ static enumError develop ( int argc, char ** argv )
enum
{
CMD_HELP, // help_exit()
+ CMD_RELAX, // --
CMD_TEST, // test()
CMD_DEVELOP, // develop(argc,argv)
@@ -4623,6 +4624,7 @@ enum
static const KeywordTab_t CommandTab[] =
{
{ CMD_HELP, "HELP", "?", 0 },
+ { CMD_RELAX, "RELAX", 0, 0 },
{ CMD_TEST, "TEST", "T", 0 },
{ CMD_DEVELOP, "DEVELOP", "D", 0 },
@@ -4788,8 +4790,11 @@ int main ( int argc, char ** argv )
if (!cmd_ct->opt&1)
{
printf("***** %s *****\n",TITLE);
+ fprintf(stdout,"DCLIB_GNUC_VERSION = %d, DCLIB_GLIBC_VERSION = %d\n",
+ DCLIB_GNUC_VERSION, DCLIB_GLIBC_VERSION );
printf("term width = %d\n",GetTermWidth(80,0));
}
+
fflush(stdout);
argv[1] = argv[0];
@@ -4798,6 +4803,7 @@ int main ( int argc, char ** argv )
switch(cmd_ct->id)
{
+ case CMD_RELAX: break;
case CMD_TEST: test(argc,argv); break;
case CMD_DEVELOP: develop(argc,argv); break;