changeset 71:6e1bea6821e2

Bug fix
author Sebastien Decugis <sdecugis@nict.go.jp>
date Thu, 10 Jul 2008 18:28:57 +0900
parents 34eac729291b
children 5568eae9649c
files waaad/dictionary.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/waaad/dictionary.c	Thu Jul 10 10:38:08 2008 +0900
+++ b/waaad/dictionary.c	Thu Jul 10 18:28:57 2008 +0900
@@ -543,6 +543,7 @@
 static int order_enum_by_val  ( _dict_object_t *o1, _dict_object_t *o2 )
 {
 	size_t oslen;
+	int cmp = 0;
 	
 	/* The comparison function depends on the type of data */
 	switch ( o1->parent->data.type.type_base ) {
@@ -550,7 +551,8 @@
 			oslen = o1->data.type_enum.enum_value.os.len;
 			if (o2->data.type_enum.enum_value.os.len < oslen)
 				oslen = o2->data.type_enum.enum_value.os.len;
-			return strncmp(o1->data.type_enum.enum_value.os.data, o2->data.type_enum.enum_value.os.data, oslen );
+			cmp = strncmp(o1->data.type_enum.enum_value.os.data, o2->data.type_enum.enum_value.os.data, oslen );
+			return (cmp ? cmp : order_scalar(o1->data.type_enum.enum_value.os.len,o2->data.type_enum.enum_value.os.len));
 		
 		case AVP_TYPE_INTEGER32:
 			return order_scalar( o1->data.type_enum.enum_value.i32, o2->data.type_enum.enum_value.i32 );
"Welcome to our mercurial repository"