Jason Edmeades : cmd: Display 'set' sort ordering correctly.
Alexandre Julliard
julliard at winehq.org
Wed Sep 26 14:06:51 CDT 2012
Module: wine
Branch: master
Commit: cd9451c4993ae852df69cac4fe22e2838ae9fbe1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cd9451c4993ae852df69cac4fe22e2838ae9fbe1
Author: Jason Edmeades <jason at edmeades.me.uk>
Date: Tue Sep 25 23:16:54 2012 +0100
cmd: Display 'set' sort ordering correctly.
---
programs/cmd/builtins.c | 5 ++++-
programs/cmd/tests/test_builtins.cmd.exp | 4 ++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index ad9d40c..8421194 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2234,13 +2234,16 @@ void WCMD_setshow_date (void) {
/****************************************************************************
* WCMD_compare
+ * Note: Native displays 'fred' before 'fred ', so need to only compare up to
+ * the equals sign.
*/
static int WCMD_compare( const void *a, const void *b )
{
int r;
const WCHAR * const *str_a = a, * const *str_b = b;
+ static const WCHAR eqW[] = {'=','\0'};
r = CompareStringW( LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
- *str_a, -1, *str_b, -1 );
+ *str_a, strcspnW(*str_a, eqW), *str_b, strcspnW(*str_b, eqW) );
if( r == CSTR_LESS_THAN ) return -1;
if( r == CSTR_GREATER_THAN ) return 1;
return 0;
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index d2938ce..57bc82a 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -235,8 +235,8 @@ FOOBAR = baz
baz2
0
bar
- at todo_wine@FOOBAR= bar
- at todo_wine@FOOBAR = baz2
+FOOBAR= bar
+FOOBAR = baz2
FOOBAR = baz2
FOOBAR not defined
1
More information about the wine-cvs
mailing list