]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/locutil.cpp
ICU-461.18.tar.gz
[apple/icu.git] / icuSources / common / locutil.cpp
index 777403d7980200e093de951f667a5109ff306fbf..57c305f68f6f6876d506532427a1cd0442d5d5da 100644 (file)
@@ -1,9 +1,7 @@
 /**
  *******************************************************************************
- * Copyright (C) 2002-2005, International Business Machines Corporation and    *
- * others. All Rights Reserved.                                                *
- *******************************************************************************
- *
+ * Copyright (C) 2002-2010, International Business Machines Corporation and
+ * others. All Rights Reserved.
  *******************************************************************************
  */
 #include "unicode/utypes.h"
@@ -20,7 +18,7 @@
 #include "umutex.h"
 
 // see LocaleUtility::getAvailableLocaleNames
-static Hashtable * LocaleUtility_cache = NULL;
+static U_NAMESPACE_QUALIFIER Hashtable * LocaleUtility_cache = NULL;
 
 #define UNDERSCORE_CHAR ((UChar)0x005f)
 #define AT_SIGN_CHAR    ((UChar)64)
@@ -227,9 +225,9 @@ LocaleUtility::getAvailableLocaleNames(const UnicodeString& bundleID)
     if (htp == NULL) {
         htp = new Hashtable(status);
         if (htp && U_SUCCESS(status)) {
-            CharString cbundleID(bundleID);
-            const char* path = (const char*) cbundleID;
-            if (*path == 0) path = NULL; // empty string => NULL
+            CharString cbundleID;
+            cbundleID.appendInvariantChars(bundleID, status);
+            const char* path = cbundleID.isEmpty() ? NULL : cbundleID.data();
             UEnumeration *uenum = ures_openAvailableLocales(path, &status);
             for (;;) {
                 const UChar* id = uenum_unext(uenum, NULL, &status);