]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/fldset.cpp
ICU-64260.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / fldset.cpp
index aa3aa28479629ea9325f224b2f5767d4ef2dfc95..b288b4fced3eb02bf86a4b4a2acbfd6f632d5796 100644 (file)
@@ -1,6 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 ************************************************************************
-* Copyright (c) 2007, International Business Machines
+* Copyright (c) 2007-2011, International Business Machines
 * Corporation and others.  All Rights Reserved.
 ************************************************************************
 */
@@ -119,6 +121,8 @@ int32_t FieldsSet::parseFrom(const UnicodeString& str, const
             u_UCharsToChars(u, ch, len);
             ch[len] = 0; /* include terminating \0 */
             it_errln(UnicodeString("Parse Failed: Field ") + UnicodeString(ch) + UnicodeString(", err ") + UnicodeString(u_errorName(status)));
+            delete[] kv;
+            delete[] dest;
             return -1;
         }
 
@@ -132,6 +136,8 @@ int32_t FieldsSet::parseFrom(const UnicodeString& str, const
                 u_UCharsToChars(u, ch, len);
                 ch[len] = 0; /* include terminating \0 */
                 it_errln(UnicodeString("Parse Failed: Value ") + UnicodeString(ch) + UnicodeString(", err ") + UnicodeString(u_errorName(status)));
+                delete[] kv;
+                delete[] dest;
                 return -1;
             }
 
@@ -189,7 +195,11 @@ int32_t FieldsSet::get(int32_t field) const {
 
 int32_t FieldsSet::handleParseName(const FieldsSet* /* inheritFrom */, const UnicodeString& name, const UnicodeString& /* substr*/ , UErrorCode& status) {
     if(fEnum > -1) {
-        return udbg_enumByString(fEnum, name);
+        int32_t which = udbg_enumByString(fEnum, name);
+        if(which == UDBG_INVALID_ENUM) {
+            status = U_UNSUPPORTED_ERROR;
+        }
+        return which;
     } else {
         status = U_UNSUPPORTED_ERROR;
         return -1;
@@ -254,7 +264,6 @@ void CalendarFieldsSet::setOnCalendar(Calendar *cal, UErrorCode& /*status*/) con
     for (int i=0; i<UDAT_FIELD_COUNT; i++) {
         if (isSet((UCalendarDateFields)i)) {
             int32_t value = get((UCalendarDateFields)i);
-            //fprintf(stderr, "Setting: %s#%d=%d\n",udbg_enumName(UDBG_UCalendarDateFields,i),i,value);            
             cal->set((UCalendarDateFields)i, value);
         }
     }
@@ -266,8 +275,9 @@ void CalendarFieldsSet::setOnCalendar(Calendar *cal, UErrorCode& /*status*/) con
 UBool CalendarFieldsSet::matches(Calendar *cal, CalendarFieldsSet &diffSet,
         UErrorCode& status) const {
     UBool match = TRUE;
-    if (U_FAILURE(status))
+    if (U_FAILURE(status)) {
         return FALSE;
+    }
     for (int i=0; i<UDAT_FIELD_COUNT; i++) {
         if (isSet((UCalendarDateFields)i)) {
             int32_t calVal = cal->get((UCalendarDateFields)i, status);
@@ -284,10 +294,13 @@ UBool CalendarFieldsSet::matches(Calendar *cal, CalendarFieldsSet &diffSet,
 }
 
 
-enum {
-    DTS_DATE = 0,
-    DTS_TIME,
-    DTS_COUNT
+/**
+ * DateTimeStyleSet has two 'fields' -- date, and time.
+ */
+enum DateTimeStyleSetFields {
+    DTS_DATE = 0,  /** Field one: the date (long, medium, short, etc). */
+    DTS_TIME,      /** Field two: the time (long, medium, short, etc). */
+    DTS_COUNT      /** The number of fields */
 };
 
 /**
@@ -295,7 +308,6 @@ enum {
  * */
 DateTimeStyleSet::DateTimeStyleSet() :
     FieldsSet(DTS_COUNT) {
-    
 }
 
 DateTimeStyleSet::~DateTimeStyleSet() {
@@ -320,8 +332,6 @@ UDateFormatStyle DateTimeStyleSet::getTimeStyle() const {
 }
 
 void DateTimeStyleSet::handleParseValue(const FieldsSet* inheritFrom, int32_t field, const UnicodeString& substr, UErrorCode& status) {
-//    int32_t value = udbg_enumByString(UDBG_UDateFormatStyle, substr);
-//    fprintf(stderr, " HPV: %d -> %d\n", field, value);
     UnicodeString kRELATIVE_("RELATIVE_");
     if(substr.startsWith(kRELATIVE_)) {
         UnicodeString relativeas(substr,kRELATIVE_.length());