re PR libstdc++/12791 (_M_extract_num returns a wrong __beg in case of error)
authorPaolo Carlini <paolo@gcc.gnu.org>
Wed, 3 Dec 2003 09:26:03 +0000 (09:26 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 3 Dec 2003 09:26:03 +0000 (09:26 +0000)
commit817fe804cf6c8c2c6e87058096c12e565ad5cf36
treed545473e5ffb3f7075a188c171bb88f2f686742d
parent85b89471388e7ddb0023f16ca96c1572f999d8c5
re PR libstdc++/12791 (_M_extract_num returns a wrong __beg in case of error)

2003-12-03  Paolo Carlini  <pcarlini@suse.de>

PR libstdc++/12791
* include/bits/locale_facets.tcc (time_get::_M_extract_num):
Rewrite, stop the parsing as soon as a digit cannot possibly
lead to a final number within the bounds; otherwise, simplify,
avoiding __ctype.is() and atoi().
* testsuite/22_locale/time_get/get_date/char/12791.cc: New.
* testsuite/22_locale/time_get/get_date/wchar_t/12791.cc: New.

* include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
Minor tweak: a 4-digit integer cannot be bigger than 9999.

* testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Use
type-correct wchar_t string literals.
* testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
* testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
* testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
* testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.

From-SVN: r74222
libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc