Module: wine Branch: master Commit: 90c6f57fa9d9c9caf1b469ae82ed13bccb9625ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=90c6f57fa9d9c9caf1b469ae82...
Author: Frédéric Delanoy frederic.delanoy@gmail.com Date: Thu Oct 25 23:48:07 2012 +0200
cmd: Add support for GTR comparison operator in if statements.
---
programs/cmd/builtins.c | 9 ++++++++ programs/cmd/tests/test_builtins.cmd.exp | 32 +++++++++++++++--------------- 2 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 112d678..855040e 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -2360,6 +2360,7 @@ static int evaluate_if_comparison(const WCHAR *leftOperand, const WCHAR *operato static const WCHAR equW[] = {'e','q','u','\0'}; static const WCHAR neqW[] = {'n','e','q','\0'}; static const WCHAR geqW[] = {'g','e','q','\0'}; + static const WCHAR gtrW[] = {'g','t','r','\0'};
/* == is a special case, as it always compares strings */ if (!lstrcmpiW(operator, eqeqW)) @@ -2412,6 +2413,14 @@ static int evaluate_if_comparison(const WCHAR *leftOperand, const WCHAR *operato : lstrcmpW (leftOperand, rightOperand) >= 0; }
+ if (!lstrcmpiW(operator, gtrW)) { + if (int_operands) + return leftOperand_int > rightOperand_int; + else + return caseInsensitive ? lstrcmpiW(leftOperand, rightOperand) > 0 + : lstrcmpW (leftOperand, rightOperand) > 0; + } + return -1; }
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index c451c70..aeaa14d 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -522,16 +522,16 @@ B GEQ AA AB GEQ AA BA GEQ AA AA GEQ AA -@todo_wine@B GTR A -@todo_wine@AB GTR A -@todo_wine@BA GTR A -@todo_wine@AA GTR A -@todo_wine@BA GTR B -@todo_wine@B GTR AB -@todo_wine@BA GTR AB -@todo_wine@B GTR AA -@todo_wine@AB GTR AA -@todo_wine@BA GTR AA +B GTR A +AB GTR A +BA GTR A +AA GTR A +BA GTR B +B GTR AB +BA GTR AB +B GTR AA +AB GTR AA +BA GTR AA ------ for numbers negative numbers handled negative numbers handled @@ -586,12 +586,12 @@ string/hexa compare ok 10 GEQ 10 10 GEQ 9 9 GEQ 9 -@todo_wine@1 GTR 0 -@todo_wine@10 GTR 0 -@todo_wine@9 GTR 0 -@todo_wine@10 GTR 1 -@todo_wine@9 GTR 1 -@todo_wine@10 GTR 9 +1 GTR 0 +10 GTR 0 +9 GTR 0 +10 GTR 1 +9 GTR 1 +10 GTR 9 ------ for numbers and stringified numbers strings and integers not equal strings and integers not equal