summaryrefslogtreecommitdiff
path: root/common/hush.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-12-06 19:47:53 +0000
committerWolfgang Denk <wd@denx.de>2012-03-06 21:09:37 +0100
commit7344f9128dfa797a9b9d51b38832f77a1eaeac2d (patch)
tree787fe5e87331a57cfdaf48724f7de514b9e9ea1c /common/hush.c
parentbdf8e34b936e2b94990ab6ce8dd5463d14d173dd (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.c24
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;
}
}