From ad494a152cb83255a9ad383d8190e7ded6d72602 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sun, 4 Oct 2020 16:13:17 +0200 Subject: [PATCH] cliparser returns signed ints, to get unsigned 32 we need to use the double. --- client/deps/cliparser/cliparser.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/deps/cliparser/cliparser.h b/client/deps/cliparser/cliparser.h index 90b74f774..f82c40f7e 100644 --- a/client/deps/cliparser/cliparser.h +++ b/client/deps/cliparser/cliparser.h @@ -28,12 +28,18 @@ #define arg_get_dbl(ctx, n) (((struct arg_dbl*)((ctx)->argtable)[n])->dval[0]) #define arg_get_dbl_def(ctx, n, def)(arg_get_dbl_count((ctx), n) ? (arg_get_dbl((ctx), n)) : (def)) +#define arg_get_u32(ctx, n) (uint32_t)(((struct arg_dbl*)((ctx)->argtable)[n])->dval[0]) +#define arg_get_u32_def(ctx, n, def) (arg_get_dbl_count((ctx), n) ? (arg_get_u32((ctx), n)) : (uint32_t)(def)) + #define arg_get_str(ctx, n) ((struct arg_str*)((ctx)->argtable)[n]) #define arg_get_str_len(ctx, n) (strlen(((struct arg_str*)((ctx)->argtable)[n])->sval[0])) #define arg_strx1(shortopts, longopts, datatype, glossary) (arg_strn((shortopts), (longopts), (datatype), 1, 250, (glossary))) #define arg_strx0(shortopts, longopts, datatype, glossary) (arg_strn((shortopts), (longopts), (datatype), 0, 250, (glossary))) +#define arg_u32_0 arg_dbl0 +#define arg_u32_1 arg_dbl1 + #define CLIParserFree(ctx) if ((ctx)) {arg_freetable(ctx->argtable, ctx->argtableLen); free((ctx)); (ctx)=NULL;} #define CLIExecWithReturn(ctx, cmd, atbl, ifempty) if (CLIParserParseString(ctx, cmd, atbl, arg_getsize(atbl), ifempty)) {CLIParserFree((ctx)); return PM3_ESOFT;} #define CLIGetHexBLessWithReturn(ctx, paramnum, data, datalen, delta) if (CLIParamHexToBuf(arg_get_str(ctx, paramnum), data, sizeof(data) - (delta), datalen)) {CLIParserFree((ctx)); return PM3_ESOFT;}