if (!cmd || !*cmd)
return -1; /* empty command */
-
- cmdbuf = xmalloc(strlen(cmd) + 1);
+ cmdbuf = strdup(cmd);
finaltoken = xmalloc(CONFIG_SYS_CBSIZE);
+ if (!finaltoken)
+ return -1; /* not enough memory */
- strcpy(cmdbuf, cmd);
str = cmdbuf;
/* Process separators and check for invalid
continue;
}
- if (cmd_process(flag, argc, argv, &repeatable))
+ if (cmd_process(flag, argc, argv, &repeatable) != CMD_RET_SUCCESS)
rc = -1;
/* Did the user stop this? */
flag = 0; /* assume no special flags for now */
if (len > 0) {
- lastcommand = (char *) xrealloc(lastcommand, len+1);
- if (lastcommand != NULL) {
- strncpy(lastcommand, console_buffer, len+1);
- lastcommand[len] = '\0';
- }
+ free (lastcommand);
+ lastcommand = strdup(console_buffer);
} else if (len == 0)
flag |= CMD_FLAG_REPEAT;
}
-int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+command_ret_t do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i;
(void) cmdtp;
arg = getenv(argv[i]);
if (arg == NULL) {
printf_P(PSTR("## Error: \"%s\" not defined\n"), argv[i]);
- return 1;
+ return CMD_RET_FAILURE;
}
if (run_command(arg, flag) != 0)
- return 1;
+ return CMD_RET_FAILURE;
}
- return 0;
+ return CMD_RET_SUCCESS;
}