]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - client/cmdparser.c
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
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 //-----------------------------------------------------------------------------
9 //-----------------------------------------------------------------------------
14 #include "cmdparser.h"
15 #include "proxmark3.h"
17 void CmdsHelp(const command_t Commands
[])
19 if (Commands
[0].Name
== NULL
)
22 while (Commands
[i
].Name
)
24 if (!offline
|| Commands
[i
].Offline
)
25 PrintAndLog("%-16s %s", Commands
[i
].Name
, Commands
[i
].Help
);
30 void CmdsParse(const command_t Commands
[], const char *Cmd
)
34 memset(cmd_name
, 0, 32);
35 sscanf(Cmd
, "%31s%n", cmd_name
, &len
);
37 while (Commands
[i
].Name
&& strcmp(Commands
[i
].Name
, cmd_name
))
40 /* try to find exactly one prefix-match */
41 if(!Commands
[i
].Name
) {
45 for(i
=0;Commands
[i
].Name
;i
++) {
46 if( !strncmp(Commands
[i
].Name
, cmd_name
, strlen(cmd_name
)) ) {
51 if(matches
== 1) i
=last_match
;
54 if (Commands
[i
].Name
) {
55 while (Cmd
[len
] == ' ')
57 Commands
[i
].Parse(Cmd
+ len
);
59 // show help for selected hierarchy or if command not recognised