]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/ulist.c
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / common / ulist.c
index 1ef3704f936eb5eed166ae4126633069595c706a..6b5013b0ecdf7bc23f8e5781287bbc0ef793796e 100644 (file)
@@ -1,6 +1,6 @@
 /*
 ******************************************************************************
-*   Copyright (C) 2009, International Business Machines
+*   Copyright (C) 2009-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 */
@@ -174,18 +174,16 @@ U_CAPI void U_EXPORT2 ulist_resetList(UList *list) {
 
 U_CAPI void U_EXPORT2 ulist_deleteList(UList *list) {
     UListNode *listHead = NULL;
-    UListNode *listPointer = NULL;
-    
+
     if (list != NULL) {
         listHead = list->head;
-        listPointer = listHead;
         while (listHead != NULL) {
-            listPointer = listHead->next;
-            
+            UListNode *listPointer = listHead->next;
+
             if (listHead->forceDelete) {
                 uprv_free(listHead->data);
             }
-            
+
             uprv_free(listHead);
             listHead = listPointer;
         }
@@ -210,13 +208,16 @@ U_CAPI int32_t U_EXPORT2 ulist_count_keyword_values(UEnumeration *en, UErrorCode
 }
 
 U_CAPI const char * U_EXPORT2 ulist_next_keyword_value(UEnumeration *en, int32_t *resultLength, UErrorCode *status) {
+    const char *s;
     if (U_FAILURE(*status)) {
         return NULL;
     }
-    
-    /* TODO: resultLength; */
-    
-    return (const char *)ulist_getNext((UList *)(en->context));
+
+    s = (const char *)ulist_getNext((UList *)(en->context));
+    if (s != NULL && resultLength != NULL) {
+        *resultLength = uprv_strlen(s);
+    }
+    return s;
 }
 
 U_CAPI void U_EXPORT2 ulist_reset_keyword_values_iterator(UEnumeration *en, UErrorCode *status) {