diff options
author | Simon Glass <sjg@chromium.org> | 2011-12-06 19:47:53 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2012-03-06 21:09:37 +0100 |
commit | 7344f9128dfa797a9b9d51b38832f77a1eaeac2d (patch) | |
tree | 787fe5e87331a57cfdaf48724f7de514b9e9ea1c /common/hush.c | |
parent | bdf8e34b936e2b94990ab6ce8dd5463d14d173dd (diff) |
Remove interleave of non-U-Boot code in hush
There is a nasty interleave of #ifdefs in hush.c where the two code
paths have different indents. Remove this ickiness.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/hush.c')
-rw-r--r-- | common/hush.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/common/hush.c b/common/hush.c index 6cb921d4f3..3aa9d50113 100644 --- a/common/hush.c +++ b/common/hush.c @@ -1642,6 +1642,15 @@ static int run_pipe_real(struct pipe *pi) * Is it really safe for inline use? Experimentally, * things seem to work with glibc. */ setup_redirects(child, squirrel); + + child->argv += i; /* XXX horrible hack */ + rcode = x->function(child); + /* XXX restore hack so free() can work right */ + child->argv -= i; + restore_redirects(squirrel); + } + return rcode; + } #else /* check ";", because ,example , argv consist from * "help;flinfo" must not execute @@ -1674,22 +1683,11 @@ static int run_pipe_real(struct pipe *pi) if ((child->argc - i) > cmdtp->maxargs) return cmd_usage(cmdtp); #endif - child->argv+=i; /* XXX horrible hack */ -#ifndef __U_BOOT__ - rcode = x->function(child); -#else /* OK - call function to do the command */ - rcode = cmd_call(cmdtp, flag, child->argc-i, - &child->argv[i]); + rcode = cmd_call(cmdtp, flag, child->argc, + child->argv); if (!cmdtp->repeatable) flag_repeat = 0; -#endif - child->argv-=i; /* XXX restore hack so free() can work right */ -#ifndef __U_BOOT__ - - restore_redirects(squirrel); -#endif - return rcode; } } |