1// Wrapper for underlying C-language localization -*- C++ -*-
2
3// Copyright (C) 2001, 2002, 2009, 2010 Free Software Foundation, Inc.
4//
5// This file is part of the GNU ISO C++ Library.  This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14// GNU General Public License for more details.
15
16// Under Section 7 of GPL version 3, you are granted additional
17// permissions described in the GCC Runtime Library Exception, version
18// 3.1, as published by the Free Software Foundation.
19
20// You should have received a copy of the GNU General Public License and
21// a copy of the GCC Runtime Library Exception along with this program;
22// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23// <http://www.gnu.org/licenses/>.
24
25//
26// ISO C++ 14882: 22.8  Standard locale categories.
27//
28
29// Written by Benjamin Kosnik <bkoz@redhat.com>
30
31#include <locale>
32
33namespace std
34{
35  void
36  locale::facet::_S_create_c_locale(__c_locale&, const char*, __c_locale*)
37  { }
38
39  void
40  locale::facet::_S_destroy_c_locale(__c_locale&)
41  { }
42
43  __c_locale
44  locale::facet::_S_clone_c_locale(__c_locale&) throw()
45  { return __c_locale(); }
46
47  template<>
48    void
49    numpunct<char>::_M_initialize_numpunct(__c_locale)
50    {
51      // "C" locale
52      _M_decimal_point = '.';
53      _M_thousands_sep = ',';
54      _M_grouping = "";
55      _M_truename = "true";
56      _M_falsename = "false";
57    }
58
59#ifdef _GLIBCXX_USE_WCHAR_T
60  template<>
61    void
62    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale)
63    {
64      // "C" locale
65      _M_decimal_point = L'.';
66      _M_thousands_sep = L',';
67      _M_grouping = "";
68      _M_truename = L"true";
69      _M_falsename = L"false";
70    }
71#endif
72
73  template<>
74    void
75    moneypunct<char>::_M_initialize_moneypunct(__c_locale)
76    {
77      // "C" locale
78      _M_decimal_point = '.';
79      _M_thousands_sep = ',';
80      _M_grouping = "";
81      _M_curr_symbol = string_type();
82      _M_positive_sign = string_type();
83      _M_negative_sign = string_type();
84      _M_frac_digits = 0;
85      _M_pos_format = money_base::_S_default_pattern;
86      _M_neg_format = money_base::_S_default_pattern;
87    }
88
89#ifdef _GLIBCXX_USE_WCHAR_T
90  template<>
91    void
92    moneypunct<wchar_t>::_M_initialize_moneypunct(__c_locale)
93    {
94      // "C" locale
95      _M_decimal_point = L'.';
96      _M_thousands_sep = L',';
97      _M_grouping = "";
98      _M_curr_symbol = string_type();
99      _M_positive_sign = string_type();
100      _M_negative_sign = string_type();
101      _M_frac_digits = 0;
102      _M_pos_format = money_base::_S_default_pattern;
103      _M_neg_format = money_base::_S_default_pattern;
104    }
105#endif
106}  // namespace std
107
108