From: Paolo Carlini Date: Fri, 16 Nov 2007 17:45:35 +0000 (+0000) Subject: locale_facets.tcc (__verify_grouping): Move... X-Git-Tag: releases/gcc-4.3.0~1479 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c68e412864eb454659168dae5d26cd6ac73d0e55;p=thirdparty%2Fgcc.git locale_facets.tcc (__verify_grouping): Move... 2007-11-16 Paolo Carlini * include/bits/locale_facets.tcc (__verify_grouping): Move... * src/locale_facets.cc: ... here. * config/abi/pre/gnu.ver: Update exports. From-SVN: r130233 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7336b2b3dd8a..147fbe6f3404 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2007-11-16 Paolo Carlini + + * include/bits/locale_facets.tcc (__verify_grouping): Move... + * src/locale_facets.cc: ... here. + * config/abi/pre/gnu.ver: Update exports. + 2007-11-15 Paolo Carlini * include/bits/istream.tcc (basic_istream<>::sentry:: diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 87cc92ec5ad7..0983e93e686d 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -786,6 +786,8 @@ GLIBCXX_3.4.10 { _ZNSt15basic_streambufI[cw]St11char_traitsI[cw]EE6stosscEv; + _ZSt17__verify_grouping*; + } GLIBCXX_3.4.9; # Symbols in the support library (libsupc++) have their own tag. diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 000d6fb9d628..12902f7a6efd 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -121,7 +121,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) // 1,222,444 == __grouping_tmp of "\1\3\3" // __grouping is parsed R to L // 1,222,444 == __grouping of "\3" == "\3\3\3" - static bool + bool __verify_grouping(const char* __grouping, size_t __grouping_size, const string& __grouping_tmp); @@ -1237,30 +1237,6 @@ _GLIBCXX_END_LDBL_NAMESPACE _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); } - bool - __verify_grouping(const char* __grouping, size_t __grouping_size, - const string& __grouping_tmp) - { - const size_t __n = __grouping_tmp.size() - 1; - const size_t __min = std::min(__n, size_t(__grouping_size - 1)); - size_t __i = __n; - bool __test = true; - - // Parsed number groupings have to match the - // numpunct::grouping string exactly, starting at the - // right-most point of the parsed sequence of elements ... - for (size_t __j = 0; __j < __min && __test; --__i, ++__j) - __test = __grouping_tmp[__i] == __grouping[__j]; - for (; __i && __test; --__i) - __test = __grouping_tmp[__i] == __grouping[__min]; - // ... but the first parsed grouping can be <= numpunct - // grouping (only do the check if the numpunct char is > 0 - // because <= 0 means any size is ok). - if (static_cast(__grouping[__min]) > 0) - __test &= __grouping_tmp[0] <= __grouping[__min]; - return __test; - } - template _CharT* __add_grouping(_CharT* __s, _CharT __sep, diff --git a/libstdc++-v3/src/locale_facets.cc b/libstdc++-v3/src/locale_facets.cc index 46de583d5137..8876f5874bcc 100644 --- a/libstdc++-v3/src/locale_facets.cc +++ b/libstdc++-v3/src/locale_facets.cc @@ -1,4 +1,5 @@ -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +// 2006, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -90,5 +91,28 @@ _GLIBCXX_BEGIN_NAMESPACE(std) *__fptr = '\0'; } -_GLIBCXX_END_NAMESPACE + bool + __verify_grouping(const char* __grouping, size_t __grouping_size, + const string& __grouping_tmp) + { + const size_t __n = __grouping_tmp.size() - 1; + const size_t __min = std::min(__n, size_t(__grouping_size - 1)); + size_t __i = __n; + bool __test = true; + + // Parsed number groupings have to match the + // numpunct::grouping string exactly, starting at the + // right-most point of the parsed sequence of elements ... + for (size_t __j = 0; __j < __min && __test; --__i, ++__j) + __test = __grouping_tmp[__i] == __grouping[__j]; + for (; __i && __test; --__i) + __test = __grouping_tmp[__i] == __grouping[__min]; + // ... but the first parsed grouping can be <= numpunct + // grouping (only do the check if the numpunct char is > 0 + // because <= 0 means any size is ok). + if (static_cast(__grouping[__min]) > 0) + __test &= __grouping_tmp[0] <= __grouping[__min]; + return __test; + } +_GLIBCXX_END_NAMESPACE