From 7344f9128dfa797a9b9d51b38832f77a1eaeac2d Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 6 Dec 2011 19:47:53 +0000 Subject: 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 --- common/hush.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'common') 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; } } -- cgit v1.2.3