1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4*******************************************************************************
5*
6* Copyright (C) 1997-2006, International Business Machines
7* Corporation and others. All Rights Reserved.
8*
9*******************************************************************************
10* file name: resbund_cnv.cpp
11* encoding: UTF-8
12* tab size: 8 (not used)
13* indentation:4
14*
15* created on: 2004aug25
16* created by: Markus W. Scherer
17*
18* Character conversion functions moved here from resbund.cpp
19*/
20
21#include "unicode/utypes.h"
22#include "unicode/resbund.h"
23#include "uinvchar.h"
24
25U_NAMESPACE_BEGIN
26
27ResourceBundle::ResourceBundle( const UnicodeString& path,
28 const Locale& locale,
29 UErrorCode& error)
30 :UObject(), fLocale(nullptr)
31{
32 constructForLocale(path, locale, error);
33}
34
35ResourceBundle::ResourceBundle( const UnicodeString& path,
36 UErrorCode& error)
37 :UObject(), fLocale(nullptr)
38{
39 constructForLocale(path, Locale::getDefault(), error);
40}
41
42void
43ResourceBundle::constructForLocale(const UnicodeString& path,
44 const Locale& locale,
45 UErrorCode& error)
46{
47 if (path.isEmpty()) {
48 fResource = ures_open(nullptr, locale.getName(), &error);
49 }
50 else {
51 UnicodeString nullTerminatedPath(path);
52 nullTerminatedPath.append((char16_t)0);
53 fResource = ures_openU(nullTerminatedPath.getBuffer(), locale.getName(), &error);
54 }
55}
56
57U_NAMESPACE_END
58