aboutsummaryrefslogtreecommitdiff
path: root/project/src/wbmgt.c
diff options
context:
space:
mode:
authorWiimm <wiimm@wiimm.de>2023-07-22 22:40:04 +0200
committerWiimm <wiimm@wiimm.de>2023-07-22 22:40:04 +0200
commit7a4ee26983b941ce0a8f72bcc02bf5566e9a7886 (patch)
tree202755942a4d5b67bedcd9f3c21eb2ababf8dd79 /project/src/wbmgt.c
parentb5b1fe7fc0cf460d6204c18ba7bb4c40f7597efa (diff)
SZS v2.36a
Diffstat (limited to '')
-rw-r--r--project/src/wbmgt.c52
1 files changed, 33 insertions, 19 deletions
diff --git a/project/src/wbmgt.c b/project/src/wbmgt.c
index c425d63..ed371c5 100644
--- a/project/src/wbmgt.c
+++ b/project/src/wbmgt.c
@@ -359,12 +359,14 @@ static enumError cmd_sections()
enumError max_err = ERR_OK;
- ParamList_t *param;
- for ( param = first_param; param; param = param->next )
+ StringField_t plist = {0};
+ CollectExpandParam(&plist,first_param,-1,WM__DEFAULT);
+
+ for ( int argi = 0; argi < plist.used; argi++ )
{
- NORMALIZE_FILENAME_PARAM(param);
+ ccp arg = plist.field[argi];
- enumError err = LoadRawData(&raw,false,param->arg,0,opt_ignore>0,0);
+ enumError err = LoadRawData(&raw,false,arg,0,opt_ignore>0,0);
if (err)
return err;
@@ -406,7 +408,7 @@ static enumError cmd_sections()
"%s hex hex size size magic size *size cut info\n"
"%s%.*s%s\n"
,
- colout->heading, param->arg,
+ colout->heading, arg,
colout->heading, sl->source_size, sl->source_size,
sl->endian->is_be ? " BE" : sl->endian->is_le ? " LE" : "",
sl->n_sections, sl->header->encoding,
@@ -453,6 +455,7 @@ static enumError cmd_sections()
FREE((void*)sl);
}
+ ResetStringField(&plist);
ResetRawData(&raw);
putchar('\n');
return max_err;
@@ -470,13 +473,15 @@ static enumError cmd_list()
if ( err > ERR_WARNING )
return err;
- ParamList_t *param;
- for ( param = first_param; param; param = param->next )
+ StringField_t plist = {0};
+ CollectExpandParam(&plist,first_param,-1,WM__DEFAULT);
+
+ for ( int argi = 0; argi < plist.used; argi++ )
{
- NORMALIZE_FILENAME_PARAM(param);
+ ccp arg = plist.field[argi];
bmg_t bmg;
- enumError err = LoadXBMG(&bmg,true,param->arg,true,opt_ignore>0);
+ enumError err = LoadXBMG(&bmg,true,arg,true,opt_ignore>0);
if ( err == ERR_NOT_EXISTS || err > ERR_WARNING && opt_ignore )
continue;
if ( err > ERR_WARNING )
@@ -514,6 +519,7 @@ static enumError cmd_list()
ResetBMG(&bmg);
}
+ ResetStringField(&plist);
ResetPatchingListBMG();
return ERR_OK;
}
@@ -529,13 +535,15 @@ static enumError cmd_slots()
if ( err > ERR_WARNING )
return err;
- ParamList_t *param;
- for ( param = first_param; param; param = param->next )
+ StringField_t plist = {0};
+ CollectExpandParam(&plist,first_param,-1,WM__DEFAULT);
+
+ for ( int argi = 0; argi < plist.used; argi++ )
{
- NORMALIZE_FILENAME_PARAM(param);
+ ccp arg = plist.field[argi];
bmg_t bmg;
- enumError err = LoadXBMG(&bmg,true,param->arg,true,opt_ignore>0);
+ enumError err = LoadXBMG(&bmg,true,arg,true,opt_ignore>0);
if ( err == ERR_NOT_EXISTS || err > ERR_WARNING && opt_ignore )
continue;
if ( err > ERR_WARNING )
@@ -558,7 +566,7 @@ static enumError cmd_slots()
"%sslot/hex mid/hex delta attributes\n"
"%s%.*s%s\n"
,
- colout->heading, GetNameFF_BMG(&bmg), param->arg,
+ colout->heading, GetNameFF_BMG(&bmg), arg,
colout->heading, seplen, ThinLine300_3,
colout->heading,
colout->heading, seplen, ThinLine300_3,
@@ -588,6 +596,7 @@ static enumError cmd_slots()
}
putchar('\n');
+ ResetStringField(&plist);
ResetPatchingListBMG();
return ERR_OK;
}
@@ -691,13 +700,15 @@ static enumError cmd_patch ( int cmd_id, ccp cmd_name, ccp def_path )
if ( err > ERR_WARNING )
return err;
- ParamList_t *param;
- for ( param = first_param; param; param = param->next )
+ StringField_t plist = {0};
+ CollectExpandParam(&plist,first_param,-1,WM__DEFAULT);
+
+ for ( int argi = 0; argi < plist.used; argi++ )
{
- NORMALIZE_FILENAME_PARAM(param);
+ ccp arg = plist.field[argi];
bmg_t bmg;
- enumError err = LoadXBMG(&bmg,true,param->arg,cmd_id!=CMD_PATCH,opt_ignore>0);
+ enumError err = LoadXBMG(&bmg,true,arg,cmd_id!=CMD_PATCH,opt_ignore>0);
if ( err == ERR_NOT_EXISTS || err > ERR_WARNING && opt_ignore )
continue;
if ( err > ERR_WARNING )
@@ -709,7 +720,7 @@ static enumError cmd_patch ( int cmd_id, ccp cmd_name, ccp def_path )
? FF_BMG
: FF_BMG_TXT;
- SubstDest(dest,sizeof(dest),param->arg,opt_dest,def_path,
+ SubstDest(dest,sizeof(dest),arg,opt_dest,def_path,
GetExtFF(dest_ff,0),false);
if ( verbose >= 0 || testmode )
@@ -734,6 +745,7 @@ static enumError cmd_patch ( int cmd_id, ccp cmd_name, ccp def_path )
ResetBMG(&bmg);
}
+ ResetStringField(&plist);
ResetPatchingListBMG();
return ERR_OK;
}
@@ -823,6 +835,8 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
case GO_LONG: long_count++; break;
case GO_NO_HEADER: print_header = false; break;
case GO_BRIEF: brief_count++; break;
+ case GO_NO_WILDCARDS: no_wildcards_count++; break;
+ case GO_IN_ORDER: inorder_count++; break;
case GO_BMG_ENDIAN: err += ScanOptBmgEndian(optarg); break;
case GO_BMG_ENCODING: err += ScanOptBmgEncoding(optarg); break;