Line data Source code
1 : // © 2016 and later: Unicode, Inc. and others.
2 : // License & terms of use: http://www.unicode.org/copyright.html
3 : /*
4 : **********************************************************************
5 : * Copyright (c) 2004-2014, International Business Machines
6 : * Corporation and others. All Rights Reserved.
7 : **********************************************************************
8 : * Author: Alan Liu
9 : * Created: January 16 2004
10 : * Since: ICU 2.8
11 : **********************************************************************
12 : */
13 : #include "locbased.h"
14 : #include "cstring.h"
15 :
16 : U_NAMESPACE_BEGIN
17 :
18 0 : Locale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const {
19 0 : const char* id = getLocaleID(type, status);
20 0 : return Locale((id != 0) ? id : "");
21 : }
22 :
23 0 : const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const {
24 0 : if (U_FAILURE(status)) {
25 0 : return NULL;
26 : }
27 :
28 0 : switch(type) {
29 : case ULOC_VALID_LOCALE:
30 0 : return valid;
31 : case ULOC_ACTUAL_LOCALE:
32 0 : return actual;
33 : default:
34 0 : status = U_ILLEGAL_ARGUMENT_ERROR;
35 0 : return NULL;
36 : }
37 : }
38 :
39 0 : void LocaleBased::setLocaleIDs(const char* validID, const char* actualID) {
40 0 : if (validID != 0) {
41 0 : uprv_strncpy(valid, validID, ULOC_FULLNAME_CAPACITY);
42 0 : valid[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate
43 : }
44 0 : if (actualID != 0) {
45 0 : uprv_strncpy(actual, actualID, ULOC_FULLNAME_CAPACITY);
46 0 : actual[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate
47 : }
48 0 : }
49 :
50 0 : void LocaleBased::setLocaleIDs(const Locale& validID, const Locale& actualID) {
51 0 : uprv_strcpy(valid, validID.getName());
52 0 : uprv_strcpy(actual, actualID.getName());
53 0 : }
54 :
55 : U_NAMESPACE_END
|