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