[3/10] cmd: Move common error reporting code in WCMD_if

Frédéric Delanoy frederic.delanoy at gmail.com
Thu Oct 25 16:48:00 CDT 2012


---
 programs/cmd/builtins.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index d13cb5c..ffdfe8d 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2346,9 +2346,8 @@ void WCMD_popd (void) {
  *
  * FIXME: Much more syntax checking needed!
  */
-
-void WCMD_if (WCHAR *p, CMD_LIST **cmdList) {
-
+void WCMD_if (WCHAR *p, CMD_LIST **cmdList)
+{
   int negate; /* Negate condition */
   int test;   /* Condition evaluation result */
   WCHAR condition[MAX_PATH], *command, *s;
@@ -2368,10 +2367,7 @@ void WCMD_if (WCHAR *p, CMD_LIST **cmdList) {
     WCHAR *param = WCMD_parameter(p, 1+negate, NULL, FALSE, FALSE);
     WCHAR *endptr;
     long int param_int = strtolW(param, &endptr, 10);
-    if (*endptr) {
-      WCMD_output_stderr(WCMD_LoadMessage(WCMD_SYNTAXERR));
-      return;
-    }
+    if (*endptr) goto syntax_err;
     test = ((long int)errorlevel >= param_int);
     WCMD_parameter(p, 2+negate, &command, FALSE, FALSE);
   }
@@ -2401,14 +2397,15 @@ void WCMD_if (WCHAR *p, CMD_LIST **cmdList) {
                               rightPart, rightPartLen) == CSTR_EQUAL);
     WCMD_parameter(s, 1, &command, FALSE, FALSE);
   }
-  else {
-    WCMD_output_stderr(WCMD_LoadMessage(WCMD_SYNTAXERR));
-    return;
-  }
+  else goto syntax_err;
 
   /* Process rest of IF statement which is on the same line
      Note: This may process all or some of the cmdList (eg a GOTO) */
   WCMD_part_execute(cmdList, command, NULL, NULL, TRUE, (test != negate));
+  return;
+
+syntax_err:
+  WCMD_output_stderr(WCMD_LoadMessage(WCMD_SYNTAXERR));
 }
 
 /****************************************************************************
-- 
1.8.0




More information about the wine-patches mailing list