Module: wine Branch: master Commit: dd1395442448ec73b6e16c89d8e9affd554a4e8b URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd1395442448ec73b6e16c89d8...
Author: Frédéric Delanoy frederic.delanoy@gmail.com Date: Thu Oct 25 23:48:00 2012 +0200
cmd: Move common error reporting code in WCMD_if.
---
programs/cmd/builtins.c | 19 ++++++++----------- 1 files 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)); }
/****************************************************************************