[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