Mercurial > hg > waaad
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 );