add function to execute raw commands via argc and argv

This commit is contained in:
josch
2014-09-17 00:11:09 +02:00
parent c57ccd6df1
commit b25e4ad7d8
3 changed files with 20 additions and 10 deletions

View File

@@ -91,6 +91,17 @@ console_get_metrics(int *height,int *width)
return 0;
}
int
_execute(mfshell_t *mfshell, int argc, char **argv)
{
_cmd_t* curr_cmd;
for (curr_cmd = mfshell->commands; curr_cmd->name != NULL; curr_cmd++) {
if (strcmp(argv[0], curr_cmd->name) == 0) {
return curr_cmd->handler(mfshell, argc, argv);
}
}
}
int
_execute_shell_command(mfshell_t *mfshell,char *command)
{
@@ -125,14 +136,8 @@ _execute_shell_command(mfshell_t *mfshell,char *command)
argc = stringv_len(argv);
_cmd_t* curr_cmd;
for (curr_cmd = mfshell->commands; curr_cmd->name != NULL; curr_cmd++) {
if (strcmp(argv[0], curr_cmd->name) == 0) {
// TODO: handle retval
retval = curr_cmd->handler(mfshell, argc, argv);
break;
}
}
// TODO: handle retval
retval = _execute(mfshell, argc, argv);
stringv_free(argv,STRINGV_FREE_ALL);