Coverage Report

Created: 2025-06-24 06:43

/src/icu/source/common/locbased.cpp
Line
Count
Source (jump to first uncovered line)
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
0
}
22
23
0
const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const {
24
0
    if (U_FAILURE(status)) {
25
0
        return NULL;
26
0
    }
27
28
0
    switch(type) {
29
0
    case ULOC_VALID_LOCALE:
30
0
        return valid;
31
0
    case ULOC_ACTUAL_LOCALE:
32
0
        return actual;
33
0
    default:
34
0
        status = U_ILLEGAL_ARGUMENT_ERROR;
35
0
        return NULL;
36
0
    }
37
0
}
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
0
    }
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
0
    }
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