debug_parser("%s: \"%s\"\n", __func__, line);
- for (outp = inp = line, quote = '\0' ;
- nargs < CONFIG_SYS_MAXARGS && (c = *inp) != '\0';
- inp++) {
+ for (outp = inp = line, quote = '\0'; (c = *inp) != '\0'; inp++) {
switch (state) {
case 0: /* before arg string, waiting for arg start */
break;
}
+
+ if (nargs > CONFIG_SYS_MAXARGS) {
+ --nargs;
+ break;
+ }
*outp++ = c;
}
if (c == '}') {
/* Terminate variable name */
*(inp-1) = '\0';
- const char *envval = getenv(varname);
+ const char *envval = getenv_char(varname);
*(inp-1) = '}';
/* Copy into the line if it exists */
if (envval != NULL)
* WARNING:
*
* We must create a temporary copy of the command since the command we get
- * may be the result from getenv(), which returns a pointer directly to
+ * may be the result from getenv_char(), which returns a pointer directly to
* the environment data, which may change magicly when the command we run
* creates or modifies environment variables (like "bootp" does).
*
/*
- * Run a command using the selected parser.
+ * Run a command.
*
* @param cmd Command to run
* @param flag Execution flags (CMD_FLAG_...)
for (i = 1; i < argc; ++i) {
char *arg;
- arg = getenv(argv[i]);
+ arg = getenv_char(argv[i]);
if (arg == NULL) {
- printf_P(PSTR("## Error: \"%s\" not defined\n"), argv[i]);
+ printf_P(PSTR("## Error: \"%s\" is not set\n"), argv[i]);
return CMD_RET_FAILURE;
}