diff options
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/config/locale')
29 files changed, 0 insertions, 4757 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/darwin/ctype_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/darwin/ctype_members.cc deleted file mode 100644 index 2f5268c51..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/darwin/ctype_members.cc +++ /dev/null @@ -1,173 +0,0 @@ -// std::ctype implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> -#include <cstdlib> -#include <cstring> -#include <cstdio> - -namespace std -{ - // NB: The other ctype<char> specializations are in src/locale.cc and - // various /config/os/* files. - - ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) - : ctype<char>(0, false, __refs) - { - if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_ctype); - this->_S_create_c_locale(this->_M_c_locale_ctype, __s); - } - } - - ctype_byname<char>::~ctype_byname() - { } - -#ifdef _GLIBCXX_USE_WCHAR_T - ctype<wchar_t>::__wmask_type - ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const - { - // Darwin uses the same codes for 'char' as 'wchar_t', so this routine - // never gets called. - return __m; - }; - - wchar_t - ctype<wchar_t>::do_toupper(wchar_t __c) const - { return towupper(__c); } - - const wchar_t* - ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = towupper(*__lo); - ++__lo; - } - return __hi; - } - - wchar_t - ctype<wchar_t>::do_tolower(wchar_t __c) const - { return towlower(__c); } - - const wchar_t* - ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = towlower(*__lo); - ++__lo; - } - return __hi; - } - - wchar_t - ctype<wchar_t>:: - do_widen(char __c) const - { return _M_widen[static_cast<unsigned char>(__c)]; } - - const char* - ctype<wchar_t>:: - do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const - { - while (__lo < __hi) - { - *__dest = _M_widen[static_cast<unsigned char>(*__lo)]; - ++__lo; - ++__dest; - } - return __hi; - } - - char - ctype<wchar_t>:: - do_narrow(wchar_t __wc, char __dfault) const - { - if (__wc >= 0 && __wc < 128 && _M_narrow_ok) - return _M_narrow[__wc]; - const int __c = wctob(__wc); - return (__c == EOF ? __dfault : static_cast<char>(__c)); - } - - const wchar_t* - ctype<wchar_t>:: - do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, - char* __dest) const - { - if (_M_narrow_ok) - while (__lo < __hi) - { - if (*__lo >= 0 && *__lo < 128) - *__dest = _M_narrow[*__lo]; - else - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - } - ++__lo; - ++__dest; - } - else - while (__lo < __hi) - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - ++__lo; - ++__dest; - } - return __hi; - } - - void - ctype<wchar_t>::_M_initialize_ctype() - { - wint_t __i; - for (__i = 0; __i < 128; ++__i) - { - const int __c = wctob(__i); - if (__c == EOF) - break; - else - _M_narrow[__i] = static_cast<char>(__c); - } - if (__i == 128) - _M_narrow_ok = true; - else - _M_narrow_ok = false; - for (size_t __i = 0; - __i < sizeof(_M_widen) / sizeof(wint_t); ++__i) - _M_widen[__i] = btowc(__i); - } -#endif // _GLIBCXX_USE_WCHAR_T -} diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c++locale_internal.h b/gcc-4.4.3/libstdc++-v3/config/locale/generic/c++locale_internal.h deleted file mode 100644 index 32df26798..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c++locale_internal.h +++ /dev/null @@ -1,25 +0,0 @@ -// Locale internal implementation header -*- C++ -*- - -// Copyright (C) 2002, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// The generic locale code doesn't need to do anything here (yet) diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc deleted file mode 100644 index 587dc11de..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.cc +++ /dev/null @@ -1,268 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <cerrno> // For errno -#include <cmath> // For isinf, finite, finitef, fabs -#include <cstdlib> // For strof, strtold -#include <cstring> -#include <cstdio> -#include <locale> -#include <limits> -#include <cstddef> - -#ifdef _GLIBCXX_HAVE_IEEEFP_H -#include <ieeefp.h> -#endif - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, - const __c_locale&) - { - // Assumes __s formatted for "C" locale. - char* __old = setlocale(LC_ALL, NULL); - char* __sav = NULL; - if (__old != NULL) - { - const size_t __len = strlen(__old) + 1; - __sav = new char[__len]; - memcpy(__sav, __old, __len); - setlocale(LC_ALL, "C"); - } - char* __sanity; - bool __overflow = false; - -#if !__FLT_HAS_INFINITY__ - errno = 0; -#endif - -#ifdef _GLIBCXX_HAVE_STRTOF - __v = strtof(__s, &__sanity); -#else - double __d = strtod(__s, &__sanity); - __v = static_cast<float>(__d); -#ifdef _GLIBCXX_HAVE_FINITEF - if (!finitef (__v)) - __overflow = true; -#elif defined (_GLIBCXX_HAVE_FINITE) - if (!finite (static_cast<double> (__v))) - __overflow = true; -#elif defined (_GLIBCXX_HAVE_ISINF) - if (isinf (static_cast<double> (__v))) - __overflow = true; -#else - if (fabs(__d) > numeric_limits<float>::max()) - __overflow = true; -#endif -#endif // _GLIBCXX_HAVE_STRTOF - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') - { - __v = 0.0f; - __err = ios_base::failbit; - } - else if (__overflow -#if __FLT_HAS_INFINITY__ - || __v == numeric_limits<float>::infinity() - || __v == -numeric_limits<float>::infinity() -#else - || ((__v > 1.0f || __v < -1.0f) && errno == ERANGE) -#endif - ) - { - if (__v > 0.0f) - __v = numeric_limits<float>::max(); - else - __v = -numeric_limits<float>::max(); - __err = ios_base::failbit; - } - - setlocale(LC_ALL, __sav); - delete [] __sav; - } - - template<> - void - __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, - const __c_locale&) - { - // Assumes __s formatted for "C" locale. - char* __old = setlocale(LC_ALL, NULL); - char* __sav = NULL; - if (__old != NULL) - { - const size_t __len = strlen(__old) + 1; - __sav = new char[__len]; - memcpy(__sav, __old, __len); - setlocale(LC_ALL, "C"); - } - char* __sanity; - -#if !__DBL_HAS_INFINITY__ - errno = 0; -#endif - - __v = strtod(__s, &__sanity); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') - { - __v = 0.0; - __err = ios_base::failbit; - } - else if ( -#if __DBL_HAS_INFINITY__ - __v == numeric_limits<double>::infinity() - || __v == -numeric_limits<double>::infinity()) -#else - (__v > 1.0 || __v < -1.0) && errno == ERANGE) -#endif - { - if (__v > 0.0) - __v = numeric_limits<double>::max(); - else - __v = -numeric_limits<double>::max(); - __err = ios_base::failbit; - } - - setlocale(LC_ALL, __sav); - delete [] __sav; - } - - template<> - void - __convert_to_v(const char* __s, long double& __v, - ios_base::iostate& __err, const __c_locale&) - { - // Assumes __s formatted for "C" locale. - char* __old = setlocale(LC_ALL, NULL); - char* __sav = NULL; - if (__old != NULL) - { - const size_t __len = strlen(__old) + 1; - __sav = new char[__len]; - memcpy(__sav, __old, __len); - setlocale(LC_ALL, "C"); - } - -#if !__LDBL_HAS_INFINITY__ - errno = 0; -#endif - -#if defined(_GLIBCXX_HAVE_STRTOLD) && !defined(_GLIBCXX_HAVE_BROKEN_STRTOLD) - char* __sanity; - __v = strtold(__s, &__sanity); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') -#else - typedef char_traits<char>::int_type int_type; - int __p = sscanf(__s, "%Lf", &__v); - - if (!__p || static_cast<int_type>(__p) == char_traits<char>::eof()) -#endif - { - __v = 0.0l; - __err = ios_base::failbit; - } - else if ( -#if __LDBL_HAS_INFINITY__ - __v == numeric_limits<long double>::infinity() - || __v == -numeric_limits<long double>::infinity()) -#else - (__v > 1.0l || __v < -1.0l) && errno == ERANGE) -#endif - { - if (__v > 0.0l) - __v = numeric_limits<long double>::max(); - else - __v = -numeric_limits<long double>::max(); - __err = ios_base::failbit; - } - - setlocale(LC_ALL, __sav); - delete [] __sav; - } - - void - locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, - __c_locale) - { - // Currently, the generic model only supports the "C" locale. - // See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html - __cloc = NULL; - if (strcmp(__s, "C")) - __throw_runtime_error(__N("locale::facet::_S_create_c_locale " - "name not valid")); - } - - void - locale::facet::_S_destroy_c_locale(__c_locale& __cloc) - { __cloc = NULL; } - - __c_locale - locale::facet::_S_clone_c_locale(__c_locale&) - { return __c_locale(); } - -_GLIBCXX_END_NAMESPACE - -_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) - - const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = - { - "LC_CTYPE", - "LC_NUMERIC", - "LC_TIME", - "LC_COLLATE", - "LC_MONETARY", - "LC_MESSAGES" - }; - -_GLIBCXX_END_NAMESPACE - -_GLIBCXX_BEGIN_NAMESPACE(std) - - const char* const* const locale::_S_categories = __gnu_cxx::category_names; - -_GLIBCXX_END_NAMESPACE - -// XXX GLIBCXX_ABI Deprecated -#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT -#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ - extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) -_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi); -#endif // _GLIBCXX_LONG_DOUBLE_COMPAT diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.h b/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.h deleted file mode 100644 index e27a9cdf6..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/c_locale.h +++ /dev/null @@ -1,91 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file c++locale.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#ifndef _GLIBCXX_CXX_LOCALE_H -#define _GLIBCXX_CXX_LOCALE_H 1 - -#pragma GCC system_header - -#include <clocale> -#include <cstddef> - -#define _GLIBCXX_NUM_CATEGORIES 0 - -_GLIBCXX_BEGIN_NAMESPACE(std) - - typedef int* __c_locale; - - // Convert numeric value of type double and long double to string and - // return length of string. If vsnprintf is available use it, otherwise - // fall back to the unsafe vsprintf which, in general, can be dangerous - // and should be avoided. - inline int - __convert_from_v(const __c_locale&, char* __out, - const int __size __attribute__((__unused__)), - const char* __fmt, ...) - { - char* __old = std::setlocale(LC_NUMERIC, NULL); - char* __sav = NULL; - if (__old != NULL && __builtin_strcmp(__old, "C")) - { - const size_t __len = __builtin_strlen(__old) + 1; - __sav = new char[__len]; - __builtin_memcpy(__sav, __old, __len); - std::setlocale(LC_NUMERIC, "C"); - } - - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - -#ifdef _GLIBCXX_USE_C99 - const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); -#else - const int __ret = __builtin_vsprintf(__out, __fmt, __args); -#endif - - __builtin_va_end(__args); - - if (__sav) - { - std::setlocale(LC_NUMERIC, __sav); - delete [] __sav; - } - return __ret; - } - -_GLIBCXX_END_NAMESPACE - -#endif diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/codecvt_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/codecvt_members.cc deleted file mode 100644 index b68e18aaf..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/codecvt_members.cc +++ /dev/null @@ -1,217 +0,0 @@ -// std::codecvt implementation details, generic version -*- C++ -*- - -// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.1.5 - Template class codecvt -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstdlib> // For MB_CUR_MAX -#include <climits> // For MB_LEN_MAX -#include <cstring> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Specializations. -#ifdef _GLIBCXX_USE_WCHAR_T - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const - { - result __ret = ok; - // The conversion must be done using a temporary destination buffer - // since it is not possible to pass the size of the buffer to wcrtomb - state_type __tmp_state(__state); - - // The conversion must be done by calling wcrtomb in a loop rather - // than using wcsrtombs because wcsrtombs assumes that the input is - // zero-terminated. - - // Either we can upper bound the total number of external characters to - // something smaller than __to_end - __to or the conversion must be done - // using a temporary destination buffer since it is not possible to - // pass the size of the buffer to wcrtomb - if (MB_CUR_MAX * (__from_end - __from) - (__to_end - __to) <= 0) - while (__from < __from_end) - { - const size_t __conv = wcrtomb(__to, *__from, &__tmp_state); - if (__conv == static_cast<size_t>(-1)) - { - __ret = error; - break; - } - __state = __tmp_state; - __to += __conv; - __from++; - } - else - { - extern_type __buf[MB_LEN_MAX]; - while (__from < __from_end && __to < __to_end) - { - const size_t __conv = wcrtomb(__buf, *__from, &__tmp_state); - if (__conv == static_cast<size_t>(-1)) - { - __ret = error; - break; - } - else if (__conv > static_cast<size_t>(__to_end - __to)) - { - __ret = partial; - break; - } - - memcpy(__to, __buf, __conv); - __state = __tmp_state; - __to += __conv; - __from++; - } - } - - if (__ret == ok && __from < __from_end) - __ret = partial; - - __from_next = __from; - __to_next = __to; - return __ret; - } - - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const - { - result __ret = ok; - // This temporary state object is neccessary so __state won't be modified - // if [__from, __from_end) is a partial multibyte character. - state_type __tmp_state(__state); - - // Conversion must be done by calling mbrtowc in a loop rather than - // by calling mbsrtowcs because mbsrtowcs assumes that the input - // sequence is zero-terminated. - while (__from < __from_end && __to < __to_end) - { - size_t __conv = mbrtowc(__to, __from, __from_end - __from, - &__tmp_state); - if (__conv == static_cast<size_t>(-1)) - { - __ret = error; - break; - } - else if (__conv == static_cast<size_t>(-2)) - { - // It is unclear what to return in this case (see DR 382). - __ret = partial; - break; - } - else if (__conv == 0) - { - // XXX Probably wrong for stateful encodings - __conv = 1; - *__to = L'\0'; - } - - __state = __tmp_state; - __to++; - __from += __conv; - } - - // It is not clear that __from < __from_end implies __ret != ok - // (see DR 382). - if (__ret == ok && __from < __from_end) - __ret = partial; - - __from_next = __from; - __to_next = __to; - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_encoding() const throw() - { - // XXX This implementation assumes that the encoding is - // stateless and is either single-byte or variable-width. - int __ret = 0; - if (MB_CUR_MAX == 1) - __ret = 1; - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_max_length() const throw() - { - // XXX Probably wrong for stateful encodings. - int __ret = MB_CUR_MAX; - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_length(state_type& __state, const extern_type* __from, - const extern_type* __end, size_t __max) const - { - int __ret = 0; - state_type __tmp_state(__state); - - while (__from < __end && __max) - { - size_t __conv = mbrtowc(NULL, __from, __end - __from, &__tmp_state); - if (__conv == static_cast<size_t>(-1)) - { - // Invalid source character - break; - } - else if (__conv == static_cast<size_t>(-2)) - { - // Remainder of input does not form a complete destination - // character. - break; - } - else if (__conv == 0) - { - // XXX Probably wrong for stateful encodings - __conv = 1; - } - - __state = __tmp_state; - __from += __conv; - __ret += __conv; - __max--; - } - - return __ret; - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/collate_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/collate_members.cc deleted file mode 100644 index be3ee644a..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/collate_members.cc +++ /dev/null @@ -1,70 +0,0 @@ -// std::collate implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstring> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // These are basically extensions to char_traits, and perhaps should - // be put there instead of here. - template<> - int - collate<char>::_M_compare(const char* __one, const char* __two) const - { - int __cmp = strcoll(__one, __two); - return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); - } - - template<> - size_t - collate<char>::_M_transform(char* __to, const char* __from, - size_t __n) const - { return strxfrm(__to, __from, __n); } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - int - collate<wchar_t>::_M_compare(const wchar_t* __one, - const wchar_t* __two) const - { - int __cmp = wcscoll(__one, __two); - return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); - } - - template<> - size_t - collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from, - size_t __n) const - { return wcsxfrm(__to, __from, __n); } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/ctype_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/ctype_members.cc deleted file mode 100644 index 39671f631..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/ctype_members.cc +++ /dev/null @@ -1,269 +0,0 @@ -// std::ctype implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstdlib> -#include <cstring> -#include <cstdio> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // NB: The other ctype<char> specializations are in src/locale.cc and - // various /config/os/* files. - ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) - : ctype<char>(0, false, __refs) - { - if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_ctype); - this->_S_create_c_locale(this->_M_c_locale_ctype, __s); - } - } - - ctype_byname<char>::~ctype_byname() - { } - -#ifdef _GLIBCXX_USE_WCHAR_T - ctype<wchar_t>::__wmask_type - ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const - { - __wmask_type __ret; - switch (__m) - { - case space: - __ret = wctype("space"); - break; - case print: - __ret = wctype("print"); - break; - case cntrl: - __ret = wctype("cntrl"); - break; - case upper: - __ret = wctype("upper"); - break; - case lower: - __ret = wctype("lower"); - break; - case alpha: - __ret = wctype("alpha"); - break; - case digit: - __ret = wctype("digit"); - break; - case punct: - __ret = wctype("punct"); - break; - case xdigit: - __ret = wctype("xdigit"); - break; - case alnum: - __ret = wctype("alnum"); - break; - case graph: - __ret = wctype("graph"); - break; - default: - __ret = __wmask_type(); - } - return __ret; - }; - - wchar_t - ctype<wchar_t>::do_toupper(wchar_t __c) const - { return towupper(__c); } - - const wchar_t* - ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = towupper(*__lo); - ++__lo; - } - return __hi; - } - - wchar_t - ctype<wchar_t>::do_tolower(wchar_t __c) const - { return towlower(__c); } - - const wchar_t* - ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = towlower(*__lo); - ++__lo; - } - return __hi; - } - - bool - ctype<wchar_t>:: - do_is(mask __m, char_type __c) const - { - bool __ret = false; - // Generically, 15 (instead of 10) since we don't know the numerical - // encoding of the various categories in /usr/include/ctype.h. - const size_t __bitmasksize = 15; - for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) - if (__m & _M_bit[__bitcur] - && iswctype(__c, _M_wmask[__bitcur])) - { - __ret = true; - break; - } - return __ret; - } - - const wchar_t* - ctype<wchar_t>:: - do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const - { - for (;__lo < __hi; ++__vec, ++__lo) - { - // Generically, 15 (instead of 10) since we don't know the numerical - // encoding of the various categories in /usr/include/ctype.h. - const size_t __bitmasksize = 15; - mask __m = 0; - for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) - if (iswctype(*__lo, _M_wmask[__bitcur])) - __m |= _M_bit[__bitcur]; - *__vec = __m; - } - return __hi; - } - - const wchar_t* - ctype<wchar_t>:: - do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi && !this->do_is(__m, *__lo)) - ++__lo; - return __lo; - } - - const wchar_t* - ctype<wchar_t>:: - do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const - { - while (__lo < __hi && this->do_is(__m, *__lo) != 0) - ++__lo; - return __lo; - } - - wchar_t - ctype<wchar_t>:: - do_widen(char __c) const - { return _M_widen[static_cast<unsigned char>(__c)]; } - - const char* - ctype<wchar_t>:: - do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const - { - while (__lo < __hi) - { - *__dest = _M_widen[static_cast<unsigned char>(*__lo)]; - ++__lo; - ++__dest; - } - return __hi; - } - - char - ctype<wchar_t>:: - do_narrow(wchar_t __wc, char __dfault) const - { - if (__wc >= 0 && __wc < 128 && _M_narrow_ok) - return _M_narrow[__wc]; - const int __c = wctob(__wc); - return (__c == EOF ? __dfault : static_cast<char>(__c)); - } - - const wchar_t* - ctype<wchar_t>:: - do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, - char* __dest) const - { - if (_M_narrow_ok) - while (__lo < __hi) - { - if (*__lo >= 0 && *__lo < 128) - *__dest = _M_narrow[*__lo]; - else - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - } - ++__lo; - ++__dest; - } - else - while (__lo < __hi) - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - ++__lo; - ++__dest; - } - return __hi; - } - - void - ctype<wchar_t>::_M_initialize_ctype() - { - wint_t __i; - for (__i = 0; __i < 128; ++__i) - { - const int __c = wctob(__i); - if (__c == EOF) - break; - else - _M_narrow[__i] = static_cast<char>(__c); - } - if (__i == 128) - _M_narrow_ok = true; - else - _M_narrow_ok = false; - for (size_t __i = 0; - __i < sizeof(_M_widen) / sizeof(wint_t); ++__i) - _M_widen[__i] = btowc(__i); - - for (size_t __i = 0; __i <= 15; ++__i) - { - _M_bit[__i] = static_cast<mask>(1 << __i); - _M_wmask[__i] = _M_convert_to_wmask(_M_bit[__i]); - } - } -#endif // _GLIBCXX_USE_WCHAR_T - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.cc deleted file mode 100644 index f0402ec00..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.cc +++ /dev/null @@ -1,48 +0,0 @@ -// std::messages implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Specializations - template<> - string - messages<char>::do_get(catalog, int, int, const string& __dfault) const - { return __dfault; } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - wstring - messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const - { return __dfault; } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.h b/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.h deleted file mode 100644 index a149950db..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/messages_members.h +++ /dev/null @@ -1,90 +0,0 @@ -// std::messages implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file messages_members.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Non-virtual member functions. - template<typename _CharT> - messages<_CharT>::messages(size_t __refs) - : facet(__refs) - { _M_c_locale_messages = _S_get_c_locale(); } - - template<typename _CharT> - messages<_CharT>::messages(__c_locale, const char*, size_t __refs) - : facet(__refs) - { _M_c_locale_messages = _S_get_c_locale(); } - - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, - const char*) const - { return this->do_open(__s, __loc); } - - // Virtual member functions. - template<typename _CharT> - messages<_CharT>::~messages() - { _S_destroy_c_locale(_M_c_locale_messages); } - - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::do_open(const basic_string<char>&, const locale&) const - { return 0; } - - template<typename _CharT> - typename messages<_CharT>::string_type - messages<_CharT>::do_get(catalog, int, int, - const string_type& __dfault) const - { return __dfault; } - - template<typename _CharT> - void - messages<_CharT>::do_close(catalog) const - { } - - // messages_byname - template<typename _CharT> - messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) - : messages<_CharT>(__refs) - { - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_messages); - this->_S_create_c_locale(this->_M_c_locale_messages, __s); - } - } - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/monetary_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/monetary_members.cc deleted file mode 100644 index 9c03f684e..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/monetary_members.cc +++ /dev/null @@ -1,167 +0,0 @@ -// std::moneypunct implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Construct and return valid pattern consisting of some combination of: - // space none symbol sign value - money_base::pattern - money_base::_S_construct_pattern(char, char, char) - { return _S_default_pattern; } - - template<> - void - moneypunct<char, true>::_M_initialize_moneypunct(__c_locale, const char*) - { - // "C" locale. - if (!_M_data) - _M_data = new __moneypunct_cache<char, true>; - - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_curr_symbol = ""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = ""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = ""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; - } - - template<> - void - moneypunct<char, false>::_M_initialize_moneypunct(__c_locale, const char*) - { - // "C" locale. - if (!_M_data) - _M_data = new __moneypunct_cache<char, false>; - - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_curr_symbol = ""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = ""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = ""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; - } - - template<> - moneypunct<char, true>::~moneypunct() - { delete _M_data; } - - template<> - moneypunct<char, false>::~moneypunct() - { delete _M_data; } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale, - const char*) - { - // "C" locale - if (!_M_data) - _M_data = new __moneypunct_cache<wchar_t, true>; - - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = - static_cast<wchar_t>(money_base::_S_atoms[__i]); - } - - template<> - void - moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale, - const char*) - { - // "C" locale - if (!_M_data) - _M_data = new __moneypunct_cache<wchar_t, false>; - - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = - static_cast<wchar_t>(money_base::_S_atoms[__i]); - } - - template<> - moneypunct<wchar_t, true>::~moneypunct() - { delete _M_data; } - - template<> - moneypunct<wchar_t, false>::~moneypunct() - { delete _M_data; } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/numeric_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/numeric_members.cc deleted file mode 100644 index a40944435..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/numeric_members.cc +++ /dev/null @@ -1,103 +0,0 @@ -// std::numpunct implementation details, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - numpunct<char>::_M_initialize_numpunct(__c_locale) - { - // "C" locale - if (!_M_data) - _M_data = new __numpunct_cache<char>; - - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - - for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) - _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; - - for (size_t __i = 0; __i < __num_base::_S_iend; ++__i) - _M_data->_M_atoms_in[__i] = __num_base::_S_atoms_in[__i]; - - _M_data->_M_truename = "true"; - _M_data->_M_truename_size = 4; - _M_data->_M_falsename = "false"; - _M_data->_M_falsename_size = 5; - } - - template<> - numpunct<char>::~numpunct() - { delete _M_data; } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - numpunct<wchar_t>::_M_initialize_numpunct(__c_locale) - { - // "C" locale - if (!_M_data) - _M_data = new __numpunct_cache<wchar_t>; - - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - - // Use ctype::widen code without the facet... - for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) - _M_data->_M_atoms_out[__i] = - static_cast<wchar_t>(__num_base::_S_atoms_out[__i]); - - for (size_t __i = 0; __i < __num_base::_S_iend; ++__i) - _M_data->_M_atoms_in[__i] = - static_cast<wchar_t>(__num_base::_S_atoms_in[__i]); - - _M_data->_M_truename = L"true"; - _M_data->_M_truename_size = 4; - _M_data->_M_falsename = L"false"; - _M_data->_M_falsename_size = 5; - } - - template<> - numpunct<wchar_t>::~numpunct() - { delete _M_data; } -#endif - -_GLIBCXX_END_NAMESPACE - diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc deleted file mode 100644 index 46622944c..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.cc +++ /dev/null @@ -1,217 +0,0 @@ -// std::time_get, std::time_put implementation, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstdlib> -#include <cstring> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - __timepunct<char>:: - _M_put(char* __s, size_t __maxlen, const char* __format, - const tm* __tm) const - { - char* __old = setlocale(LC_ALL, NULL); - char* __sav = NULL; - if (__old != NULL) - { - const size_t __llen = strlen(__old) + 1; - __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - } - const size_t __len = strftime(__s, __maxlen, __format, __tm); - setlocale(LC_ALL, __sav); - delete [] __sav; - // Make sure __s is null terminated. - if (__len == 0) - __s[0] = '\0'; - } - - template<> - void - __timepunct<char>::_M_initialize_timepunct(__c_locale) - { - // "C" locale. - if (!_M_data) - _M_data = new __timepunct_cache<char>; - - _M_data->_M_date_format = "%m/%d/%y"; - _M_data->_M_date_era_format = "%m/%d/%y"; - _M_data->_M_time_format = "%H:%M:%S"; - _M_data->_M_time_era_format = "%H:%M:%S"; - _M_data->_M_date_time_format = ""; - _M_data->_M_date_time_era_format = ""; - _M_data->_M_am = "AM"; - _M_data->_M_pm = "PM"; - _M_data->_M_am_pm_format = ""; - - // Day names, starting with "C"'s Sunday. - _M_data->_M_day1 = "Sunday"; - _M_data->_M_day2 = "Monday"; - _M_data->_M_day3 = "Tuesday"; - _M_data->_M_day4 = "Wednesday"; - _M_data->_M_day5 = "Thursday"; - _M_data->_M_day6 = "Friday"; - _M_data->_M_day7 = "Saturday"; - - // Abbreviated day names, starting with "C"'s Sun. - _M_data->_M_aday1 = "Sun"; - _M_data->_M_aday2 = "Mon"; - _M_data->_M_aday3 = "Tue"; - _M_data->_M_aday4 = "Wed"; - _M_data->_M_aday5 = "Thu"; - _M_data->_M_aday6 = "Fri"; - _M_data->_M_aday7 = "Sat"; - - // Month names, starting with "C"'s January. - _M_data->_M_month01 = "January"; - _M_data->_M_month02 = "February"; - _M_data->_M_month03 = "March"; - _M_data->_M_month04 = "April"; - _M_data->_M_month05 = "May"; - _M_data->_M_month06 = "June"; - _M_data->_M_month07 = "July"; - _M_data->_M_month08 = "August"; - _M_data->_M_month09 = "September"; - _M_data->_M_month10 = "October"; - _M_data->_M_month11 = "November"; - _M_data->_M_month12 = "December"; - - // Abbreviated month names, starting with "C"'s Jan. - _M_data->_M_amonth01 = "Jan"; - _M_data->_M_amonth02 = "Feb"; - _M_data->_M_amonth03 = "Mar"; - _M_data->_M_amonth04 = "Apr"; - _M_data->_M_amonth05 = "May"; - _M_data->_M_amonth06 = "Jun"; - _M_data->_M_amonth07 = "Jul"; - _M_data->_M_amonth08 = "Aug"; - _M_data->_M_amonth09 = "Sep"; - _M_data->_M_amonth10 = "Oct"; - _M_data->_M_amonth11 = "Nov"; - _M_data->_M_amonth12 = "Dec"; - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - __timepunct<wchar_t>:: - _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, - const tm* __tm) const - { - char* __old = setlocale(LC_ALL, NULL); - char* __sav = NULL; - if (__old != NULL) - { - const size_t __llen = strlen(__old) + 1; - __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - } - const size_t __len = wcsftime(__s, __maxlen, __format, __tm); - setlocale(LC_ALL, __sav); - delete [] __sav; - // Make sure __s is null terminated. - if (__len == 0) - __s[0] = L'\0'; - } - - template<> - void - __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale) - { - // "C" locale. - if (!_M_data) - _M_data = new __timepunct_cache<wchar_t>; - - _M_data->_M_date_format = L"%m/%d/%y"; - _M_data->_M_date_era_format = L"%m/%d/%y"; - _M_data->_M_time_format = L"%H:%M:%S"; - _M_data->_M_time_era_format = L"%H:%M:%S"; - _M_data->_M_date_time_format = L""; - _M_data->_M_date_time_era_format = L""; - _M_data->_M_am = L"AM"; - _M_data->_M_pm = L"PM"; - _M_data->_M_am_pm_format = L""; - - // Day names, starting with "C"'s Sunday. - _M_data->_M_day1 = L"Sunday"; - _M_data->_M_day2 = L"Monday"; - _M_data->_M_day3 = L"Tuesday"; - _M_data->_M_day4 = L"Wednesday"; - _M_data->_M_day5 = L"Thursday"; - _M_data->_M_day6 = L"Friday"; - _M_data->_M_day7 = L"Saturday"; - - // Abbreviated day names, starting with "C"'s Sun. - _M_data->_M_aday1 = L"Sun"; - _M_data->_M_aday2 = L"Mon"; - _M_data->_M_aday3 = L"Tue"; - _M_data->_M_aday4 = L"Wed"; - _M_data->_M_aday5 = L"Thu"; - _M_data->_M_aday6 = L"Fri"; - _M_data->_M_aday7 = L"Sat"; - - // Month names, starting with "C"'s January. - _M_data->_M_month01 = L"January"; - _M_data->_M_month02 = L"February"; - _M_data->_M_month03 = L"March"; - _M_data->_M_month04 = L"April"; - _M_data->_M_month05 = L"May"; - _M_data->_M_month06 = L"June"; - _M_data->_M_month07 = L"July"; - _M_data->_M_month08 = L"August"; - _M_data->_M_month09 = L"September"; - _M_data->_M_month10 = L"October"; - _M_data->_M_month11 = L"November"; - _M_data->_M_month12 = L"December"; - - // Abbreviated month names, starting with "C"'s Jan. - _M_data->_M_amonth01 = L"Jan"; - _M_data->_M_amonth02 = L"Feb"; - _M_data->_M_amonth03 = L"Mar"; - _M_data->_M_amonth04 = L"Apr"; - _M_data->_M_amonth05 = L"May"; - _M_data->_M_amonth06 = L"Jun"; - _M_data->_M_amonth07 = L"Jul"; - _M_data->_M_amonth08 = L"Aug"; - _M_data->_M_amonth09 = L"Sep"; - _M_data->_M_amonth10 = L"Oct"; - _M_data->_M_amonth11 = L"Nov"; - _M_data->_M_amonth12 = L"Dec"; - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.h b/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.h deleted file mode 100644 index d06faf409..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/generic/time_members.h +++ /dev/null @@ -1,90 +0,0 @@ -// std::time_get, std::time_put implementation, generic version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file time_members.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.2.5.1.2 - time_get functions -// ISO C++ 14882: 22.2.5.3.2 - time_put functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(size_t __refs) - : facet(__refs), _M_data(NULL) - { - _M_name_timepunct = _S_get_c_name(); - _M_initialize_timepunct(); - } - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) - : facet(__refs), _M_data(__cache) - { - _M_name_timepunct = _S_get_c_name(); - _M_initialize_timepunct(); - } - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_data(NULL) - { - if (__builtin_strcmp(__s, _S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - _M_name_timepunct = __tmp; - } - else - _M_name_timepunct = _S_get_c_name(); - - __try - { _M_initialize_timepunct(__cloc); } - __catch(...) - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - __throw_exception_again; - } - } - - template<typename _CharT> - __timepunct<_CharT>::~__timepunct() - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - delete _M_data; - _S_destroy_c_locale(_M_c_locale_timepunct); - } - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c++locale_internal.h b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c++locale_internal.h deleted file mode 100644 index 03d3d6238..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c++locale_internal.h +++ /dev/null @@ -1,64 +0,0 @@ -// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- - -// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file c++locale_internal.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// Written by Jakub Jelinek <jakub@redhat.com> - -#include <bits/c++config.h> -#include <clocale> -#include <cstdlib> -#include <cstring> -#include <cstddef> -#include <langinfo.h> - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - -extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; -extern "C" __typeof(strcoll_l) __strcoll_l; -extern "C" __typeof(strftime_l) __strftime_l; -extern "C" __typeof(strtod_l) __strtod_l; -extern "C" __typeof(strtof_l) __strtof_l; -extern "C" __typeof(strtold_l) __strtold_l; -extern "C" __typeof(strxfrm_l) __strxfrm_l; -extern "C" __typeof(newlocale) __newlocale; -extern "C" __typeof(freelocale) __freelocale; -extern "C" __typeof(duplocale) __duplocale; -extern "C" __typeof(uselocale) __uselocale; - -#ifdef _GLIBCXX_USE_WCHAR_T -extern "C" __typeof(iswctype_l) __iswctype_l; -extern "C" __typeof(towlower_l) __towlower_l; -extern "C" __typeof(towupper_l) __towupper_l; -extern "C" __typeof(wcscoll_l) __wcscoll_l; -extern "C" __typeof(wcsftime_l) __wcsftime_l; -extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; -extern "C" __typeof(wctype_l) __wctype_l; -#endif - -#endif // GLIBC 2.3 and later diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.cc deleted file mode 100644 index cd32dc031..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.cc +++ /dev/null @@ -1,184 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <stdexcept> -#include <limits> -#include <langinfo.h> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { - char* __sanity; - __v = __strtof_l(__s, &__sanity, __cloc); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') - { - __v = 0.0f; - __err = ios_base::failbit; - } - else if (__v == numeric_limits<float>::infinity()) - { - __v = numeric_limits<float>::max(); - __err = ios_base::failbit; - } - else if (__v == -numeric_limits<float>::infinity()) - { - __v = -numeric_limits<float>::max(); - __err = ios_base::failbit; - } - } - - template<> - void - __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { - char* __sanity; - __v = __strtod_l(__s, &__sanity, __cloc); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') - { - __v = 0.0; - __err = ios_base::failbit; - } - else if (__v == numeric_limits<double>::infinity()) - { - __v = numeric_limits<double>::max(); - __err = ios_base::failbit; - } - else if (__v == -numeric_limits<double>::infinity()) - { - __v = -numeric_limits<double>::max(); - __err = ios_base::failbit; - } - } - - template<> - void - __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { - char* __sanity; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - // Prefer strtold_l, as __strtold_l isn't prototyped in more recent - // glibc versions. - __v = strtold_l(__s, &__sanity, __cloc); -#else - __v = __strtold_l(__s, &__sanity, __cloc); -#endif - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if (__sanity == __s || *__sanity != '\0') - { - __v = 0.0l; - __err = ios_base::failbit; - } - else if (__v == numeric_limits<long double>::infinity()) - { - __v = numeric_limits<long double>::max(); - __err = ios_base::failbit; - } - else if (__v == -numeric_limits<long double>::infinity()) - { - __v = -numeric_limits<long double>::max(); - __err = ios_base::failbit; - } - } - - void - locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, - __c_locale __old) - { - __cloc = __newlocale(1 << LC_ALL, __s, __old); - if (!__cloc) - { - // This named locale is not supported by the underlying OS. - __throw_runtime_error(__N("locale::facet::_S_create_c_locale " - "name not valid")); - } - } - - void - locale::facet::_S_destroy_c_locale(__c_locale& __cloc) - { - if (__cloc && _S_get_c_locale() != __cloc) - __freelocale(__cloc); - } - - __c_locale - locale::facet::_S_clone_c_locale(__c_locale& __cloc) - { return __duplocale(__cloc); } - -_GLIBCXX_END_NAMESPACE - -_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) - - const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = - { - "LC_CTYPE", - "LC_NUMERIC", - "LC_TIME", - "LC_COLLATE", - "LC_MONETARY", - "LC_MESSAGES", - "LC_PAPER", - "LC_NAME", - "LC_ADDRESS", - "LC_TELEPHONE", - "LC_MEASUREMENT", - "LC_IDENTIFICATION" - }; - -_GLIBCXX_END_NAMESPACE - -_GLIBCXX_BEGIN_NAMESPACE(std) - - const char* const* const locale::_S_categories = __gnu_cxx::category_names; - -_GLIBCXX_END_NAMESPACE - -// XXX GLIBCXX_ABI Deprecated -#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT -#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ - extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) -_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct); -#endif // _GLIBCXX_LONG_DOUBLE_COMPAT diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.h b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.h deleted file mode 100644 index 749a97ad6..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/c_locale.h +++ /dev/null @@ -1,110 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file c++locale.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#ifndef _GLIBCXX_CXX_LOCALE_H -#define _GLIBCXX_CXX_LOCALE_H 1 - -#pragma GCC system_header - -#include <clocale> -#include <cstddef> - -#define _GLIBCXX_C_LOCALE_GNU 1 - -#define _GLIBCXX_NUM_CATEGORIES 6 - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) -_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) - - extern "C" __typeof(uselocale) __uselocale; - -_GLIBCXX_END_NAMESPACE -#endif - -_GLIBCXX_BEGIN_NAMESPACE(std) - - typedef __locale_t __c_locale; - - // Convert numeric value of type double and long double to string and - // return length of string. If vsnprintf is available use it, otherwise - // fall back to the unsafe vsprintf which, in general, can be dangerous - // and should be avoided. - inline int - __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), - char* __out, - const int __size __attribute__ ((__unused__)), - const char* __fmt, ...) - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __gnu_cxx::__uselocale(__cloc); -#else - char* __old = std::setlocale(LC_NUMERIC, NULL); - char* __sav = NULL; - if (__builtin_strcmp(__old, "C")) - { - const size_t __len = __builtin_strlen(__old) + 1; - __sav = new char[__len]; - __builtin_memcpy(__sav, __old, __len); - std::setlocale(LC_NUMERIC, "C"); - } -#endif - - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - -#ifdef _GLIBCXX_USE_C99 - const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); -#else - const int __ret = __builtin_vsprintf(__out, __fmt, __args); -#endif - - __builtin_va_end(__args); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __gnu_cxx::__uselocale(__old); -#else - if (__sav) - { - std::setlocale(LC_NUMERIC, __sav); - delete [] __sav; - } -#endif - return __ret; - } - -_GLIBCXX_END_NAMESPACE - -#endif diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/codecvt_members.cc deleted file mode 100644 index 1215e4816..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/codecvt_members.cc +++ /dev/null @@ -1,305 +0,0 @@ -// std::codecvt implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.1.5 - Template class codecvt -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstdlib> // For MB_CUR_MAX -#include <climits> // For MB_LEN_MAX -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Specializations. -#ifdef _GLIBCXX_USE_WCHAR_T - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const - { - result __ret = ok; - state_type __tmp_state(__state); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_codecvt); -#endif - - // wcsnrtombs is *very* fast but stops if encounters NUL characters: - // in case we fall back to wcrtomb and then continue, in a loop. - // NB: wcsnrtombs is a GNU extension - for (__from_next = __from, __to_next = __to; - __from_next < __from_end && __to_next < __to_end - && __ret == ok;) - { - const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', - __from_end - __from_next); - if (!__from_chunk_end) - __from_chunk_end = __from_end; - - __from = __from_next; - const size_t __conv = wcsnrtombs(__to_next, &__from_next, - __from_chunk_end - __from_next, - __to_end - __to_next, &__state); - if (__conv == static_cast<size_t>(-1)) - { - // In case of error, in order to stop at the exact place we - // have to start again from the beginning with a series of - // wcrtomb. - for (; __from < __from_next; ++__from) - __to_next += wcrtomb(__to_next, *__from, &__tmp_state); - __state = __tmp_state; - __ret = error; - } - else if (__from_next && __from_next < __from_chunk_end) - { - __to_next += __conv; - __ret = partial; - } - else - { - __from_next = __from_chunk_end; - __to_next += __conv; - } - - if (__from_next < __from_end && __ret == ok) - { - extern_type __buf[MB_LEN_MAX]; - __tmp_state = __state; - const size_t __conv2 = wcrtomb(__buf, *__from_next, &__tmp_state); - if (__conv2 > static_cast<size_t>(__to_end - __to_next)) - __ret = partial; - else - { - memcpy(__to_next, __buf, __conv2); - __state = __tmp_state; - __to_next += __conv2; - ++__from_next; - } - } - } - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - - return __ret; - } - - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const - { - result __ret = ok; - state_type __tmp_state(__state); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_codecvt); -#endif - - // mbsnrtowcs is *very* fast but stops if encounters NUL characters: - // in case we store a L'\0' and then continue, in a loop. - // NB: mbsnrtowcs is a GNU extension - for (__from_next = __from, __to_next = __to; - __from_next < __from_end && __to_next < __to_end - && __ret == ok;) - { - const extern_type* __from_chunk_end; - __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0', - __from_end - - __from_next)); - if (!__from_chunk_end) - __from_chunk_end = __from_end; - - __from = __from_next; - size_t __conv = mbsnrtowcs(__to_next, &__from_next, - __from_chunk_end - __from_next, - __to_end - __to_next, &__state); - if (__conv == static_cast<size_t>(-1)) - { - // In case of error, in order to stop at the exact place we - // have to start again from the beginning with a series of - // mbrtowc. - for (;; ++__to_next, __from += __conv) - { - __conv = mbrtowc(__to_next, __from, __from_end - __from, - &__tmp_state); - if (__conv == static_cast<size_t>(-1) - || __conv == static_cast<size_t>(-2)) - break; - } - __from_next = __from; - __state = __tmp_state; - __ret = error; - } - else if (__from_next && __from_next < __from_chunk_end) - { - // It is unclear what to return in this case (see DR 382). - __to_next += __conv; - __ret = partial; - } - else - { - __from_next = __from_chunk_end; - __to_next += __conv; - } - - if (__from_next < __from_end && __ret == ok) - { - if (__to_next < __to_end) - { - // XXX Probably wrong for stateful encodings - __tmp_state = __state; - ++__from_next; - *__to_next++ = L'\0'; - } - else - __ret = partial; - } - } - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_encoding() const throw() - { - // XXX This implementation assumes that the encoding is - // stateless and is either single-byte or variable-width. - int __ret = 0; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_codecvt); -#endif - if (MB_CUR_MAX == 1) - __ret = 1; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_max_length() const throw() - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_codecvt); -#endif - // XXX Probably wrong for stateful encodings. - int __ret = MB_CUR_MAX; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - return __ret; - } - - int - codecvt<wchar_t, char, mbstate_t>:: - do_length(state_type& __state, const extern_type* __from, - const extern_type* __end, size_t __max) const - { - int __ret = 0; - state_type __tmp_state(__state); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_codecvt); -#endif - - // mbsnrtowcs is *very* fast but stops if encounters NUL characters: - // in case we advance past it and then continue, in a loop. - // NB: mbsnrtowcs is a GNU extension - - // A dummy internal buffer is needed in order for mbsnrtocws to consider - // its fourth parameter (it wouldn't with NULL as first parameter). - wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) - * __max)); - while (__from < __end && __max) - { - const extern_type* __from_chunk_end; - __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0', - __end - - __from)); - if (!__from_chunk_end) - __from_chunk_end = __end; - - const extern_type* __tmp_from = __from; - size_t __conv = mbsnrtowcs(__to, &__from, - __from_chunk_end - __from, - __max, &__state); - if (__conv == static_cast<size_t>(-1)) - { - // In case of error, in order to stop at the exact place we - // have to start again from the beginning with a series of - // mbrtowc. - for (__from = __tmp_from;; __from += __conv) - { - __conv = mbrtowc(NULL, __from, __end - __from, - &__tmp_state); - if (__conv == static_cast<size_t>(-1) - || __conv == static_cast<size_t>(-2)) - break; - } - __state = __tmp_state; - __ret += __from - __tmp_from; - break; - } - if (!__from) - __from = __from_chunk_end; - - __ret += __from - __tmp_from; - __max -= __conv; - - if (__from < __end && __max) - { - // XXX Probably wrong for stateful encodings - __tmp_state = __state; - ++__from; - ++__ret; - --__max; - } - } - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - - return __ret; - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/collate_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/collate_members.cc deleted file mode 100644 index e8df3c24b..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/collate_members.cc +++ /dev/null @@ -1,69 +0,0 @@ -// std::collate implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // These are basically extensions to char_traits, and perhaps should - // be put there instead of here. - template<> - int - collate<char>::_M_compare(const char* __one, const char* __two) const - { - int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); - return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); - } - - template<> - size_t - collate<char>::_M_transform(char* __to, const char* __from, - size_t __n) const - { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - int - collate<wchar_t>::_M_compare(const wchar_t* __one, - const wchar_t* __two) const - { - int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); - return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); - } - - template<> - size_t - collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from, - size_t __n) const - { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/ctype_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/ctype_members.cc deleted file mode 100644 index 546f87825..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/ctype_members.cc +++ /dev/null @@ -1,303 +0,0 @@ -// std::ctype implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <cstdio> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // NB: The other ctype<char> specializations are in src/locale.cc and - // various /config/os/* files. - ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) - : ctype<char>(0, false, __refs) - { - if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_ctype); - this->_S_create_c_locale(this->_M_c_locale_ctype, __s); - this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; - this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; - this->_M_table = this->_M_c_locale_ctype->__ctype_b; - } - } - - ctype_byname<char>::~ctype_byname() - { } - -#ifdef _GLIBCXX_USE_WCHAR_T - ctype<wchar_t>::__wmask_type - ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const - { - __wmask_type __ret; - switch (__m) - { - case space: - __ret = __wctype_l("space", _M_c_locale_ctype); - break; - case print: - __ret = __wctype_l("print", _M_c_locale_ctype); - break; - case cntrl: - __ret = __wctype_l("cntrl", _M_c_locale_ctype); - break; - case upper: - __ret = __wctype_l("upper", _M_c_locale_ctype); - break; - case lower: - __ret = __wctype_l("lower", _M_c_locale_ctype); - break; - case alpha: - __ret = __wctype_l("alpha", _M_c_locale_ctype); - break; - case digit: - __ret = __wctype_l("digit", _M_c_locale_ctype); - break; - case punct: - __ret = __wctype_l("punct", _M_c_locale_ctype); - break; - case xdigit: - __ret = __wctype_l("xdigit", _M_c_locale_ctype); - break; - case alnum: - __ret = __wctype_l("alnum", _M_c_locale_ctype); - break; - case graph: - __ret = __wctype_l("graph", _M_c_locale_ctype); - break; - default: - __ret = __wmask_type(); - } - return __ret; - } - - wchar_t - ctype<wchar_t>::do_toupper(wchar_t __c) const - { return __towupper_l(__c, _M_c_locale_ctype); } - - const wchar_t* - ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = __towupper_l(*__lo, _M_c_locale_ctype); - ++__lo; - } - return __hi; - } - - wchar_t - ctype<wchar_t>::do_tolower(wchar_t __c) const - { return __towlower_l(__c, _M_c_locale_ctype); } - - const wchar_t* - ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi) - { - *__lo = __towlower_l(*__lo, _M_c_locale_ctype); - ++__lo; - } - return __hi; - } - - bool - ctype<wchar_t>:: - do_is(mask __m, wchar_t __c) const - { - // The case of __m == ctype_base::space is particularly important, - // due to its use in many istream functions. Therefore we deal with - // it first, exploiting the knowledge that on GNU systems _M_bit[5] - // is the mask corresponding to ctype_base::space. NB: an encoding - // change would not affect correctness! - bool __ret = false; - if (__m == _M_bit[5]) - __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype); - else - { - // Highest bitmask in ctype_base == 10, but extra in "C" - // library for blank. - const size_t __bitmasksize = 11; - for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) - if (__m & _M_bit[__bitcur]) - { - if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) - { - __ret = true; - break; - } - else if (__m == _M_bit[__bitcur]) - break; - } - } - return __ret; - } - - const wchar_t* - ctype<wchar_t>:: - do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const - { - for (; __lo < __hi; ++__vec, ++__lo) - { - // Highest bitmask in ctype_base == 10, but extra in "C" - // library for blank. - const size_t __bitmasksize = 11; - mask __m = 0; - for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) - if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) - __m |= _M_bit[__bitcur]; - *__vec = __m; - } - return __hi; - } - - const wchar_t* - ctype<wchar_t>:: - do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const - { - while (__lo < __hi && !this->do_is(__m, *__lo)) - ++__lo; - return __lo; - } - - const wchar_t* - ctype<wchar_t>:: - do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const - { - while (__lo < __hi && this->do_is(__m, *__lo) != 0) - ++__lo; - return __lo; - } - - wchar_t - ctype<wchar_t>:: - do_widen(char __c) const - { return _M_widen[static_cast<unsigned char>(__c)]; } - - const char* - ctype<wchar_t>:: - do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const - { - while (__lo < __hi) - { - *__dest = _M_widen[static_cast<unsigned char>(*__lo)]; - ++__lo; - ++__dest; - } - return __hi; - } - - char - ctype<wchar_t>:: - do_narrow(wchar_t __wc, char __dfault) const - { - if (__wc >= 0 && __wc < 128 && _M_narrow_ok) - return _M_narrow[__wc]; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_ctype); -#endif - const int __c = wctob(__wc); -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - return (__c == EOF ? __dfault : static_cast<char>(__c)); - } - - const wchar_t* - ctype<wchar_t>:: - do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, - char* __dest) const - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_ctype); -#endif - if (_M_narrow_ok) - while (__lo < __hi) - { - if (*__lo >= 0 && *__lo < 128) - *__dest = _M_narrow[*__lo]; - else - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - } - ++__lo; - ++__dest; - } - else - while (__lo < __hi) - { - const int __c = wctob(*__lo); - *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); - ++__lo; - ++__dest; - } -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - return __hi; - } - - void - ctype<wchar_t>::_M_initialize_ctype() - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_ctype); -#endif - wint_t __i; - for (__i = 0; __i < 128; ++__i) - { - const int __c = wctob(__i); - if (__c == EOF) - break; - else - _M_narrow[__i] = static_cast<char>(__c); - } - if (__i == 128) - _M_narrow_ok = true; - else - _M_narrow_ok = false; - for (size_t __j = 0; - __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) - _M_widen[__j] = btowc(__j); - - for (size_t __k = 0; __k <= 11; ++__k) - { - _M_bit[__k] = static_cast<mask>(_ISbit(__k)); - _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); - } -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#endif - } -#endif // _GLIBCXX_USE_WCHAR_T - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.cc deleted file mode 100644 index 1a42b3898..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.cc +++ /dev/null @@ -1,83 +0,0 @@ -// std::messages implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Specializations. - template<> - string - messages<char>::do_get(catalog, int, int, const string& __dfault) const - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_messages); - const char* __msg = const_cast<const char*>(gettext(__dfault.c_str())); - __uselocale(__old); - return string(__msg); -#else - char* __old = setlocale(LC_ALL, NULL); - const size_t __len = strlen(__old) + 1; - char* __sav = new char[__len]; - memcpy(__sav, __old, __len); - setlocale(LC_ALL, _M_name_messages); - const char* __msg = gettext(__dfault.c_str()); - setlocale(LC_ALL, __sav); - delete [] __sav; - return string(__msg); -#endif - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - wstring - messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const - { -# if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_messages); - char* __msg = gettext(_M_convert_to_char(__dfault)); - __uselocale(__old); - return _M_convert_from_char(__msg); -# else - char* __old = setlocale(LC_ALL, NULL); - const size_t __len = strlen(__old) + 1; - char* __sav = new char[__len]; - memcpy(__sav, __old, __len); - setlocale(LC_ALL, _M_name_messages); - char* __msg = gettext(_M_convert_to_char(__dfault)); - setlocale(LC_ALL, __sav); - delete [] __sav; - return _M_convert_from_char(__msg); -# endif - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.h b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.h deleted file mode 100644 index 8773562b0..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/messages_members.h +++ /dev/null @@ -1,128 +0,0 @@ -// std::messages implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file messages_members.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.2.7.1.2 messages functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <libintl.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Non-virtual member functions. - template<typename _CharT> - messages<_CharT>::messages(size_t __refs) - : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), - _M_name_messages(_S_get_c_name()) - { } - - template<typename _CharT> - messages<_CharT>::messages(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL) - { - if (__builtin_strcmp(__s, _S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - _M_name_messages = __tmp; - } - else - _M_name_messages = _S_get_c_name(); - - // Last to avoid leaking memory if new throws. - _M_c_locale_messages = _S_clone_c_locale(__cloc); - } - - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, - const char* __dir) const - { - bindtextdomain(__s.c_str(), __dir); - return this->do_open(__s, __loc); - } - - // Virtual member functions. - template<typename _CharT> - messages<_CharT>::~messages() - { - if (_M_name_messages != _S_get_c_name()) - delete [] _M_name_messages; - _S_destroy_c_locale(_M_c_locale_messages); - } - - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::do_open(const basic_string<char>& __s, - const locale&) const - { - // No error checking is done, assume the catalog exists and can - // be used. - textdomain(__s.c_str()); - return 0; - } - - template<typename _CharT> - void - messages<_CharT>::do_close(catalog) const - { } - - // messages_byname - template<typename _CharT> - messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) - : messages<_CharT>(__refs) - { - if (this->_M_name_messages != locale::facet::_S_get_c_name()) - { - delete [] this->_M_name_messages; - if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - this->_M_name_messages = __tmp; - } - else - this->_M_name_messages = locale::facet::_S_get_c_name(); - } - - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_messages); - this->_S_create_c_locale(this->_M_c_locale_messages, __s); - } - } - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/monetary_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/monetary_members.cc deleted file mode 100644 index c5ec85753..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/monetary_members.cc +++ /dev/null @@ -1,752 +0,0 @@ -// std::moneypunct implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Construct and return valid pattern consisting of some combination of: - // space none symbol sign value - money_base::pattern - money_base::_S_construct_pattern(char __precedes, char __space, char __posn) - { - pattern __ret; - - // This insanely complicated routine attempts to construct a valid - // pattern for use with monyepunct. A couple of invariants: - - // if (__precedes) symbol -> value - // else value -> symbol - - // if (__space) space - // else none - - // none == never first - // space never first or last - - // Any elegant implementations of this are welcome. - switch (__posn) - { - case 0: - case 1: - // 1 The sign precedes the value and symbol. - __ret.field[0] = sign; - if (__space) - { - // Pattern starts with sign. - if (__precedes) - { - __ret.field[1] = symbol; - __ret.field[3] = value; - } - else - { - __ret.field[1] = value; - __ret.field[3] = symbol; - } - __ret.field[2] = space; - } - else - { - // Pattern starts with sign and ends with none. - if (__precedes) - { - __ret.field[1] = symbol; - __ret.field[2] = value; - } - else - { - __ret.field[1] = value; - __ret.field[2] = symbol; - } - __ret.field[3] = none; - } - break; - case 2: - // 2 The sign follows the value and symbol. - if (__space) - { - // Pattern either ends with sign. - if (__precedes) - { - __ret.field[0] = symbol; - __ret.field[2] = value; - } - else - { - __ret.field[0] = value; - __ret.field[2] = symbol; - } - __ret.field[1] = space; - __ret.field[3] = sign; - } - else - { - // Pattern ends with sign then none. - if (__precedes) - { - __ret.field[0] = symbol; - __ret.field[1] = value; - } - else - { - __ret.field[0] = value; - __ret.field[1] = symbol; - } - __ret.field[2] = sign; - __ret.field[3] = none; - } - break; - case 3: - // 3 The sign immediately precedes the symbol. - if (__precedes) - { - __ret.field[0] = sign; - __ret.field[1] = symbol; - if (__space) - { - __ret.field[2] = space; - __ret.field[3] = value; - } - else - { - __ret.field[2] = value; - __ret.field[3] = none; - } - } - else - { - __ret.field[0] = value; - if (__space) - { - __ret.field[1] = space; - __ret.field[2] = sign; - __ret.field[3] = symbol; - } - else - { - __ret.field[1] = sign; - __ret.field[2] = symbol; - __ret.field[3] = none; - } - } - break; - case 4: - // 4 The sign immediately follows the symbol. - if (__precedes) - { - __ret.field[0] = symbol; - __ret.field[1] = sign; - if (__space) - { - __ret.field[2] = space; - __ret.field[3] = value; - } - else - { - __ret.field[2] = value; - __ret.field[3] = none; - } - } - else - { - __ret.field[0] = value; - if (__space) - { - __ret.field[1] = space; - __ret.field[2] = symbol; - __ret.field[3] = sign; - } - else - { - __ret.field[1] = symbol; - __ret.field[2] = sign; - __ret.field[3] = none; - } - } - break; - default: - __ret = pattern(); - } - return __ret; - } - - template<> - void - moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, - const char*) - { - if (!_M_data) - _M_data = new __moneypunct_cache<char, true>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_curr_symbol = ""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = ""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = ""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; - } - else - { - // Named locale. - _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, - __cloc)); - _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, - __cloc)); - _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); - _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == '\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = ','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - - // Check for NULL, which implies no fractional digits. - if (_M_data->_M_decimal_point == '\0') - { - // Like in "C" locale. - _M_data->_M_frac_digits = 0; - _M_data->_M_decimal_point = '.'; - } - else - _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, - __cloc)); - - char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); - if (!__nposn) - _M_data->_M_negative_sign = "()"; - else - _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, - __cloc); - _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); - - // _Intl == true - _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); - _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); - char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); - char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); - char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); - _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, - __pposn); - char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); - char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); - _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, - __nposn); - } - } - - template<> - void - moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, - const char*) - { - if (!_M_data) - _M_data = new __moneypunct_cache<char, false>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_curr_symbol = ""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = ""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = ""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; - } - else - { - // Named locale. - _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, - __cloc)); - _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, - __cloc)); - _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); - _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == '\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = ','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - - // Check for NULL, which implies no fractional digits. - if (_M_data->_M_decimal_point == '\0') - { - // Like in "C" locale. - _M_data->_M_frac_digits = 0; - _M_data->_M_decimal_point = '.'; - } - else - _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, - __cloc)); - - char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); - if (!__nposn) - _M_data->_M_negative_sign = "()"; - else - _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, - __cloc); - _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); - - // _Intl == false - _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); - _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); - char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); - char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); - char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); - _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, - __pposn); - char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); - char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); - _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, - __nposn); - } - } - - template<> - moneypunct<char, true>::~moneypunct() - { delete _M_data; } - - template<> - moneypunct<char, false>::~moneypunct() - { delete _M_data; } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - const char*) -#else - const char* __name) -#endif - { - if (!_M_data) - _M_data = new __moneypunct_cache<wchar_t, true>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - // Use ctype::widen code without the facet... - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = - static_cast<wchar_t>(money_base::_S_atoms[__i]); - } - else - { - // Named locale. -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(__cloc); -#else - // Switch to named locale so that mbsrtowcs will work. - char* __old = setlocale(LC_ALL, NULL); - const size_t __llen = strlen(__old) + 1; - char* __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, __name); -#endif - - union { char *__s; wchar_t __w; } __u; - __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); - _M_data->_M_decimal_point = __u.__w; - - __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); - _M_data->_M_thousands_sep = __u.__w; - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == L'\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = L','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - - // Check for NULL, which implies no fractional digits. - if (_M_data->_M_decimal_point == L'\0') - { - // Like in "C" locale. - _M_data->_M_frac_digits = 0; - _M_data->_M_decimal_point = L'.'; - } - else - _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, - __cloc)); - - const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); - const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); - const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); - - wchar_t* __wcs_ps = 0; - wchar_t* __wcs_ns = 0; - const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); - __try - { - mbstate_t __state; - size_t __len = strlen(__cpossign); - if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - __wcs_ps = new wchar_t[__len]; - mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); - _M_data->_M_positive_sign = __wcs_ps; - } - else - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); - - __len = strlen(__cnegsign); - if (!__nposn) - _M_data->_M_negative_sign = L"()"; - else if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - __wcs_ns = new wchar_t[__len]; - mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); - _M_data->_M_negative_sign = __wcs_ns; - } - else - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); - - // _Intl == true. - __len = strlen(__ccurr); - if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - wchar_t* __wcs = new wchar_t[__len]; - mbsrtowcs(__wcs, &__ccurr, __len, &__state); - _M_data->_M_curr_symbol = __wcs; - } - else - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); - } - __catch(...) - { - delete _M_data; - _M_data = 0; - delete [] __wcs_ps; - delete [] __wcs_ns; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#else - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - __throw_exception_again; - } - - char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); - char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); - char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); - _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, - __pposn); - char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); - char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); - _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, - __nposn); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#else - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - } - } - - template<> - void - moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc, -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - const char*) -#else - const char* __name) -#endif - { - if (!_M_data) - _M_data = new __moneypunct_cache<wchar_t, false>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = 0; - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = 0; - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = 0; - _M_data->_M_frac_digits = 0; - _M_data->_M_pos_format = money_base::_S_default_pattern; - _M_data->_M_neg_format = money_base::_S_default_pattern; - - // Use ctype::widen code without the facet... - for (size_t __i = 0; __i < money_base::_S_end; ++__i) - _M_data->_M_atoms[__i] = - static_cast<wchar_t>(money_base::_S_atoms[__i]); - } - else - { - // Named locale. -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(__cloc); -#else - // Switch to named locale so that mbsrtowcs will work. - char* __old = setlocale(LC_ALL, NULL); - const size_t __llen = strlen(__old) + 1; - char* __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, __name); -#endif - - union { char *__s; wchar_t __w; } __u; - __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); - _M_data->_M_decimal_point = __u.__w; - - __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); - _M_data->_M_thousands_sep = __u.__w; - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == L'\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = L','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - - // Check for NULL, which implies no fractional digits. - if (_M_data->_M_decimal_point == L'\0') - { - // Like in "C" locale. - _M_data->_M_frac_digits = 0; - _M_data->_M_decimal_point = L'.'; - } - else - _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, - __cloc)); - - const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); - const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); - const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); - - wchar_t* __wcs_ps = 0; - wchar_t* __wcs_ns = 0; - const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); - __try - { - mbstate_t __state; - size_t __len; - __len = strlen(__cpossign); - if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - __wcs_ps = new wchar_t[__len]; - mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); - _M_data->_M_positive_sign = __wcs_ps; - } - else - _M_data->_M_positive_sign = L""; - _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); - - __len = strlen(__cnegsign); - if (!__nposn) - _M_data->_M_negative_sign = L"()"; - else if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - __wcs_ns = new wchar_t[__len]; - mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); - _M_data->_M_negative_sign = __wcs_ns; - } - else - _M_data->_M_negative_sign = L""; - _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); - - // _Intl == true. - __len = strlen(__ccurr); - if (__len) - { - ++__len; - memset(&__state, 0, sizeof(mbstate_t)); - wchar_t* __wcs = new wchar_t[__len]; - mbsrtowcs(__wcs, &__ccurr, __len, &__state); - _M_data->_M_curr_symbol = __wcs; - } - else - _M_data->_M_curr_symbol = L""; - _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); - } - __catch(...) - { - delete _M_data; - _M_data = 0; - delete [] __wcs_ps; - delete [] __wcs_ns; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#else - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - __throw_exception_again; - } - - char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); - char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); - char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); - _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, - __pposn); - char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); - char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); - _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, - __nposn); - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __uselocale(__old); -#else - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - } - } - - template<> - moneypunct<wchar_t, true>::~moneypunct() - { - if (_M_data->_M_positive_sign_size) - delete [] _M_data->_M_positive_sign; - if (_M_data->_M_negative_sign_size - && wcscmp(_M_data->_M_negative_sign, L"()") != 0) - delete [] _M_data->_M_negative_sign; - if (_M_data->_M_curr_symbol_size) - delete [] _M_data->_M_curr_symbol; - delete _M_data; - } - - template<> - moneypunct<wchar_t, false>::~moneypunct() - { - if (_M_data->_M_positive_sign_size) - delete [] _M_data->_M_positive_sign; - if (_M_data->_M_negative_sign_size - && wcscmp(_M_data->_M_negative_sign, L"()") != 0) - delete [] _M_data->_M_negative_sign; - if (_M_data->_M_curr_symbol_size) - delete [] _M_data->_M_curr_symbol; - delete _M_data; - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/numeric_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/numeric_members.cc deleted file mode 100644 index 769c47f9f..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/numeric_members.cc +++ /dev/null @@ -1,165 +0,0 @@ -// std::numpunct implementation details, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - numpunct<char>::_M_initialize_numpunct(__c_locale __cloc) - { - if (!_M_data) - _M_data = new __numpunct_cache<char>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - - _M_data->_M_decimal_point = '.'; - _M_data->_M_thousands_sep = ','; - - for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) - _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; - - for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) - _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j]; - } - else - { - // Named locale. - _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, - __cloc)); - _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, - __cloc)); - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == '\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = ','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - } - - // NB: There is no way to extact this info from posix locales. - // _M_truename = __nl_langinfo_l(YESSTR, __cloc); - _M_data->_M_truename = "true"; - _M_data->_M_truename_size = 4; - // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); - _M_data->_M_falsename = "false"; - _M_data->_M_falsename_size = 5; - } - - template<> - numpunct<char>::~numpunct() - { delete _M_data; } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc) - { - if (!_M_data) - _M_data = new __numpunct_cache<wchar_t>; - - if (!__cloc) - { - // "C" locale - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - - _M_data->_M_decimal_point = L'.'; - _M_data->_M_thousands_sep = L','; - - // Use ctype::widen code without the facet... - for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) - _M_data->_M_atoms_out[__i] = - static_cast<wchar_t>(__num_base::_S_atoms_out[__i]); - - for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) - _M_data->_M_atoms_in[__j] = - static_cast<wchar_t>(__num_base::_S_atoms_in[__j]); - } - else - { - // Named locale. - // NB: In the GNU model wchar_t is always 32 bit wide. - union { char *__s; wchar_t __w; } __u; - __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); - _M_data->_M_decimal_point = __u.__w; - - __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); - _M_data->_M_thousands_sep = __u.__w; - - // Check for NULL, which implies no grouping. - if (_M_data->_M_thousands_sep == L'\0') - { - // Like in "C" locale. - _M_data->_M_grouping = ""; - _M_data->_M_grouping_size = 0; - _M_data->_M_use_grouping = false; - _M_data->_M_thousands_sep = L','; - } - else - { - _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); - _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); - } - } - - // NB: There is no way to extact this info from posix locales. - // _M_truename = __nl_langinfo_l(YESSTR, __cloc); - _M_data->_M_truename = L"true"; - _M_data->_M_truename_size = 4; - // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); - _M_data->_M_falsename = L"false"; - _M_data->_M_falsename_size = 5; - } - - template<> - numpunct<wchar_t>::~numpunct() - { delete _M_data; } - #endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.cc deleted file mode 100644 index f80932ca3..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.cc +++ /dev/null @@ -1,398 +0,0 @@ -// std::time_get, std::time_put implementation, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> -#include <bits/c++locale_internal.h> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<> - void - __timepunct<char>:: - _M_put(char* __s, size_t __maxlen, const char* __format, - const tm* __tm) const - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, - _M_c_locale_timepunct); -#else - char* __old = setlocale(LC_ALL, NULL); - const size_t __llen = strlen(__old) + 1; - char* __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - const size_t __len = strftime(__s, __maxlen, __format, __tm); - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - // Make sure __s is null terminated. - if (__len == 0) - __s[0] = '\0'; - } - - template<> - void - __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc) - { - if (!_M_data) - _M_data = new __timepunct_cache<char>; - - if (!__cloc) - { - // "C" locale - _M_c_locale_timepunct = _S_get_c_locale(); - - _M_data->_M_date_format = "%m/%d/%y"; - _M_data->_M_date_era_format = "%m/%d/%y"; - _M_data->_M_time_format = "%H:%M:%S"; - _M_data->_M_time_era_format = "%H:%M:%S"; - _M_data->_M_date_time_format = ""; - _M_data->_M_date_time_era_format = ""; - _M_data->_M_am = "AM"; - _M_data->_M_pm = "PM"; - _M_data->_M_am_pm_format = ""; - - // Day names, starting with "C"'s Sunday. - _M_data->_M_day1 = "Sunday"; - _M_data->_M_day2 = "Monday"; - _M_data->_M_day3 = "Tuesday"; - _M_data->_M_day4 = "Wednesday"; - _M_data->_M_day5 = "Thursday"; - _M_data->_M_day6 = "Friday"; - _M_data->_M_day7 = "Saturday"; - - // Abbreviated day names, starting with "C"'s Sun. - _M_data->_M_aday1 = "Sun"; - _M_data->_M_aday2 = "Mon"; - _M_data->_M_aday3 = "Tue"; - _M_data->_M_aday4 = "Wed"; - _M_data->_M_aday5 = "Thu"; - _M_data->_M_aday6 = "Fri"; - _M_data->_M_aday7 = "Sat"; - - // Month names, starting with "C"'s January. - _M_data->_M_month01 = "January"; - _M_data->_M_month02 = "February"; - _M_data->_M_month03 = "March"; - _M_data->_M_month04 = "April"; - _M_data->_M_month05 = "May"; - _M_data->_M_month06 = "June"; - _M_data->_M_month07 = "July"; - _M_data->_M_month08 = "August"; - _M_data->_M_month09 = "September"; - _M_data->_M_month10 = "October"; - _M_data->_M_month11 = "November"; - _M_data->_M_month12 = "December"; - - // Abbreviated month names, starting with "C"'s Jan. - _M_data->_M_amonth01 = "Jan"; - _M_data->_M_amonth02 = "Feb"; - _M_data->_M_amonth03 = "Mar"; - _M_data->_M_amonth04 = "Apr"; - _M_data->_M_amonth05 = "May"; - _M_data->_M_amonth06 = "Jun"; - _M_data->_M_amonth07 = "Jul"; - _M_data->_M_amonth08 = "Aug"; - _M_data->_M_amonth09 = "Sep"; - _M_data->_M_amonth10 = "Oct"; - _M_data->_M_amonth11 = "Nov"; - _M_data->_M_amonth12 = "Dec"; - } - else - { - _M_c_locale_timepunct = _S_clone_c_locale(__cloc); - - _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); - _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); - _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc); - _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); - _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); - _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, - __cloc); - _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc); - _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc); - _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); - - // Day names, starting with "C"'s Sunday. - _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc); - _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc); - _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc); - _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc); - _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc); - _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc); - _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc); - - // Abbreviated day names, starting with "C"'s Sun. - _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc); - _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc); - _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc); - _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc); - _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc); - _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc); - _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc); - - // Month names, starting with "C"'s January. - _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc); - _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc); - _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc); - _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc); - _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc); - _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc); - _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc); - _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc); - _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc); - _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc); - _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc); - _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc); - - // Abbreviated month names, starting with "C"'s Jan. - _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc); - _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc); - _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc); - _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc); - _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc); - _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc); - _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc); - _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc); - _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc); - _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc); - _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc); - _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc); - } - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - __timepunct<wchar_t>:: - _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, - const tm* __tm) const - { -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, - _M_c_locale_timepunct); -#else - char* __old = setlocale(LC_ALL, NULL); - const size_t __llen = strlen(__old) + 1; - char* __sav = new char[__llen]; - memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - const size_t __len = wcsftime(__s, __maxlen, __format, __tm); - setlocale(LC_ALL, __sav); - delete [] __sav; -#endif - // Make sure __s is null terminated. - if (__len == 0) - __s[0] = L'\0'; - } - - template<> - void - __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc) - { - if (!_M_data) - _M_data = new __timepunct_cache<wchar_t>; - - if (!__cloc) - { - // "C" locale - _M_c_locale_timepunct = _S_get_c_locale(); - - _M_data->_M_date_format = L"%m/%d/%y"; - _M_data->_M_date_era_format = L"%m/%d/%y"; - _M_data->_M_time_format = L"%H:%M:%S"; - _M_data->_M_time_era_format = L"%H:%M:%S"; - _M_data->_M_date_time_format = L""; - _M_data->_M_date_time_era_format = L""; - _M_data->_M_am = L"AM"; - _M_data->_M_pm = L"PM"; - _M_data->_M_am_pm_format = L""; - - // Day names, starting with "C"'s Sunday. - _M_data->_M_day1 = L"Sunday"; - _M_data->_M_day2 = L"Monday"; - _M_data->_M_day3 = L"Tuesday"; - _M_data->_M_day4 = L"Wednesday"; - _M_data->_M_day5 = L"Thursday"; - _M_data->_M_day6 = L"Friday"; - _M_data->_M_day7 = L"Saturday"; - - // Abbreviated day names, starting with "C"'s Sun. - _M_data->_M_aday1 = L"Sun"; - _M_data->_M_aday2 = L"Mon"; - _M_data->_M_aday3 = L"Tue"; - _M_data->_M_aday4 = L"Wed"; - _M_data->_M_aday5 = L"Thu"; - _M_data->_M_aday6 = L"Fri"; - _M_data->_M_aday7 = L"Sat"; - - // Month names, starting with "C"'s January. - _M_data->_M_month01 = L"January"; - _M_data->_M_month02 = L"February"; - _M_data->_M_month03 = L"March"; - _M_data->_M_month04 = L"April"; - _M_data->_M_month05 = L"May"; - _M_data->_M_month06 = L"June"; - _M_data->_M_month07 = L"July"; - _M_data->_M_month08 = L"August"; - _M_data->_M_month09 = L"September"; - _M_data->_M_month10 = L"October"; - _M_data->_M_month11 = L"November"; - _M_data->_M_month12 = L"December"; - - // Abbreviated month names, starting with "C"'s Jan. - _M_data->_M_amonth01 = L"Jan"; - _M_data->_M_amonth02 = L"Feb"; - _M_data->_M_amonth03 = L"Mar"; - _M_data->_M_amonth04 = L"Apr"; - _M_data->_M_amonth05 = L"May"; - _M_data->_M_amonth06 = L"Jun"; - _M_data->_M_amonth07 = L"Jul"; - _M_data->_M_amonth08 = L"Aug"; - _M_data->_M_amonth09 = L"Sep"; - _M_data->_M_amonth10 = L"Oct"; - _M_data->_M_amonth11 = L"Nov"; - _M_data->_M_amonth12 = L"Dec"; - } - else - { - _M_c_locale_timepunct = _S_clone_c_locale(__cloc); - - union { char *__s; wchar_t *__w; } __u; - - __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc); - _M_data->_M_date_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc); - _M_data->_M_date_era_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc); - _M_data->_M_time_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc); - _M_data->_M_time_era_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc); - _M_data->_M_date_time_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc); - _M_data->_M_date_time_era_format = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc); - _M_data->_M_am = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc); - _M_data->_M_pm = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc); - _M_data->_M_am_pm_format = __u.__w; - - // Day names, starting with "C"'s Sunday. - __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc); - _M_data->_M_day1 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc); - _M_data->_M_day2 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc); - _M_data->_M_day3 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc); - _M_data->_M_day4 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc); - _M_data->_M_day5 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc); - _M_data->_M_day6 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc); - _M_data->_M_day7 = __u.__w; - - // Abbreviated day names, starting with "C"'s Sun. - __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc); - _M_data->_M_aday1 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc); - _M_data->_M_aday2 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc); - _M_data->_M_aday3 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc); - _M_data->_M_aday4 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc); - _M_data->_M_aday5 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc); - _M_data->_M_aday6 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc); - _M_data->_M_aday7 = __u.__w; - - // Month names, starting with "C"'s January. - __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc); - _M_data->_M_month01 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc); - _M_data->_M_month02 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc); - _M_data->_M_month03 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc); - _M_data->_M_month04 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc); - _M_data->_M_month05 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc); - _M_data->_M_month06 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc); - _M_data->_M_month07 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc); - _M_data->_M_month08 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc); - _M_data->_M_month09 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc); - _M_data->_M_month10 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc); - _M_data->_M_month11 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc); - _M_data->_M_month12 = __u.__w; - - // Abbreviated month names, starting with "C"'s Jan. - __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc); - _M_data->_M_amonth01 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc); - _M_data->_M_amonth02 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc); - _M_data->_M_amonth03 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc); - _M_data->_M_amonth04 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc); - _M_data->_M_amonth05 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc); - _M_data->_M_amonth06 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc); - _M_data->_M_amonth07 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc); - _M_data->_M_amonth08 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc); - _M_data->_M_amonth09 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc); - _M_data->_M_amonth10 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc); - _M_data->_M_amonth11 = __u.__w; - __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc); - _M_data->_M_amonth12 = __u.__w; - } - } -#endif - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.h b/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.h deleted file mode 100644 index 90bc0cec3..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/gnu/time_members.h +++ /dev/null @@ -1,87 +0,0 @@ -// std::time_get, std::time_put implementation, GNU version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -// Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file time_members.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.2.5.1.2 - time_get functions -// ISO C++ 14882: 22.2.5.3.2 - time_put functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(size_t __refs) - : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), - _M_name_timepunct(_S_get_c_name()) - { _M_initialize_timepunct(); } - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) - : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), - _M_name_timepunct(_S_get_c_name()) - { _M_initialize_timepunct(); } - - template<typename _CharT> - __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), - _M_name_timepunct(NULL) - { - if (__builtin_strcmp(__s, _S_get_c_name()) != 0) - { - const size_t __len = __builtin_strlen(__s) + 1; - char* __tmp = new char[__len]; - __builtin_memcpy(__tmp, __s, __len); - _M_name_timepunct = __tmp; - } - else - _M_name_timepunct = _S_get_c_name(); - - __try - { _M_initialize_timepunct(__cloc); } - __catch(...) - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - __throw_exception_again; - } - } - - template<typename _CharT> - __timepunct<_CharT>::~__timepunct() - { - if (_M_name_timepunct != _S_get_c_name()) - delete [] _M_name_timepunct; - delete _M_data; - _S_destroy_c_locale(_M_c_locale_timepunct); - } - -_GLIBCXX_END_NAMESPACE diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc b/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc deleted file mode 100644 index 5ce4ba9ee..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc +++ /dev/null @@ -1,107 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> - -namespace std -{ - void - locale::facet::_S_create_c_locale(__c_locale&, const char*, __c_locale*) - { } - - void - locale::facet::_S_destroy_c_locale(__c_locale&) - { } - - __c_locale - locale::facet::_S_clone_c_locale(__c_locale&) - { return __c_locale(); } - - template<> - void - numpunct<char>::_M_initialize_numpunct(__c_locale) - { - // "C" locale - _M_decimal_point = '.'; - _M_thousands_sep = ','; - _M_grouping = ""; - _M_truename = "true"; - _M_falsename = "false"; - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - numpunct<wchar_t>::_M_initialize_numpunct(__c_locale) - { - // "C" locale - _M_decimal_point = L'.'; - _M_thousands_sep = L','; - _M_grouping = ""; - _M_truename = L"true"; - _M_falsename = L"false"; - } -#endif - - template<> - void - moneypunct<char>::_M_initialize_moneypunct(__c_locale) - { - // "C" locale - _M_decimal_point = '.'; - _M_thousands_sep = ','; - _M_grouping = ""; - _M_curr_symbol = string_type(); - _M_positive_sign = string_type(); - _M_negative_sign = string_type(); - _M_frac_digits = 0; - _M_pos_format = money_base::_S_default_pattern; - _M_neg_format = money_base::_S_default_pattern; - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - void - moneypunct<wchar_t>::_M_initialize_moneypunct(__c_locale) - { - // "C" locale - _M_decimal_point = L'.'; - _M_thousands_sep = L','; - _M_grouping = ""; - _M_curr_symbol = string_type(); - _M_positive_sign = string_type(); - _M_negative_sign = string_type(); - _M_frac_digits = 0; - _M_pos_format = money_base::_S_default_pattern; - _M_neg_format = money_base::_S_default_pattern; - } -#endif -} // namespace std - diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h b/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h deleted file mode 100644 index 8bac8d362..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h +++ /dev/null @@ -1,46 +0,0 @@ -// Wrapper for underlying C-language localization -*- C++ -*- - -// Copyright (C) 2001, 2002, 2005, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file c++locale.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.8 Standard locale categories. -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <clocale> -#include <langinfo.h> // For codecvt -#include <iconv.h> // For codecvt using iconv, iconv_t -#include <nl_types.h> // For messages - -_GLIBCXX_BEGIN_NAMESPACE(std) - - typedef int* __c_locale; - -_GLIBCXX_END_NAMESPACE - diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc b/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc deleted file mode 100644 index 156cf3a94..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc +++ /dev/null @@ -1,56 +0,0 @@ -// std::messages implementation details, IEEE 1003.1-200x version -*- C++ -*- - -// Copyright (C) 2001, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// -// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -#include <locale> - -namespace std -{ - // Specializations - template<> - string - messages<char>::do_get(catalog __c, int __setid, int __msgid, - const string& __dfault) const - { - nl_catd __nlc = reinterpret_cast<nl_catd>(__c); - return string(catgets(__nlc, __setid, __msgid, __dfault.c_str())); - } - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - wstring - messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const - { - nl_catd __nlc = reinterpret_cast<nl_catd>(__c); - char* __msg = catgets(__nlc, __setid, __msgid, - _M_convert_to_char(__dfault)); - return _M_convert_from_char(__msg); - } -#endif -} diff --git a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h b/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h deleted file mode 100644 index efc6be3f0..000000000 --- a/gcc-4.4.3/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h +++ /dev/null @@ -1,72 +0,0 @@ -// std::messages implementation details, IEEE 1003.1-200x version -*- C++ -*- - -// Copyright (C) 2001, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file messages_members.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. - */ - -// -// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -// - -// Written by Benjamin Kosnik <bkoz@redhat.com> - -_GLIBCXX_BEGIN_NAMESPACE(std) - - // Non-virtual member functions. - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, - const char*) const - { return this->do_open(__s, __loc); } - - // Virtual member functions. - template<typename _CharT> - messages<_CharT>::~messages() - { } - - template<typename _CharT> - typename messages<_CharT>::catalog - messages<_CharT>::do_open(const basic_string<char>& __s, - const locale&) const - { return reinterpret_cast<catalog>(catopen(__s.c_str(), NL_CAT_LOCALE)); } - - template<typename _CharT> - typename messages<_CharT>::string_type - messages<_CharT>::do_get(catalog __c, int __setid, int __msgid, - const string_type& __dfault) const - { - nl_catd __nlc = reinterpret_cast<nl_catd>(__c); - char* __msg = catgets(__nlc, __setid, __msgid, - _M_convert_to_char(__dfault)); - return _M_convert_from_char(__msg); - } - - template<typename _CharT> - void - messages<_CharT>::do_close(catalog __c) const - { catclose(reinterpret_cast<nl_catd>(__c)); } - -_GLIBCXX_END_NAMESPACE |