[U-Boot] [PATCH v2 7/9] Remove interleave of non-U-Boot code in hush
Simon Glass
sjg at chromium.org
Sat Dec 10 19:43:59 CET 2011
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 at chromium.org>
---
common/hush.c | 24 +++++++++++-------------
1 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/common/hush.c b/common/hush.c
index 6cb921d..3aa9d50 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;
}
}
--
1.7.3.1
More information about the U-Boot
mailing list