2002-01-30 Paolo Carlini <pcarlini@unitus.it>

* config/locale/numpunct_members_gnu.cc
	(numpunct<char, wchar_t>::_M_initialize_numpunct()):
	Fix initialization of _M_grouping for locales which have
	_M_thousands_sep == '\0'(L'\0', respectively).
	* testsuite/22_locale/numpunct_byname.cc (test02): Add test.

From-SVN: r49343
This commit is contained in:
Paolo Carlini 2002-01-30 22:00:40 +01:00 committed by Paolo Carlini
parent a852d50fb4
commit f2e7381d8e
3 changed files with 34 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2002-01-30 Paolo Carlini <pcarlini@unitus.it>
* config/locale/numpunct_members_gnu.cc
(numpunct<char, wchar_t>::_M_initialize_numpunct()):
Fix initialization of _M_grouping for locales which have
_M_thousands_sep == '\0'(L'\0', respectively).
* testsuite/22_locale/numpunct_byname.cc (test02): Add test.
2002-01-30 Paolo Carlini <pcarlini@unitus.it>
* testsuite/27_io/ostream_inserter_arith.cc (test03):

View File

@ -53,7 +53,11 @@ namespace std
// Named locale.
_M_decimal_point = *(__nl_langinfo_l(RADIXCHAR, __cloc));
_M_thousands_sep = *(__nl_langinfo_l(THOUSEP, __cloc));
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
// Check for NUL, which implies no grouping.
if (_M_thousands_sep == '\0')
_M_grouping = "";
else
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
}
// NB: There is no way to extact this info from posix locales.
// _M_truename = __nl_langinfo_l(YESSTR, __cloc);
@ -79,7 +83,10 @@ namespace std
// Named locale.
_M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
if (_M_thousands_sep == L'\0')
_M_grouping = "";
else
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
}
// NB: There is no way to extact this info from posix locales.
// _M_truename = __nl_langinfo_l(YESSTR, __cloc);

View File

@ -72,9 +72,26 @@ void test01()
VERIFY( dp1 != dp3 );
}
void test02()
{
using namespace std;
bool test = true;
locale loc_it("it_IT");
const numpunct<char>& nump_it = use_facet<numpunct<char> >(loc_it);
string g = nump_it.grouping();
VERIFY( g == "" );
}
int main()
{
test01();
test02();
return 0;
}