]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - client/cliparser/cliparser.h
3f4fa4cc35429e88ae4e45a83a695f3bd54fb141
   1 //----------------------------------------------------------------------------- 
   2 // Copyright (C) 2017 Merlok 
   4 // This code is licensed to you under the terms of the GNU GPL, version 2 or, 
   5 // at your option, any later version. See the LICENSE.txt file for the text of 
   7 //----------------------------------------------------------------------------- 
   8 // Command line parser core commands 
   9 //----------------------------------------------------------------------------- 
  11 #include "argtable3.h" 
  15 #define arg_param_begin arg_lit0("hH",  "help",    "print this help and exit") 
  16 #define arg_param_end arg_end(20) 
  18 #define arg_getsize(a) (sizeof(a) / sizeof(a[0])) 
  19 #define arg_get_lit(n)(((struct arg_lit*)argtable[n])->count) 
  20 #define arg_get_int(n)(((struct arg_int*)argtable[n])->ival[0]) 
  21 #define arg_get_str(n)((struct arg_str*)argtable[n]) 
  23 #define CLIExecWithReturn(cmd, atbl, ifempty) if (CLIParserParseString(cmd, atbl, arg_getsize(atbl), ifempty)){CLIParserFree();return 0;} 
  24 #define CLIGetStrBLessWithReturn(paramnum, data, datalen, delta) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data) - (delta), datalen)) {CLIParserFree();return 1;} 
  25 #define CLIGetStrWithReturn(paramnum, data, datalen) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data), datalen)) {CLIParserFree();return 1;} 
  27 extern int CLIParserInit(char *vprogramName
, char *vprogramHint
, char *vprogramHelp
); 
  28 extern int CLIParserParseString(const char* str
, void* argtable
[], size_t vargtableLen
, bool allowEmptyExec
); 
  29 extern int CLIParserParseArg(int argc
, char **argv
, void* argtable
[], size_t vargtableLen
, bool allowEmptyExec
); 
  30 extern void CLIParserFree(); 
  32 extern int CLIParamHexToBuf(struct arg_str 
*argstr
, uint8_t *data
, int maxdatalen
, int *datalen
);