mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
re PR libstdc++/11528 (money_get does not get "$.00")
2003-07-16 Paolo Carlini <pcarlini@unitus.it> PR libstdc++/11528 * include/bits/locale_facets.tcc (money_get::do_get): Strip only _leading_ zeros. * testsuite/22_locale/money_get/get/char/11528.cc: Add. * testsuite/22_locale/money_get/get/wchar_t/11528.cc: Add. From-SVN: r69458
This commit is contained in:
parent
866eb556c2
commit
e50344b919
@ -1,3 +1,11 @@
|
||||
2003-07-16 Paolo Carlini <pcarlini@unitus.it>
|
||||
|
||||
PR libstdc++/11528
|
||||
* include/bits/locale_facets.tcc (money_get::do_get):
|
||||
Strip only _leading_ zeros.
|
||||
* testsuite/22_locale/money_get/get/char/11528.cc: Add.
|
||||
* testsuite/22_locale/money_get/get/wchar_t/11528.cc: Add.
|
||||
|
||||
2003-07-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
|
||||
* include/ext/hash_map (class hash_multimap): Remove extra
|
||||
|
@ -1296,7 +1296,7 @@ namespace std
|
||||
}
|
||||
|
||||
// Strip leading zeros.
|
||||
while (!__tmp_units.empty() && __tmp_units[0] == __ctype.widen('0'))
|
||||
while (__tmp_units.size() > 1 && __tmp_units[0] == __ctype.widen('0'))
|
||||
__tmp_units.erase(__tmp_units.begin());
|
||||
|
||||
if (__sign.size() && __sign == __neg_sign)
|
||||
|
53
libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
Normal file
53
libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
Normal file
@ -0,0 +1,53 @@
|
||||
// Copyright (C) 2003 Free Software Foundation
|
||||
//
|
||||
// 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 2, 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.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// 22.2.6.1.1 money_get members
|
||||
|
||||
#include <locale>
|
||||
#include <sstream>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
void test01()
|
||||
{
|
||||
using namespace std;
|
||||
typedef istreambuf_iterator<char> iterator_type;
|
||||
|
||||
bool test = true;
|
||||
|
||||
locale loc_us = __gnu_cxx_test::try_named_locale("en_US");
|
||||
|
||||
iterator_type end;
|
||||
istringstream iss;
|
||||
iss.imbue(loc_us);
|
||||
|
||||
const money_get<char>& mon_get = use_facet<money_get<char> >(iss.getloc());
|
||||
|
||||
iss.str("$.00 ");
|
||||
iterator_type is_it(iss);
|
||||
string extracted_amount;
|
||||
ios_base::iostate err = ios_base::goodbit;
|
||||
mon_get.get(is_it, end, false, iss, err, extracted_amount);
|
||||
VERIFY( extracted_amount == "0" );
|
||||
VERIFY( err == ios_base::goodbit );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
// Copyright (C) 2003 Free Software Foundation
|
||||
//
|
||||
// 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 2, 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.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// 22.2.6.1.1 money_get members
|
||||
|
||||
#include <locale>
|
||||
#include <sstream>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
void test01()
|
||||
{
|
||||
using namespace std;
|
||||
typedef istreambuf_iterator<wchar_t> iterator_type;
|
||||
|
||||
bool test = true;
|
||||
|
||||
locale loc_us = __gnu_cxx_test::try_named_locale("en_US");
|
||||
|
||||
iterator_type end;
|
||||
wistringstream iss;
|
||||
iss.imbue(loc_us);
|
||||
|
||||
const money_get<wchar_t>& mon_get = use_facet<money_get<wchar_t> >(iss.getloc());
|
||||
|
||||
iss.str(L"$.00 ");
|
||||
iterator_type is_it(iss);
|
||||
wstring extracted_amount;
|
||||
ios_base::iostate err = ios_base::goodbit;
|
||||
mon_get.get(is_it, end, false, iss, err, extracted_amount);
|
||||
VERIFY( extracted_amount == L"0" );
|
||||
VERIFY( err == ios_base::goodbit );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user