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