diff options
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/common/locbased.cpp')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/common/locbased.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/common/locbased.cpp b/Build/source/libs/icu/icu-xetex/common/locbased.cpp new file mode 100644 index 00000000000..e96b9f79f3d --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/common/locbased.cpp @@ -0,0 +1,46 @@ +/* +********************************************************************** +* Copyright (c) 2004, International Business Machines +* Corporation and others. All Rights Reserved. +********************************************************************** +* Author: Alan Liu +* Created: January 16 2004 +* Since: ICU 2.8 +********************************************************************** +*/ +#include "locbased.h" +#include "cstring.h" + +U_NAMESPACE_BEGIN + +Locale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const { + const char* id = getLocaleID(type, status); + return Locale((id != 0) ? id : ""); +} + +const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { + if (U_FAILURE(status)) { + return NULL; + } + + switch(type) { + case ULOC_VALID_LOCALE: + return valid; + case ULOC_ACTUAL_LOCALE: + return actual; + default: + status = U_ILLEGAL_ARGUMENT_ERROR; + return NULL; + } +} + +void LocaleBased::setLocaleIDs(const char* validID, const char* actualID) { + if (validID != 0) { + uprv_strcpy(valid, validID); + } + if (actualID != 0) { + uprv_strcpy(actual, actualID); + } +} + +U_NAMESPACE_END |