
On Wed, 2008-10-15 at 12:57 +0200, Wolfgang Denk wrote:
Dear Stefano,
In message 1224065384-24171-1-git-send-email-sbabic@denx.de you wrote:
The command interpreter checks always if an environment variable for that name exists and in this case the content of the variable is executed. It becomes possible to redefine all U-Boot commands. A new "builtin" command is added to be able to run builtin U-boot commands even if they are redefined.
Cool. That's just great.
If I had known it's suffcient to put ideas on a web page to have people put them into code I would have started doing this much earlier :-)
/* Check if exists a variable with that name */
if ((p = getenv (child->argv[i])) != NULL ) {
int rcode;
rcode = (parse_string_outer(p,
FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP) != 0);
return rcode;
}
I think this covers only the hush shell version. We need something like this instead:
#ifdef CFG_HUSH_PARSER rcode = parse_string_outer(p, FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP); #else rcode =run_command (p, 0); #endif
Move the parse_string_outer() into run_command() instead.
Jocke