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