Commit Graph

280 Commits

Author SHA1 Message Date
Paolo Carlini eebf21ef99 locale_facets.tcc (__verify_grouping): Prefer '=' to an unnecessary '&='.
2003-10-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (__verify_grouping):
	Prefer '=' to an unnecessary '&='.

From-SVN: r72908
2003-10-24 20:21:48 +00:00
Paolo Carlini bf22935f99 locale_facets.tcc (money_get::do_get(..., string_type&): Minor tweak to the previous commit.
2003-10-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get::do_get(...,
	string_type&): Minor tweak to the previous commit.

From-SVN: r72892
2003-10-24 12:21:18 +00:00
Paolo Carlini 1462870004 locale_facets.tcc (money_get::do_get(..., string_type&): Disregard the previous commit...
2003-10-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get::do_get(...,
	string_type&): Disregard the previous commit: doesn't hurt but
	doesn't accomplish anything useful either. This is the right
	one, speeding up greatly the function in case of early fail.

From-SVN: r72888
2003-10-24 11:20:55 +00:00
Paolo Carlini cdd5cf7255 locale_facets.tcc (money_get::do_get(..., string_type&): Move an if block...
2003-10-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get::do_get(...,
	string_type&): Move an if block, thus minimizing the amount
	of code processed anyway when __tmp_units.size() == 0.

From-SVN: r72887
2003-10-24 10:12:05 +00:00
Paolo Carlini c21dbe8553 2003-10-24 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc
	(time_get<>::_M_extract_via_format): Deal with case 'C' too,
	equivalent to 'y'.

From-SVN: r72884
2003-10-24 09:19:07 +00:00
Paolo Carlini 60aa9fc304 locale_facets.tcc (money_get<>::do_get(..., string_type&)): Use find_first_not_of to strip leading zeros...
2003-10-23  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get<>::do_get(...,
	string_type&)): Use find_first_not_of to strip leading
	zeros; if __tmp_units == "0" never prefix it with '-';
	always fail if __tmp_units is empty.
	* testsuite/22_locale/money_get/get/char/10.cc: New.
	* testsuite/22_locale/money_get/get/wchar_t/10.cc: Ditto.

From-SVN: r72860
2003-10-23 17:05:01 +00:00
Paolo Carlini 3c21d6e0f7 locale_facets.tcc (__int_to_char): Remove the const int parameter.
2003-10-22  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (__int_to_char): Remove
	the const int parameter.
	(_M_insert_int): Update caller.
	* src/locale-inst.cc (__int_to_char): Update instantiations.

From-SVN: r72825
2003-10-22 21:53:21 +00:00
Paolo Carlini f5677b1560 codecvt_specializations.h: Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
2003-10-12  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
	Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
	* include/bits/basic_string.tcc: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/bits/istream.tcc: Likewise.
	* include/bits/locale_facets.tcc: Likewise.
	* include/bits/ostream.tcc: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/streambuf_iterator.h
	* include/std/std_iosfwd.h: Likewise.
	* include/std/std_istream.h: Likewise.
	* include/std/std_sstream.h: Likewise.
	* include/std/std_streambuf.h: Likewise.
	* src/ios.cc: Likewise.
	* include/bits/c++config:
	Comment out #define _GLIBCXX_RESOLVE_LIB_DEFECTS 1.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak a
	dg-error directive due to removal of a blank line.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.

From-SVN: r72392
2003-10-12 10:12:09 +00:00
Paolo Carlini a761195bfd locale_facets.tcc: More minor cosmetic changes and const-ifications of some variables.
2003-10-08  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc: More minor cosmetic
	changes and const-ifications of some variables.

From-SVN: r72226
2003-10-08 14:20:42 +00:00
Paolo Carlini 905df1fb20 locale_facets.tcc: Minor cosmetic changes and const-ifications of some variables.
2003-10-07  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc: Minor cosmetic changes
	and const-ifications of some variables.

	* include/bits/locale_facets.tcc
	(money_get::do_get(..., string_type&)): Simplify an if-else.

From-SVN: r72190
2003-10-07 10:34:47 +00:00
Paolo Carlini e4f7d0a18f locale_facets.tcc (__pad<>::_S_pad): Improve performance-wise...
2003-10-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (__pad<>::_S_pad):
	Improve performance-wise: avoid one traits::copy, avoid
	the __builtin_alloca, streamline.

From-SVN: r72164
2003-10-06 19:46:21 +00:00
Paolo Carlini 5b577977ea 2003-10-05 Paolo Carlini <pcarlini@unitus.it>
* include/bits/locale_facets.tcc
	(num_put::do_put(..., bool)): Prefer ?: to if-else.
	(time_get::_M_extract_name): Qualify min with std::.
	(__pad<>::_S_pad): Constify two variables; simplify an
	if-else statement factoring out some code.

	* include/bits/locale_facets.tcc: Minor cosmetic changes.

From-SVN: r72112
2003-10-05 15:08:46 +00:00
Paolo Carlini dff186db09 locale_facets.tcc (num_get::_M_extract_float): Constify a couple of variables.
2003-10-04  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_get::_M_extract_float):
	Constify a couple of variables.
	(num_get::do_get(..., bool&)): Constify __c; prefer *__beg,
	++__beg to *__beg++.

From-SVN: r72093
2003-10-04 14:59:32 +00:00
Benjamin Kosnik 8ae8113683 [multiple changes]
2003-10-02  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Export _S_get_c_locale instead of
	_S_c_locale object.

2003-10-02  Petur Runolfsson  <peturr02@ru.is>

	* config/locale/generic/c_locale.cc
	(category_names, locale::_S_categories): Const qualify.
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/generic/time_members.h (__timepunct::__timepunct):
	Copy string contents before assigning to _M_name_timepunct,
	qualify strcpy and strlen with std::.
	* config/locale/gnu/time_members.h: Same.
	* config/locale/gnu/messages_members.h (messages::messages):
	Copy string contents before assigning to _M_name_messages,
	qualify strcpy and strlen with std::.
	* config/os/gnu-linux/ctype_noninline.h
	(ctype<char>::classic_table()): Don't call locale::classic().
	* include/bits/locale_classes.h
	(locale::_S_categories): Const qualify.
	(locale::_S_once, locale::_S_initialize_once,
	locale::facet::_S_once, locale::facet::_S_initialize_once,
	locale::facet::_S_get_c_locale): Declare.
	(locale::_S_initialize): Don't define.
	(locale::facet::_S_c_locale): Make private.
	(locale::facet::_S_c_name): Same, const qualify.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Drop unused
	parameters, add throw() specifier.
	* include/bits/locale_facets.h (__timepunct::_M_name_timepunct,
	messages::_M_name_messages): Const qualify.
	* src/locale.cc
	(locale::_S_once, locale::facet::_S_once): Define.
	(locale::classic): Move initialization code...
	(locale::_S_initialize_once): ...here.
	(locale::_S_initialize): Call _S_initialize_once through
	__gthread_once.
	(locale::facet::_S_initialize_once): Initialize _S_c_locale.
	(locale::facet::_S_get_c_locale): Call _S_initialize_once through
	__gthread_once before returning _S_c_locale.
	* src/localename.cc (locale::_Impl::_Impl(facet**, size_t, bool)):
	Drop unused parameters, add throw() specifier, don't initialize
	locale::facet::_S_c_locale and _S_c_name.

	* config/locale/generic/messages_members.h:
	Replace _S_c_locale with _S_get_c_locale().
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* src/codecvt.cc: Same.
	* src/ctype.cc: Same.

From-SVN: r72040
2003-10-02 16:56:39 +00:00
Nathan Myers e39dd1ce52 locale_facets.tcc (time_put::put): Avoid expensive *__s++, in favor of *__s, ++__s.
2003-10-01  Nathan Myers  <ncm@cantrip.org>

	* include/bits/locale_facets.tcc (time_put::put): Avoid
	expensive *__s++, in favor of *__s, ++__s.

From-SVN: r71980
2003-10-01 16:58:38 +00:00
Paolo Carlini 530ce5517c locale_facets.tcc (time_put::put): Minor tweak to the previous commit.
2003-10-01  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (time_put::put): Minor
	tweak to the previous commit.

From-SVN: r71977
2003-10-01 15:43:07 +00:00
Paolo Carlini 52a16d0815 re PR libstdc++/12439 (Problems in time_put::put)
2003-10-01  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/12439
	* include/bits/locale_facets.tcc (time_put::put): Deal
	with the three issues pointed out by the PR.
	* testsuite/22_locale/time_put/put/char/12439_1.cc: New.
	* testsuite/22_locale/time_put/put/char/12439_3.cc: New.
	* testsuite/22_locale/time_put/put/wchar_t/12439_1.cc: New.
	* testsuite/22_locale/time_put/put/wchar_t/12439_2.cc: New.
	* testsuite/22_locale/time_put/put/wchar_t/12439_3.cc: New.

From-SVN: r71976
2003-10-01 14:32:05 +00:00
Paolo Carlini 155f6fbb62 re PR libstdc++/12438 (Memory leak in locale::combine())
2003-09-30  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/12438
	* include/bits/locale_facets.tcc (locale::combine): Don't
	leak memory if _M_replace_facet throws.
	* testsuite/22_locale/locale/cons/12438.cc: New, from the PR.

	* include/bits/locale_classes.h (locale::locale(const locale&,
	_Facet*)): Tweak, use consistently _M_remove_reference.

From-SVN: r71943
2003-09-30 13:44:59 +00:00
Benjamin Kosnik 11f10e6b1f locale_facets.tcc: Tweak to avoid warnings.
2003-09-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Tweak to avoid warnings.
	* testsuite/testsuite_hooks.h: Same.
	* testsuite/*/*.cc: Same.

From-SVN: r71693
2003-09-23 20:03:30 +00:00
Nathan Myers a3aff86a54 re PR libstdc++/11990 ("operand of conditional has no effect" warnings in libstdc++)
2003-08-29  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/11990
	* include/bits/locale_facets.tcc (__pad): delete dead code.

From-SVN: r70915
2003-08-29 17:40:12 +00:00
Benjamin Kosnik fea4065dda linker-map.gnu: Add __moneypunct_cache, __timepunct_cache.
2003-07-17  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Add __moneypunct_cache, __timepunct_cache.
	* config/locale/generic/messages_members.h: Tweaks.
	* config/locale/generic/monetary_members.cc
	(moneypunct::_M_initialize_moneypunct): Use cache.
	(moneypunct::~moneypunct): Delete cache.
	* config/locale/generic/time_members.cc:
	(__timepunct::_M_initialize_timepunct): Use cache.
	* config/locale/generic/time_members.h:
	(__timepunct::~__timepunct): Delete cache.
	(__timepunct::__timepunct): Set cache.
	* config/locale/gnu/messages_members.h: Tweaks.
	* config/locale/gnu/monetary_members.cc:
	(moneypunct::_M_initialize_moneypunct): Use cache.
	(moneypunct::~moneypunct): Delete cache.
	* config/locale/gnu/time_members.cc:
	(__timepunct::_M_initialize_timepunct): Use cache.
	* config/locale/gnu/time_members.h:
	(__timepunct::~__timepunct): Delete cache.
	(__timepunct::__timepunct): Set cache.
	* include/bits/locale_facets.h (__timepunct_cache): New.
	(__moneypunct_cache): New.
	* include/bits/locale_facets.tcc: Tweak.
	* src/locale.cc (__timepunct::_S_timezones): Adjust for cache.
	* src/locale-inst.cc: Instantiate caches.
	* src/globals.cc: Add "C" caches.
	* src/localename.cc: Use external "C" caches.

From-SVN: r69535
2003-07-18 02:27:16 +00:00
Benjamin Kosnik 7942afdca2 locale_facets.h (__num_base::_S_atoms_in): Add -+xX.
2003-07-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (__num_base::_S_atoms_in): Add -+xX.
	(num_get::_M_convert_int): To _M_insert_int.
	(num_get::_M_convert_float): To _M_insert_float.
	* include/bits/locale_facets.tcc (num_get::_M_extract_float):
	Use caches for ctype, num_get.
	(num_get::_M_extract_int): Same.
	(num_get::get(bool)): Same.
	(__verify_grouping): Use size_t.
	* src/locale-inst.cc: Update.
	* src/locale.cc: Adjust _S_atoms_in.

From-SVN: r69491
2003-07-17 01:54:44 +00:00
Paolo Carlini e50344b919 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
2003-07-16 16:12:47 +00:00
Benjamin Kosnik cde6384093 locale_facets.tcc: Use function object for __use_cache instead of template function.
2003-07-09  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Use function object for
	__use_cache instead of template function. Partially specialize for
	__numpunct<_CharT>.
	* include/bits/locale_classes.h: Update friend declaration for
	__use_cache.
	(_M_install_cache): No throw exception specs.
	* src/locale.cc: Remove __use_cache specializations.
	* include/ext/pod_char_traits.h (length): Tweak.
	* include/bits/locale_facets.h (__numpunct_cache): Remove
	char_type typedef.
	* testsuite/testsuite_hooks.h (pod_unsigned_int): Remove.
	(pod_long): Remove.
	* testsuite/22_locale/numpunct/members/char/cache_1.cc: New.
	* testsuite/22_locale/numpunct/members/char/cache_2.cc: New.
	* testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc: New.
	* testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc: New.
	* testsuite/22_locale/numpunct/members/pod/1.cc: New.
	* testsuite/22_locale/numpunct/members/pod/2.cc: New.

From-SVN: r69177
2003-07-10 06:21:13 +00:00
Paolo Carlini 391cfc4689 locale_classes.h: Fully qualify standard functions with std::, thus avoiding Koenig lookup.
2003-07-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_classes.h: Fully qualify standard
	functions with std::, thus avoiding Koenig lookup.
	* include/bits/locale_facets.tcc: Likewise.
	* src/locale.cc: Likewise.
	* src/localename.cc: Likewise.

From-SVN: r68997
2003-07-06 09:37:11 +00:00
Benjamin Kosnik 3d7c150e3f Move from CPP to CXX.
2003-07-04  Benjamin Kosnik  <bkoz@redhat.com>

	Move from CPP to CXX.
	* include/bits/c++config: Move to GLIBCXX from GLIBCPP.
	* testsuite/Makefile.am: Same.
	* testsuite/Makefile.in: Regenerate.
	* po/Makefile.am: Same.
	* po/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	* libsupc++/Makefile.in: Regenerate.
	* libmath/Makefile.am: Same.
	* libmath/Makefile.in: Regenerate.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.
	* src/Makefile.am: Same.
	* src/Makefile.in: Regenerate.
	* acconfig.h: Same.
	* configure.host: Same.
	* configure.in: Same.
	* configure: Regenerate.
	* acinclude.m4: Same.
	* aclocal.m4: Same.
	* src: Change all files in this directory.
	* testsuite: Same.
	* include: Same, standardize include guards.
	* config: Same.
	* libsupc++: Same.

From-SVN: r68958
2003-07-05 04:05:45 +00:00
Benjamin Kosnik d542f11447 [multiple changes]
2003-07-04  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_PCH): Fix missed variable.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2003-07-04  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/locale_facets.tcc (__int_to_char): Move common case
	to the top.

From-SVN: r68942
2003-07-04 22:33:04 +00:00
Jerry Quinn e97ee22ea5 locale.cc (__use_cache<numpunct>): Revert previous relocation.
2003-06-30  Jerry Quinn  <jlquinn@optonline.net>

	* src/locale.cc (__use_cache<numpunct>): Revert previous relocation.
	* include/bits/locale_facets.tcc (__use_cache<numpunct>): Ditto.

From-SVN: r68761
2003-07-01 05:38:04 +00:00
Jerry Quinn cf0cad0951 locale.cc (__use_cache<numpunct>): Move from here ...
2003-06-27  Jerry Quinn  <jlquinn@optonline.net>

	* src/locale.cc (__use_cache<numpunct>): Move from here ...
	* include/bits/locale_facets.tcc (__use_cache<numpunct>): To
	here.

From-SVN: r68756
2003-07-01 02:55:20 +00:00
Doug Gregor 5892c641b3 Avoid subscripting empty string.
From-SVN: r68739
2003-06-30 20:45:22 +00:00
Benjamin Kosnik 215f9e283a ios_base.h (ios_base::_M_getloc): Return reference to the imbued locale.
2003-06-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/ios_base.h (ios_base::_M_getloc): Return reference
	to the imbued locale.
	* include/bits/locale_facets.tcc (num_put::_M_convert_int): Use
	_M_getloc.
	(num_put::_M_convert_float): Use.

2003-06-26  Benjamin Kosnik  <bkoz@redhat.com>
	    Jerry Quinn  <jlquinn@optonline.net>

	* config/linker-map.gnu: Add __numpunct_cache.
	* config/locale/gnu/numeric_members.cc
	(numpunct::_M_initialize_numpunct): Account for _M_data, fill in
	all elements for "C" locale.
	(numpunct::~numpunct): Delete _M_data.
	* config/locale/generic/numeric_members.cc: Same.
	* include/bits/basic_ios.tcc
	(basic_ios::init): Remove __locale_cache bits.
	(basic_ios::_M_cache_locale): Same.
	* include/bits/ios_base.h: Same. Tweaks.
	* include/bits/locale_classes.h: Tweaks. Reorder classes.
	(__use_cache): Make friends with _Impl, locale.
	(_Impl::_M_caches): Add.
	(_Impl::_M_install_cache): Add.
	* include/bits/locale_facets.h (__numpunct_cache): New.
	(numpunct): Encapsulate data members in __numpunct_cache member,
	_M_data. Adjust virtuals.
	(numpunct::numpunct): New ctor for the same.
	(__locale_cache_base): Remove.
	(__locale_cache): Remove.
	* include/bits/locale_facets.tcc (__use_cache): New function,
	specializations.
	(num_put::_M_convert_int, _M_convert_float, do_put): Use it.
	* src/globals.cc: Add cache_vec, numpunct_cache_c, numpunct_cache_w.
	* src/ios.cc (ios_base::ios_base): Remove __locale_cache.
	* src/locale-inst.cc: Same. Add __numpunct_cache.
	* src/locale.cc: Tweak inlines.
	(__use_cache): Define specializations.
	* src/localename.cc: Use global bits.
	(_Impl::~Impl): Deal with __numpunct_cache destruction.
	(_Impl::_Impl): Same. Pre-cache standard numpunct facets.
	(_Impl::_M_init_facet): Take into account __numpunct_cache.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Update line numbers.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.

Co-Authored-By: Jerry Quinn <jlquinn@optonline.net>

From-SVN: r68558
2003-06-27 07:25:38 +00:00
Brendan Kehoe 87a7c5a1ef locale_facets.tcc (do_get): Honor $22.2.6.3.3/8 and make sure the number of digits required after the...
2003-05-26  Brendan Kehoe  <brendan@zen.org>

    * include/bits/locale_facets.tcc (do_get): Honor $22.2.6.3.3/8 and
    make sure the number of digits required after the decimal-point
    (if any) is exactly the value returned by frac_digits().

From-SVN: r67192
2003-05-27 17:14:49 -04:00
Benjamin Kosnik 0cd1de6fc9 std_fstream.h (basic_filebuf::_M_codecvt): Add cached member.
2003-05-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/std_fstream.h (basic_filebuf::_M_codecvt): Add
	cached member.
	* include/bits/fstream.tcc (basic_filebuf::basic_filebuf):
	Initialize _M_codecvt.
	(basic_filebuf::imbue): Same.
	(basic_filebuf::showmanyc): Use it.
	(basic_filebuf::underflow): Use it.
	(basic_filebuf::_M_convert_to_external): Use it.
	(basic_filebuf::seekoff): Use it.
	(basic_filebuf::imbue): Use it, tweaks.
	* include/bits/localefwd.h (__check_facet): New.
	* include/bits/locale_classes.h: Tweaks.
	* include/bits/locale_facets.tcc: Tweaks.
	* include/bits/basic_ios.h (basic_ios::_M_check_facet): Remove.
	_M_fctype to _M_ctype, _M_fnumput to _M_num_put, _M_fnumget to
	_M_num_get. Change _M_check_facet to __check_facet. Tweaks.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/std/std_streambuf.h: Same.
	* testsuite/27_io/basic_filebuf/imbue/char/2.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/char/3.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc: New.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: New.

From-SVN: r66781
2003-05-13 20:13:15 +00:00
Benjamin Kosnik 655d78212b stl_algo.h: Enums as _S_.
2003-05-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo.h: Enums as _S_.
	* include/bits/stl_tree.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/ext/stl_hashtable.h: Same.
	* src/ios.cc: And here.

	* include/std/std_sstream.h: Replace _M_really_sync to _M_sync.
	* include/bits/sstream.tcc: Same.

        * include/bits/basic_ios.h: Correct spacing for '< ctype'.

	* include/bits/locale_facets.tcc: Replace __temp to __tmp.

	* include/bits/locale_facets.h (__num_base): Remove protected.
	Use _S_[io]* names for enumerations.
	(_S_format_int): Remove.
	* include/bits/locale_facets.tcc: Same.
	* src/locale.cc: Same.

	* include/std/std_sstream.h (stringbuf::str): Tweak formatting.

From-SVN: r66552
2003-05-07 05:01:59 +00:00
Benjamin Kosnik 73c4dcc675 locale_classes.h (locale::_Impl): Change _M_names from fixed size array.
2003-04-27  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_classes.h (locale::_Impl): Change _M_names
	from fixed size array.
	(locale): Change _S_categories as well.
	Formatting tweaks.
	* include/bits/locale_facets.tcc: Tweak.
	* config/locale/gnu/c_locale.cc: Assign _S_categories.
	* config/locale/generic/c_locale.cc: Same.
	* src/locale.cc: Tweak.
	* src/globals.cc: Change facet_name to name_vec, add names_c.
	* src/localename.cc: Use them.
	(locale::_Impl::~_Impl): Destroy _M_names.
	(locale::_Impl::_Impl): Create _M_names.

From-SVN: r66147
2003-04-28 03:41:49 +00:00
Benjamin Kosnik 6fef42173f locale_facets.tcc: Fix typo.
2003-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Fix typo.

From-SVN: r63976
2003-03-08 09:11:04 +00:00
Jerry Quinn 611db4979a locale_facets.tcc (num_put::do_put(bool)): Use locale cache for truename and falsename.
2003-03-08  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/locale_facets.tcc (num_put::do_put(bool)): Use
	locale cache for truename and falsename.

From-SVN: r63970
2003-03-08 06:28:20 +00:00
Petur Runolfsson 5040d6912c re PR libstdc++/9817 (collate::compare doesn't handle nul characters.)
2003-03-07  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/9817
	* include/bits/locale_facets.tcc
	(collate::do_compare, collate::do_transform):
	Handle nul characters in input.
	* testsuite/22_locale/collate/compare/char/3.cc:  New test.
	* testsuite/22_locale/collate/compare/wchar_t/3.cc:  New test.
	* testsuite/22_locale/collate/transform/char/3.cc:  New test.
	* testsuite/22_locale/collate/transform/wchar_t/3.cc:  New test.

From-SVN: r63946
2003-03-07 17:24:47 +00:00
Jerry Quinn d77478a5e5 locale_facets.tcc (_M_convert_float): Replace numpunct facet accesses with data from __locale_cache.
2003-02-21  Jerry Quinn  <jlquinn@optonline.net>

        * include/bits/locale_facets.tcc (_M_convert_float): Replace
	numpunct facet accesses with data from __locale_cache.

From-SVN: r63213
2003-02-21 08:34:18 +00:00
Benjamin Kosnik 6067bea410 [multiple changes]
2003-02-17  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_ios.tcc (copyfmt): Copy locale data as well.
	* testsuite/27_io/ios_members.cc (test03): New.

2003-02-17  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/basic_ios.h (basic_ios::_M_cache_locale): Declare.
	(basic_ios::_M_cache_facets): Move into above.
	* include/bits/basic_ios.tcc (basic_ios::copyfmt): Rebuild locale
	cache.
	(basic_ios::imbue): Force locale cache to be built.
	(basic_ios::_M_init): Create and initialize locale cache.
	* include/bits/ios_base.h (__locale_cache_base): Declare.
	(ios_base::_M_locale_cache): New.
	(ios_base::_M_cache): Define.
	* include/bits/locale_facets.h:	(__num_base): Fix comment.  Add
	_S_end.
        (__locale_cache_base,__locale_cache<_CharT>):  New classes.
	(__locale_cache<char>, __locale_cache<wchar_t>): New specializations.
	* include/bits/locale_facets.tcc (num_put::_M_convert_int): Use locale
	cache literal string, grouping flag, thousands separator.
	(__locale_cache<_CharT>::__locale_cache): New.
	(__locale_cache<_CharT>::_M_init): New.
	(__locale_cache<_CharT>::_M_populate): New.
	* src/ios.cc: Clear _M_locale_cache in constructor.
	* src/locale-inst.cc (__locale_cache<char>, __locale_cache<_char_t>):
	New.

From-SVN: r63025
2003-02-18 05:45:07 +00:00
Benjamin Kosnik 1bc8b0ad4e c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
2003-02-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
	* include/bits/basic_ios.tcc: Guard use of extern template.
	* include/std/std_iomanip.h: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/stl_alloc.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/basic_string.tcc: Same.

From-SVN: r62865
2003-02-13 21:39:03 +00:00
Jerry Quinn ce3039af7d locale_facets.h (__num_base): Add _S_atoms_out.
2003-02-11 Jerry Quinn  <jlquinn@optonline.net>
           Benjamin Kosnik  <benjamin@redhat.com>

	* include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
	Add indexes into this array.
	(__num_base::_S_atoms): To _S_atoms_in.
	(num_put::_M_insert): Rename to _M_pad.
	(num_put::_M_convert_int): Adjust remove __mod, __modl arguments.
	(num_put::_M_widen_int): Rename to _M_group_int.
	(num_put::_M_widen_float): Rename to _M_group_float.
	* include/bits/locale_facets.tcc (__int_to_char): New inline
	function and adapter functions.
	(num_put::_M_group_int): Streamline.
	(num_put::_M_group_float): Streamline.
	(num_put::_M_convert_int): Remove unused parameter names. Choose
	large enough buffer for text.  Use __int_to_char instead of
	__convert_from_v.  Formatted text is now at the end of the buffer.
	(num_put::_M_convert_float): Preliminary fixups.
	* src/locale-inst.cc (__convert_from_v<long long>): Add ifdef.
	(__int_to_char<unsigned long long>): Same.
	(__int_to_char<char, unsigned long>): New.
	(__int_to_char<char, unsigned long long>): New.
	(__int_to_char<wchar_t, unsigned long>): New.
	(__int_to_char<wchar_t, unsigned long long>): New.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r62731
2003-02-11 21:55:49 +00:00
Paolo Carlini 5dc911525c re PR libstdc++/9548 (Incorrect results from setf(ios::fixed) and precision(-1) [DR231])
2003-02-06  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9548
	Implement resolution of DR 231 (Ready)
	* include/bits/locale_facets.h (__num_base::_S_format_float):
	Change declaration: return void, remove __prec parameter.
	* src/locale.cc (__num_base::_S_format_float): Implement
	resolution of DR 231.
	* include/bits/locale_facets.tcc (num_put::_M_convert_float):
	Tweak uses. Check for negative precision.
	* testsuite/22_locale/num_put/put/char/6.cc: Add
	* testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise.

From-SVN: r62492
2003-02-06 18:08:51 +00:00
Benjamin Kosnik 2e2a38cd06 [multiple changes]
2003-02-05  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (time_put::do_put): Use __write.
	(money_put::do_put): Same.

2003-02-05  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/ios_base.h (ios_base): Document reserved storage.

	* include/bits/locale_facets.h:	(struct __pad): Comment on
	implementation.
	(__verify_grouping): Same.
	(__add_grouping): Same.
	* include/bits/locale_facets.tcc (__verify_grouping): Move
	comments to declaration.
	(__add_grouping): Same.

	* include/bits/locale_facets.tcc:
	(__write<_CharT, _OutIter>): New function.
	(__write<_CharT>): New function specialization.
	(num_put::_M_insert): Remove explicit loop over iterator.  Use
	__write.
	(num_put::_M_widen_float): Remove __basefield.
	(num_put::_M_widen_int): Move __basefield to within grouping block.

	* include/bits/streambuf_iterator.h: Include <streambuf>.
	(ostreambuf_iterator::_M_put): Add.

From-SVN: r62473
2003-02-06 05:58:10 +00:00
Paolo Carlini 064994a3f2 Const correctness issue: http://gcc.gnu.org/ml/libstdc++/2003-01/msg00370.html
2003-02-01  Paolo Carlini  <pcarlini@unitus.it>
	    Benjamin Kosnik  <bkoz@redhat.com>

	Const correctness issue:
	http://gcc.gnu.org/ml/libstdc++/2003-01/msg00370.html
	* include/bits/locale_classes.h
	(locale::_Impl::_M_facets): Change type to const facet**.
	(locale::_Impl::_M_install_facet): Change declaration to
	take const facet*.
	(locale::facet::_M_references): Make mutable.
	(locale::facet::_M_add_reference): Declare const.
	(locale::facet::_M_remove_reference): Likewise.
	* include/bits/locale_facets.tcc
	(use_facet(const locale&)): Tweak for const facet** _M_facets.
	(has_facet(const locale&)): Likewise.
	* src/locale.cc
	(locale::facet::_M_add_reference): Adjust definition.
	(locale::facet::_M_remove_reference): Likewise.
	* src/localename.cc
	(locale::_Impl::_Impl(const _Impl&, size_t)): Tweak for
	const facet** _M_facets.
	(locale::_Impl::_Impl(const char*, size_t)): Likewise.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Likewise.
	(locale::_Impl::_M_install_facet): Adjust definition to take
	const facet* and for const facet** _M_facets.
	* testsuite/22_locale/locale/cons/8.cc: Add.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r62248
2003-02-01 16:37:20 +00:00
Benjamin Kosnik e66868131b locale_facets.h: Move non-facet classes requiring <string> to...
2003-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h: Move non-facet classes requiring
	<string> to...
	* include/bits/locale_classes.h: New.
	* include/bits/Makefile.am (bits_headers_src): Add locale_classes.h.
	* include/bits/Makefile.in: Regenerate.

	* include/bits/locale_facets.tcc (__convert_from_v): Move to...
	* config/locale/gnu/c_locale.h: ...here.
	* config/locale/generic/c_locale.h: Same.

	* include/bits/locale_facets.tcc: Move declarations to...
	* include/bits/locale_facets.h: ...here.
	* include/bits/basic_ios.h: Tweak includes accordingly.
	* include/std/std_sstream.h: Add streambuf include.
	* include/std/std_fstream.h: Ditto.
	* include/std/std_locale.h: Add locale_classes.h include.
	* include/std/std_iosfwd.h: Tweak.
	* src/concept-inst.cc: Add iterator include.

	* config/linker-map.gnu: Specify __cxa functions, mark __cxa_dyn_*
	bits as unexported in the future.

From-SVN: r61593
2003-01-22 16:51:52 +00:00
Paolo Carlini 87117aa2f3 re PR libstdc++/9151 (std::setprecision limited to 16 digits when outputting a double to a stream)
2003-01-06  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9151
	* include/bits/locale_facets.cc (num_put::_M_convert_float):
	Limit __prec to digits10 + 2, not digits10 + 1, taking into
	account the possibility of %{g,G} conversion specifiers
	inside _S_format_float.
	* testsuite/27_io/ostream_inserter_arith.cc (test06): Add.

From-SVN: r60939
2003-01-06 15:32:16 +00:00
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Benjamin Kosnik 5112ae3a8f re PR libstdc++/8318 (Not all wide character based prototypes are included within #ifdef _GLIBCPP_USE_WCHAR_T)
2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/8318
	* include/std/std_iostream.h: Tweak.
	* include/std/std_iosfwd.h: Add _GLIBCPP_USE_WCHAR_T.
	* include/std/std_iomanip.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/locale_facets.tcc: Same.

From-SVN: r58720
2002-11-01 17:30:36 +00:00
Paolo Carlini b1af5a30a5 locale_facets.tcc (num_put::_M_widen_int): Deal correctly with grouped, showbased (oct or hex) zero.
2002-09-27  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_put::_M_widen_int):
	Deal correctly with grouped, showbased (oct or hex) zero.
	* testsuite/22_locale/num_put_members_char.cc: Add test05.
	* testsuite/22_locale/num_put_members_wchar_t.cc: Ditto.

From-SVN: r57598
2002-09-27 23:08:22 +00:00
Benjamin Kosnik 145163253a [multiple changes]
2002-09-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (__convert_from_v): Remove.
	* config/locale/gnu/c_locale.h (__convert_from_v): Add.
	* config/locale/generic/c_locale.h (__convert_from_v): Add.

2002-09-11  Paolo Carlini  <pcarlini@unitus.it>

        * include/bits/locale_facets.tcc (__convert_from_v):
        Use __uselocale instead of setlocale for glibc 2.3+.

From-SVN: r57021
2002-09-11 04:25:41 +00:00
Danny Smith 57c4e0cd35 locale_facets.tcc (__convert_from_v): Replace strdup with ISO malloc and strcpy.
* include/bits/locale_facets.tcc (__convert_from_v):
	Replace strdup with ISO malloc and strcpy.

From-SVN: r56991
2002-09-10 02:41:55 +00:00
Benjamin Kosnik f13a69eccf char_traits.h: Remove generic definitions.
2002-07-30  Benjamin Kosnik  <bkoz@redhat.com>
            Gabriel Dos Reis  <gdr@nerim.net>

	* include/bits/char_traits.h: Remove generic definitions.
	* include/bits/streambuf_iterator.h (istreambuf_iterator): Use
	eof, not -2.
	* include/bits/istream.tcc (istream::readsome): Don't check
	against eof, instead use constants.
	(istream::sync): Same.
	(istream::sentry::sentry): Use eq_int_type.
	(istream::get): Same.
	* include/bits/ostream.tcc: Change __pad to
	__pad<_CharT, _Traits>::_S_pad.
	* include/bits/locale_facets.h: Add __pad_traits generic and
	ostreambuf_iterator specialization.
	* include/bits/locale_facets.tcc: Change __pad into struct __pad
	with a _CharT and _Traits template parameter and _S_pad static
	member function.
	* src/locale-inst.cc: Update __pad instantiations.

	* include/std/std_fstream.h: Declare _M_underflow_common
	specializations.
	* src/fstream.cc: New. Add _M_underflow_common specializations.
	* include/bits/fstream.tcc (filebuf::close): Use traits_type.
	(filebuf::_M_underflow_common(bool)): Remove generic version, as
	sys_ungetc and custom int_types don't get along.
	* include/std/std_streambuf.h: Add _M_pos.
	* src/Makefile.am (sources): Add fstream.cc.
	* src/Makefile.in: Regenerate.

	* testsuite/21_strings/capacity.cc: Add char_traits specializations.
	* testsuite/22_locale/codecvt_members_unicode_char.cc: Same.
	* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc: Same.
	* testsuite/22_locale/ctor_copy_dtor.cc: Same.
	* testsuite/27_io/filebuf_virtuals.cc (test07): Move to...
	* testsuite/27_io/filebuf.cc: ...here.
	* testsuite/testsuite_hooks.h: Add gnu_char, gnu_int, char_traits
	specialization for both.
	* testsuite/27_io/streambuf.cc: Add instantiation test,
	testsuite_hooks include.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/fstream.cc: Same.
	* testsuite/27_io/stringstream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Same.

Co-Authored-By: Gabriel Dos Reis <gdr@nerim.net>

From-SVN: r55893
2002-07-31 02:47:36 +00:00
Paolo Carlini 6d030676cc [multiple changes]
2002-05-04  Benjamin Kosnik  <bkoz@redhat.com>
	    Paolo Carlini  <pcarlini@unitus.it>

	* testsuite/22_locale/num_put_members_char.cc: Add test04(),
	testing for the locale_facets.tcc entry of the previous commit.
	* testsuite/22_locale/num_put_members_wchar_t.cc: Likewise.

2002-05-04  Takeshi Kobayakawa  <tskoba@mte.biglobe.ne.jp>

	* config/locale/generic/c_locale.cc
	(__convert_to_v(float, double, long double)):
	Fix the temporary switch to the "C" locale, saving and
	restoring in the proper way the current locale.
	* config/locale/generic/time_members.cc
	(__timepunct<char, wchar_t>::_M_put): Likewise.
	* config/locale/gnu/messages_members.cc
	(messages<char>::do_get): Likewise.
	* config/locale/gnu/messages_members.h
	(messages<_CharT>::do_get): Likewise.
	* config/locale/gnu/time_members.cc
	(__timepunct<char, wchar_t>::_M_put): Likewise.
	* include/bits/locale_facets.tcc (__convert_from_v): Likewise.

From-SVN: r53167
2002-05-04 21:33:19 +00:00
Benjamin Kosnik d3a193e36c re PR libstdc++/4164 (33 Memory Leak when using iostream)
2002-04-15  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/4164
	Valgrind fixes.
	* config/io/basic_file_stdio.cc (__basic_file::~__basic_file):
	Call close.
	(__basic_file::close): Call fflush. Correct return if fclose ok.
	(__basic_file::is_open): Make const.
	Change __c_file_type to __c_file.
	* config/io/basic_file_stdio.h: Change __c_file_type to __c_file.
	(__basic_file::is_open): Make const.
	* config/io/c_io_stdio.h: Change __c_file_type to __c_file.
	* include/std/std_fstream.h (filebuf::_M_allocate_file): Remove.
	(filebuf::_M_unbuf): Add.
	(filebuf::_M_file): Change to non-pointer.
	(filebuf::_M_allocate_pback_buffer): Remove.
	* include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove.
	(filebuf::_M_allocate_internal_buffer): Use _M_unbuf.
	Change initialization list for _M_file change.
	(filebuf::_M_allocate_pback_buffer): Remove.
	Change _M_file usage to reflect non-pointer data member.

	* config/locale/generic/c_locale.cc
	(locale::facet::_S_create_c_locale): Add parameter.
	* config/locale/generic/collate_members.cc: Change
	_M_compare_helper to _M_compare.
	Change _M_transform_helper to _M_transform.
	* config/locale/generic/monetary_members.cc: Changeup data types.
	Add dtors.
	* config/locale/generic/numeric_members.cc: Add dtors.
	* config/locale/generic/time_members.cc: Add dtors.
	* config/locale/gnu/c_locale.cc: Add parameter.
	* config/locale/gnu/collate_members.cc:Change
	_M_compare_helper to _M_compare.
	Change _M_transform_helper to _M_transform.
	* config/locale/gnu/ctype_members.cc: Better error checking.
	* config/os/gnu-linux/bits/ctype_noninline.h: Better error checking.
	* config/locale/gnu/messages_members.cc: Tweak comment.
	* config/locale/gnu/monetary_members.cc: Change data types.
	Add dtors.
	* config/locale/gnu/numeric_members.cc: Add dtors, better error
	checking.
	* config/locale/gnu/time_members.cc: Same.
	* config/locale/ieee_1003.1-2001/c_locale.cc
	(locale::facet::_S_create_c_locale): Add parameter.
	* config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove
	bogus ctor.

	* include/bits/locale_facets.h (moneypunct): Use string literals.
	Don't define dtor.
	(numpunct): Same.
	(__timepunct): Same.
	(locale::_Impl::_M_facets): Change from vector to array.
	(locale::_Impl::_M_names): Change from array of strings to array
	of string literals.
	(locale::facet::_S_create_c_locale): Add parameter.
	(locale::locale::_S_num_facets): Move to...
	(locale::_Impl::_M_facets_size): Here.
	* include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name
	changes.
	* include/bits/localefwd.h: (locale:🆔:_M_id): Add member function.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Add.
	(locale::_Impl::_Impl(string, size_t)): Change to
	(locale::_Impl::_Impl(const char*, size_t)): This.

	* include/bits/streambuf.tcc (streambuf::_S_pback_size): Define.
	* include/std/std_streambuf.h (streambuf::_M_pback_size): Change to
	(streambuf::_S_pback_size): This.

	* src/globals.cc: Add pre-allocations for "C" facets.
	* src/locale-inst.cc: Remove vector instantiations.
	* src/locale.cc: Remove vector include. Fixups for _M_names,
	_M_facets changes.
	* src/localename.cc: Same.

	* include/bits/stl_vector.h: Fix odd formatting.

	* include/bits/basic_string.tcc: Tweak comment.

	* libsupc++/new: Make sure parameters are uglified.
	* libsupc++/typeinfo: Same.

	* testsuite/22_locale/num_get_members_char.cc: Fixup.
	* testsuite/22_locale/num_get_members_wchar_t.cc: Same.
	* testsuite/27_io/filebuf_members.cc: Same.

From-SVN: r52345
2002-04-16 00:45:36 +00:00
Benjamin Kosnik 0dba73e0ab localefwd.h (locale::_Impl::_M_facets): Change from pointer to vector.
2002-04-09  Benjamin Kosnik  <bkoz@redhat.com>

        libstdc++/1072
        * include/bits/localefwd.h (locale::_Impl::_M_facets): Change from
        pointer to vector.
        Remove forward declaration of vector.
        Include vector.
        * include/bits/locale_facets.tcc: Remove vector include.
        (use_locale): Adjust.
        (has_locale): Adjust.
        * src/locale.cc: Adjust.
        * src/localename.cc: Same.

From-SVN: r52095
2002-04-09 21:19:55 +00:00
Paolo Carlini 99b629fa30 2002-04-01 Paolo Carlini <pcarlini@unitus.it>
* config/locale/ieee_1003.1-2001/codecvt_specializations.h
	(codecvt::do_out, codecvt::do_unshift, codecvt::do_in):
	By definition, sizeof(char) == 1.
	* include/bits/locale_facets.tcc (money_get::do_get,
	money_put::do_put): Ditto.
	* testsuite/21_strings/inserters_extractors.cc
	(test04): Ditto.

From-SVN: r51685
2002-04-01 08:55:05 +00:00
Paolo Carlini 6d8e16a463 locale-inst.cc (__convert_from_v): Add an additional __size parameter in the declarations.
2002-03-19  Paolo Carlini  <pcarlini@unitus.it>
	    Ulrich Drepper  <drepper@redhat.com>

	* src/locale-inst.cc (__convert_from_v): Add an additional
	__size parameter in the declarations.
	* include/bits/locale_facets.tcc
	(__convert_from_v): When available (that is,
	_GLIBCPP_USE_C99 defined) use snprintf instead of sprintf.
	(num_put::_M_convert_float): Depending on _GLIBCPP_USE_C99
	being defined or not, call and use __convert_from_v in the
	appropriate way.
	(num_put::_M_convert_int): Same here.
	(money_put::do_put(long double)): Same here.

Co-Authored-By: Ulrich Drepper <drepper@redhat.com>

From-SVN: r51050
2002-03-19 22:33:06 +00:00
Paolo Carlini 3039874b15 locale_facets.tcc (money_put::do_put(long double)): Fix dimensioning of temporary buffers to avoid risk of overruns.
2002-03-18  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc
	(money_put::do_put(long double)): Fix dimensioning of
	temporary buffers to avoid risk of overruns.
	(money_put::do_put(string)): Same for the buffer used to
	add the grouping chars.
	* testsuite/22_locale/money_put_members_char.cc: Add test06.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Ditto.

	* include/bits/locale_facets.tcc
	(collate::do_transform): Simplify.

From-SVN: r51012
2002-03-18 23:11:57 +00:00
Paolo Carlini c15892e05e locale_facets.tcc (time_put::do_put): Consider sizeof(char_type) in allocating the buffer.
2002-03-10  Paolo Carlini  <pcarlini@unitus.it>

        * include/bits/locale_facets.tcc (time_put::do_put):
	Consider sizeof(char_type) in allocating the buffer.

	* include/bits/locale_facets.tcc (collate::do_tranform):
	Remove redundant variable.

From-SVN: r50553
2002-03-10 23:51:31 +00:00
Paolo Carlini 32c1620024 locale_facets.tcc (collate::do_transform): Rewrite to fix problems with long transformed strings.
2002-03-09  Paolo Carlini  <pcarlini@unitus.it>

        * include/bits/locale_facets.tcc (collate::do_transform):
        Rewrite to fix problems with long transformed strings.

From-SVN: r50500
2002-03-09 16:44:34 +00:00
Scott Snyder 96854fe254 locale_facets.tcc (num_put::_M_convert_float): Allow one more digit of precision.
2002-03-08  scott snyder  <snyder@fnal.gov>

	libstdc++/5875
	* include/bits/locale_facets.tcc (num_put::_M_convert_float):
	Allow one more digit of precision.
	* testsuite/27_io/ostream_inserter_arith.cc: Test that we can
	write a double and read back in the same value.

From-SVN: r50470
2002-03-09 02:01:34 +00:00
Benjamin Kosnik 41b4d44bac stl_alloc.h: Add extern implicit allocator instantiations.
2002-03-07  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_alloc.h: Add extern implicit allocator
	instantiations.
	* include/bits/basic_string.tcc: Tweak.
	* include/bits/locale_facets.tcc: Remove default args. Add
	has_facet, use_facet extern instantiations.
	* src/stl-inst.cc: Add explicit instantiation.
	* src/locale-inst.cc: Clean. Remove locale member template
	instantiations.

	* testsuite/22_locale/operators.cc (test02): Enable.

From-SVN: r50426
2002-03-08 06:05:21 +00:00
Phil Edwards 037cfe71e0 user.cfg.in: Also document deprecated entries.
2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/user.cfg.in:  Also document deprecated entries.
	* docs/html/Makefile:  Example rule to rebuild porting-howto.html.
	* docs/html/17_intro/howto.html:  "gcc"->"GCC" changes, when
	referring to the collection as a whole.  New section on which macros
	can be redefined by the user.
	* docs/html/19_diagnostics/howto.html:  Update note for concepts.
	* docs/html/20_util/howto.html:  Update link to SGI.
	* docs/html/faq/index.html:  Update snapshot versions.  New entry
	on why g++ (but not gcc) must currently predefine certain macros.
	* docs/html/faq/index.txt:  Regenerated.

	* include/bits/basic_string.h (basic_string::_S_construct):  Fix
	names in declaration.
	(basic_string::compare):  These are no longer optional.
	* include/bits/ostream.tcc:  Tweak closing brace placement.
	* include/bits/stl_algo.h:  Lots of initial doxygen comment hooks.
	* include/std/std_sstream.h:  Fix typo in comment.
	* include/bits/locale_facets.tcc:  Remove unneeded header inclusion.
	* src/locale.cc:  Likewise.

From-SVN: r50376
2002-03-06 21:22:56 +00:00
Paolo Carlini 84eb48794c 2002-03-05 Paolo Carlini <pcarlini@unitus.it>
libstdc++/5816
	* include/bits/locale_facets.tcc
	(num_get::_M_extract_float): Fix the parsing of __dec, since
	the standard prescribes that if no grouping characters are
	seen, no grouping check is applied.
        * testsuite/22_locale/num_get_members_char.cc: Add test05
	distilled from the PR.
        * testsuite/22_locale/num_get_members_wchar_t.cc: Ditto.

From-SVN: r50317
2002-03-05 12:09:45 +00:00
Paolo Carlini 694d519fb0 locale_facets.tcc (num_get::_M_extract_int): Admit grouping for octals and hexadecimals too.
2002-02-28  Paolo Carlini  <pcarlini@unitus.it>

        * include/bits/locale_facets.tcc (num_get::_M_extract_int):
        Admit grouping for octals and hexadecimals too.
        * testsuite/22_locale/num_get_members_char.cc: Add test04.
        (test01): Tweak "." -> "," in void* test.
        * testsuite/22_locale/num_get_members_wchar_t.cc: Ditto.

        * testsuite/27_io/ios_manip_basefield.cc: Remove static keyword.
        * testsuite/27_io/ios_manip_fmtflags.cc: Remove two of them.

From-SVN: r50162
2002-02-28 21:16:45 +00:00
Paolo Carlini 2d13abcf86 locale_facets.tcc (num_put::_M_widen_int): Group all the integral types, not only decs.
2002-02-26  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_put::_M_widen_int):
	Group all the integral types, not only decs.
	* testsuite/27_io/ios_manip_basefield.cc (test01): Tweak existing
	tests, add a few more.

From-SVN: r50057
2002-02-26 20:56:24 +00:00
Paolo Carlini 577f406186 locale_facets.tcc (money_put::do_put): For the space field use __fill instead of ' ', uniformly.
2002-02-18  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/5708
	* include/bits/locale_facets.tcc (money_put::do_put):
	For the space field use __fill instead of ' ', uniformly.
	* testsuite/22_locale/money_put_members_char.cc:
	Add test05 distilled from PR.
	(test01-02-03): Trim some '*' to ' '.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Ditto.

From-SVN: r49847
2002-02-18 21:23:26 +00:00
Benjamin Kosnik 3b79452813 locale_facets.tcc: Add pragma GCC system_header.
2002-02-16   Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Add pragma GCC system_header.
	* include/bits/fstream.tcc: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/basic_string.tcc: Same.

From-SVN: r49809
2002-02-16 19:33:43 +00:00
Benjamin Kosnik a32e3c097e Tune for size.
2002-02-15  Benjamin Kosnik  <bkoz@redhat.com>

	Tune for size.
	* src/string-inst.cc (string::_Rep::_S_terminal): Remove redundant
	explicit instantiation.
	(string::_Rep::_S_max_size): Same.
	* include/bits/basic_string.tcc: Add extern explicit
	instantiations for string, wstring.
	* include/bits/basic_ios.tcc: Add extern explicit instantiations
	for ios, wios.
	* include/bits/streambuf.tcc: Same, for streambuf, wstreambuf.
	* include/bits/istream.tcc: Same, for istream, wistream.
	* include/bits/ostream.tcc: Same for ostream, wostream, iostream,
	wiostream.
	* include/bits/sstream.tcc: Same, for stringbuf, wstringbuf,
	istringstream, wistringstream, ostringstream, wostringstream,
	stringstream, wstringstream.
	* include/bits/fstream.tcc: Same, for filebuf, wfilebuf, ifstream,
	wifstream, ofstream, wofstream, fstream, wfstream.
	* src/misc-inst.cc: Correct comments.
	Add iomanip instantiations for wide streams.
	* include/std/std_iomanip.h: Same.
	* include/bits/locale_facets.tcc: Same.

	* include/std/std_streambuf.h: Correct
	_GLIBCPP_FULLY_COMPLIANT_HEADERS guard.
	* include/std/std_sstream.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_istream.h: Same.
	* include/std/std_fstream.h: Same.

	* include/std/std_streambuf.h: Add definitions for private copy
	ctor and assignment operator.
	* include/std/std_istream.h: Remove declared but undefined copy
	ctor and assignment operator. This is taken care of in ios_base,
	so adding it in the derived class as well is superfluous.
	* include/std/std_ostream.h: Same.

	* include/bits/basic_ios.h (basic_ios::clear): Don't inline.
	* include/bits/basic_ios.tcc (basic_ios::clear): Move definition here.

From-SVN: r49798
2002-02-16 00:19:13 +00:00
Aaron W. LaFramboise 4e2f8bcf6f locale_facets.tcc (collate::do_hash): Fix.
2002-02-11  Aaron W LaFramboise  <AWLaFramboise@aol.com>

	* include/bits/locale_facets.tcc (collate::do_hash): Fix.
	* testsuite/22_locale/collate_members_char.cc (test03): New test.
	* testsuite/22_locale/collate_members_wchar_t.cc (test03): Same.

From-SVN: r49682
2002-02-11 18:56:24 +00:00
Paolo Carlini 6662d4c337 locale_facets.tcc (money_get::do_get(string)): In case money_base::symbol deal properly with multi-char sign for patterns...
2002-02-06  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	In case money_base::symbol deal properly with multi-char sign
	for patterns {X,Y,Z,symbol} and {X,Y,symbol,none}.
	* testsuite/22_locale/money_get_members_char.cc: Add test07.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Add test07.

From-SVN: r49543
2002-02-06 12:13:00 +00:00
Paolo Carlini e07554eb17 locale_facets.tcc (money_get::do_get(string)): First construct a tentative returned string...
2002-02-05  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	First construct a tentative returned string, then, only if the
	parsing succeeds, copy it into the string passed by reference.
	* testsuite/22_locale/money_get_members_char.cc: Add test06.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Add test06.

From-SVN: r49523
2002-02-05 11:35:48 +00:00
Paolo Carlini 53804e7c80 locale_facets.tcc (money_get::do_get(string)): Deal correctly with !(__io.flags() & ios_base::showbase) for case...
2002-02-04  Paolo Carlini  <pcarlini@unitus.it>

        libstdc++/5579
        * include/bits/locale_facets.tcc (money_get::do_get(string)):
        Deal correctly with !(__io.flags() & ios_base::showbase)
        for case money_base::symbol.
        * testsuite/22_locale/money_get_members_char.cc: Add test05.
        * testsuite/22_locale/money_get_members_wchar_t.cc: Add test05.

From-SVN: r49489
2002-02-04 19:51:32 +00:00
Benjamin Kosnik aac0eb5d46 [multiple changes]
2002-01-23  Matt Kraai  <kraai@alumni.cmu.edu>

	* include/bits/locale_facets.tcc: Remove old comments.

2002-01-23  Andreas Tobler  <toa@pop.agri.ch>

	* include/bits/locale_facets.tcc (__convert_to_v): Change template
	parameter to _Tv.
	(__convert_from_v): Same.

From-SVN: r49156
2002-01-23 23:35:18 +00:00
Benjamin Kosnik 5b1a76105b locale_facets.h (num_get::_M_extract_int): Change prototype.
2002-01-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (num_get::_M_extract_int): Change
	prototype.
	* include/bits/locale_facets.tcc (num_get::_M_extract_int): Remove
	__max_digits checks, adjust arguments.
	(num_get::do_get(*)): Changeup.

From-SVN: r49154
2002-01-23 20:38:59 +00:00
Benjamin Kosnik 4b9aaf6379 Audit for LANG independence.
2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	Audit for LANG independence.
	* include/bits/localefwd.h: Tweaks.
	* include/bits/locale_facets.tcc (money_get::do_get(long double)):
	Use __convert_to_v.
	(time_get::do_get_year): Same.
	(__convert_from_v): Add.
	(num_put::_M_convert_float): Use.
	(num_put::_M_convert_int): Same.
	(money_put::do_put): Same.

	* src/locale-inst.cc: Add instantiations for __convert_from_v.
	* config/locale/time_members_gnu.cc: Cleanup setlocale usage.
	* config/locale/time_members_generic.cc:
	* config/locale/messages_members_gnu.cc: Same.
	* config/locale/messages_members_gnu.h: Same.

	* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): New.
	* testsuite/22_locale/codecvt_members_char_char.cc (test02): New.
	* testsuite/22_locale/collate_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/collate_members_char.cc (test02): New.
	* testsuite/22_locale/ctype_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/ctype_members_char.cc (test03): New.
	* testsuite/22_locale/messages_members_char.cc (test02): New.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/moneypunct_members_char.cc (test02): New.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test04): New.
	* testsuite/22_locale/money_get_members_char.cc (test04): New.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test04): New.
	* testsuite/22_locale/money_put_members_char.cc (test04): New.
	* testsuite/22_locale/numpunct_members_wchar_t.cc (test02): New.
	* testsuite/22_locale/numpunct_members_char.cc (test02): New.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/time_put_members_char.cc (test03): New.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test07): New.
	* testsuite/22_locale/time_get_members_char.cc (test07): New.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/num_get_members_char.cc (test03): New.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test03): New.
	* testsuite/22_locale/num_put_members_char.cc (test03): New.

	* testsuite/22_locale/time_get_members_char.cc: Fixups for global
	locale issues.
	* testsuite/22_locale/time_get_members_char.cc: Same.

2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/5280
	* include/bits/localefwd.h: Tweak comments.
	* include/bits/locale_facets.h (__convert_to_v): Add.
	* include/bits/locale_facets.tcc (num_get::do_get(double)): Use it.
	(num_get::do_get(float)): Same.
	(num_get::do_get(long double)): Same.
	(num_get::do_get(bool)): Same.
	(num_get::do_get(long)): Same.
	(num_get::do_get(long long)): Same.
	(num_get::do_get(unsigned int)): Same.
	(num_get::do_get(unsigned short)): Same.
	(num_get::do_get(unsigned long)): Same.
	(num_get::do_get(unsigned long long)): Same.
	* config/locale/c_locale_gnu.cc (__convert_to_v): Specialize.
	* config/locale/c_locale_generic.cc: Same.

From-SVN: r49108
2002-01-22 23:09:04 +00:00
Benjamin Kosnik bed9a20d55 locale_facets.tcc (num_put::do_put(bool): Fix.
2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (num_put::do_put(bool): Fix.
	(num_put::do_put(void*)): Fix.
	* testsuite/22_locale/num_put_members_char.cc (test02): Add.
	* testsuite/22_locale/num_put_members_wchar_t.cc (test02): Add.
	* testsuite/22_locale/num_get_members_char.cc (test02): Add
	long double, void, bool types.
	* testsuite/22_locale/num_get_members_wchar_t.cc (test02): Add.

From-SVN: r48892
2002-01-16 00:51:45 +00:00
Benjamin Kosnik 8f88da406b locale_facets.tcc (time_put::put): Correct output iterator positions.
2002-01-14  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (time_put::put): Correct output
	iterator positions.
	* testsuite/22_locale/time_put_members_char.cc (test02): Add.
	* testsuite/22_locale/time_put_members_wchar_t.cc (test02): Add.
	* testsuite/22_locale/time_get_members_wchar_t.cc (test06): Add.
	* testsuite/22_locale/time_get_members_char.cc (test06): Add.

From-SVN: r48861
2002-01-15 04:23:46 +00:00
Benjamin Kosnik ae72572be9 locale_facets.tcc (money_put::do_put(string): Correct output iterator value.
2002-01-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (money_put::do_put(string):
	Correct output iterator value.
	* testsuite/22_locale/money_put_members_char.cc (test03): Add.
	* testsuite/22_locale/money_put_members_wchar_t.cc: Same.

From-SVN: r48809
2002-01-13 04:27:18 +00:00
Benjamin Kosnik 87a9c33cb1 locale_facets.tcc (money_get::do_get(string)): Check for zero-length negative sign before adding it to output string.
2002-01-11  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (money_get::do_get(string)):
	Check for zero-length negative sign before adding it to output
	string.
	(money_get::do_get(long double)): Return beg.
	* testsuite/22_locale/money_get_members_char.cc (test02): Add
	iterator checks.
	* testsuite/22_locale/money_get_members_wchar_t.cc: Same.

From-SVN: r48777
2002-01-11 20:12:02 +00:00
David Seymour 631ba05e3d locale_facets.h (num_get<>): Return advanced iterator for _M_extract_float and _M_extract_int
2002-01-10  David Seymour  <seymour_dj@yahoo.com>

	* include/bits/locale_facets.h (num_get<>): Return advanced iterator
	for _M_extract_float and _M_extract_int
	* include/bits/locale_facets.tcc (num_get<>::_M_extract_float)
	(num_get<>::_M_extract_int): Likewise, all callers changed
	* testsuite/22_locale/num_get_members_char.cc: Testcase

From-SVN: r48764
2002-01-11 05:07:22 +00:00
Benjamin Kosnik 54c1bf7801 Makefile.am (std_headers): Remove cXXX from list.
2002-01-04  Benjamin  Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (std_headers): Remove cXXX from list.
	(c_base_srcdir): No bits subdirectory.
	(c_base_builddir): Same.
	(c_base_headers): Adjust names, add ciso646.
	(bits_headers): Remove std_xxx.h headers.
	* include/Makefile.in: Regenerate.

	* include/ext/iterator: Adjust includes.
	* include/ext/ropeimpl.h: Same.
	* include/ext/stl_hash_fun.h: Same.
	* include/ext/algorithm: Same.

	* include/backward/bvector.h: Adjust includes.
	* include/backward/vector.h: Same.
	* include/backward/strstream: Same.
	* include/backward/streambuf.h: Same.
	* include/backward/stack.h: Same.
	* include/backward/set.h: Same.
	* include/backward/queue.h: Same.
	* include/backward/multiset.h: Same.
	* include/backward/multimap.h: Same.
	* include/backward/map.h: Same.
	* include/backward/list.h: Same.
	* include/backward/iterator.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/fstream.h: Same.
	* include/backward/deque.h: Same.
	* include/backward/complex.h: Same.

	* include/bits/std_algorithm.h: Move to...
	* include/std/algorithm: ...here.
	* include/bits/std_iosfwd.h, std_locale.h, std_stack.h,
	std_bitset.h, std_ios.h, std_map.h, std_stdexcept.h,
	std_complex.h, std_iostream.h, std_memory.h, std_streambuf.h,
	std_deque.h, std_istream.h, std_numeric.h, std_string.h,
	std_fstream.h, std_ostream.h, std_utility.h, std_iterator.h,
	std_queue.h, std_valarray.h, std_functional.h, std_limits.h,
	std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h:
	Same.

	* include/c_std/bits/std_cassert.h: Move to...
	* include/c_std/cassert: Here.
	* include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c_std/cmath: Adjust cmath.tcc include.
	* include/c_std/cstdlib: Adjust includes.
	* include/c_std/cwchar: Same.
	* include/c_std/ctime: Same.
	* include/c_std/cstring: Same.
	* include/c_std/cstdio: Same.
	* include/c_std/bits: Remove directory.

	* include/c/bits/std_cassert.h: Move to...
	* include/c/cassert: Here.
	* include/c/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c/bits: Remove directory.

	* include/std/cwctype: Remove.
	* include/std/cwchar: Remove.
	* include/std/ctime: Remove.
	* include/std/cstring: Remove.
	* include/std/cstdlib: Remove.
	* include/std/cstdio: Remove.
	* include/std/cstddef: Remove.
	* include/std/cstdarg: Remove.
	* include/std/csignal: Remove.
	* include/std/csetjmp: Remove.
	* include/std/cmath: Remove.
	* include/std/clocale: Remove.
	* include/std/climits: Remove.
	* include/std/ciso646: Remove.
	* include/std/cfloat: Remove.
	* include/std/cerrno: Remove.
	* include/std/cctype: Remove.
	* include/std/cassert: Remove.

	* include/bits/fpos.h: Adjust includes, removing <bits/std_xxx.h>
	files and subsituting <.xxx>
	* include/bits/valarray_array.h: Same.
	* include/bits/stl_uninitialized.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/pthread_allocimpl.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/localefwd.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/basic_file.h: Same.
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/fstream: Same.
	* include/std/functional: Same.
	* include/std/ios: Same.
	* include/std/iostream: Same.
	* include/std/ostream: Same.
	* include/std/sstream: Same.
	* include/std/streambuf: Same.
	* include/std/string: Same.
	* include/std/iterator: Same.
	* include/std/valarray: Same.

	* src/ios.cc: Adjust includes.
	* src/valarray-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/stl-inst.cc: Same.
	* src/stdexcept.cc: Same.
	* src/misc-inst.cc: Same.
	* src/localename.cc: Same.
	* src/locale-inst.cc: Same.
	* src/locale.cc: Same.
	* src/limits.cc: Same.
	* src/concept-inst.cc: Same.
	* src/complex_io.cc: Same.
	* src/codecvt.cc: Same.
	* src/bitset.cc: Same.
	* src/cmath.cc: Same.

From-SVN: r48544
2002-01-04 21:27:36 +00:00
Paolo Carlini b206658a5f locale_facets.tcc (collate::do_transform): Adjust implicit typename.
2001-12-27  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (collate::do_transform):
	Adjust implicit typename.
	* config/locale/messages_members_generic.h (messages::open,
	messages::do_open, messages::do_get): Adjust implicit typename.
	* config/locale/messages_members_gnu.h (messages::open,
	messages::do_open, messages::do_get): Adjust Implicit typename.
	* config/locale/messages_members_ieee_1003.1-200x.h (messages::open,
	messages::do_open, messages::do_get): Adjust implicit typename.

From-SVN: r48327
2001-12-27 12:13:23 +00:00
Philip Martin cb93dfb4a0 Ross Smith <r-smith@ihug.co.nz> Paolo Carlini <pcarlini@unitus.it>
2001-12-12  Philip Martin  <philip@codematters.co.uk>
            Ross Smith     <r-smith@ihug.co.nz>
            Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/5045
	* include/bits/std_limits.h (defines, numeric_limits<bool>::digits10):
	Fix digits10 values for integral types.
	* include/bits/locale_facets.tcc (num_get::do_get for integral types):
	Tweak _M_extract_int call.
	* testsuite/27_io/istream_extractor_arith.cc (test13, test12_aux):
	Tweak overflowing number of digits.
	* testsuite/18_support/numeric_limits.cc (test03): New testcase.

Co-Authored-By: Paolo Carlini <pcarlini@unitus.it>
Co-Authored-By: Ross Smith <r-smith@ihug.co.nz>

From-SVN: r47947
2001-12-12 20:23:30 +00:00
Benjamin Kosnik bf3b866e31 ctype_inline.h: Remove spaces.
2001-12-11  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/generic/bits/ctype_inline.h: Remove spaces.
	* config/os/gnu-linux/bits/ctype_noninline.h: Same.
	* include/bits/locale_facets.h (__num_base): Move double data
	members to first in class.
	* include/bits/locale_facets.tcc: Re-arrange, tweak.
	* src/locale.cc: Clean.
	*include/bits/stl_vector.h: Space typedefs.

From-SVN: r47918
2001-12-12 03:22:25 +00:00
Jason Merrill 6fe4816fdb locale_facets.tcc (_M_extract_int): Avoid uninitialized warning.
* include/bits/locale_facets.tcc (_M_extract_int): Avoid
        uninitialized warning.

From-SVN: r47877
2001-12-11 10:48:11 -05:00
Benjamin Kosnik 2a74463013 locale_facets.h (__num_base::_S_scale_hex): Add.
2001-12-09  Benjamin Kosnik  <bkoz@redhat.com>
	    Philip Martin <pmartin@uklinux.net>

	* include/bits/locale_facets.h (__num_base::_S_scale_hex): Add.
	(__num_base::_S_scale_oct): Add.
	* src/locale.cc: Add definitions.
	* testsuite/27_io/istream_extractor_arith.cc (main): Call test13.

	* testsuite/testsuite_hooks.h: Remove duplicate VERIFY define.

Co-Authored-By: Philip Martin <pmartin@uklinux.net>

From-SVN: r47837
2001-12-10 08:41:03 +00:00
Paolo Carlini 46d360629c locale_facets.tcc (num_put::_M_convert_float): Extend comment, reduce __cs_size for non-fixed outputs.
2001-12-07  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/locale_facets.tcc (num_put::_M_convert_float):
	Extend comment, reduce __cs_size for non-fixed outputs.

From-SVN: r47767
2001-12-07 19:00:07 +00:00
Benjamin Kosnik 823b4f7daa [multiple changes]
2001-12-06  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/3720
	* include/bits/locale_facets.tcc (num_put): Clean.
	(num_get::_M_extract_float): Change argument to string.
	(num_get::do_get(float)): Fixup.
	(num_get::do_get(double)): Same.
	(num_get::do_get(long double)): Same.
	(num_get::_M_extract_int): Add maximum length parameter, __max.
	(num_get::_M_extract_float): Correct zeros, use string.
	* include/bits/locale_facets.h (num_get::_M_extract_float): Change
	declaration here.
	* src/locale.cc (__num_base::_S_atoms): Remove x, X.
	* testsuite/27_io/istream_extractor_arith.cc (test13): Add.

2001-12-06  Philip Martin  <pmartin@uklinux.net>

	* testsuite/27_io/istream_extractor_arith.cc (test12): Add
	tests for excess input digits.

From-SVN: r47743
2001-12-07 02:58:36 +00:00
Benjamin Kosnik 0228de0c4f [multiple changes]
2001-12-05  Benjamin Kosnik  <bkoz@redhat.com>

	DR/282
	* include/bits/locale_facets.tcc (num_put::_M_widen_float): Add
	grouping to floating point types.
	* testsuite/27_io/ostream_inserter_arith.cc (test02): Add test.

2001-12-04  Paolo Carlini <pcarlini@unitus.it>

        libstdc++/4402
        * testsuite/27_io/ostream_inserter_arith.cc (test02): add testcase
	from the PR.
        * include/bits/locale_facets.tcc (num_put::_M_convert_float):
        Deal properly with long ios_base::fixed floats.
        (num_put::_M_widen_float): use
	__len in __builtin_alloca call.

From-SVN: r47696
2001-12-05 22:07:36 +00:00
Paolo Carlini b334004616 locale_facets.tcc (__pad): Add bool parameter to correctly pad internal-adjusted const char*-type objects.
2001-11-29  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/3655
	* include/bits/locale_facets.tcc (__pad): Add bool parameter to
	correctly pad internal-adjusted const char*-type objects.
	* include/bits/locale_facts.tcc (num_put::_M_insert): Update call.
	* include/bits/ostream.tcc (operator<<(_CharT , char, const
	_CharT*, const char*, const basic_string&): Update calls.
	* src/locale-inst.tcc: Update declarations.
	* testsuite/27_io/ostream_inserter_arith.cc (test04): Add test.

From-SVN: r47459
2001-11-29 22:31:02 +00:00
Benjamin Kosnik 004249997b locale_facets.tcc (num_get::do_get(long double)): Fix __traits_type typo.
2001-11-29  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (num_get::do_get(long double)):
	Fix __traits_type typo.

From-SVN: r47449
2001-11-29 20:14:38 +00:00
Paolo Carlini 5a4c85886a locale_facets.tcc (__pad): correctly output hex numbers internally aligned.
2001-11-28  Paolo Carlini  <pcarlini@unitus.it>

	libstdc++/3655
	* include/bits/locale_facets.tcc (__pad): correctly output hex
	numbers internally aligned.
	* testsuite/27_io/ostream_inserter_arith.cc: Add testcase.

From-SVN: r47433
2001-11-29 00:27:54 +00:00
Benjamin Kosnik 5fd0af8754 locale_facets.tcc: Formatting tweaks.
2001-11-27  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Formatting tweaks.

	* testsuite/23_containers/map_operators.cc: Don't xfail.
	* testsuite/23_containers/set_operators.cc: Same.

From-SVN: r47400
2001-11-28 06:35:00 +00:00
Benjamin Kosnik 86ade44cb2 Numeric facets cleanup.
2001-11-27  Benjamin Kosnik  <bkoz@redhat.com>

	Numeric facets cleanup.
	* include/bits/locale_facets.h (__num_base::_S_atoms): Add, remove
	+ and - signs.
	(__num_base::_M_zero): Add
	(__num_base::_M_e): Add.
	(__num_base::_M_E): Add.
	* include/bits/locale_facets.tcc (num_get::_M_extract): Remove.
	(num_get::_M_extract_float): New.
	(num_get::_M_extract_int): New.
	* src/locale.cc (num_get::_M_extract): Remove.

	* include/bits/locale_facets.tcc (num_put::_M_insert_float):
	Simplify, use _M_insert.
	(num_put::do_put(bool)): Simplify, remove __pad.
	(__pad): Remove.
	(__pad_output): Change to __pad.
	* include/bits/ostream.tcc: And here.
	* src/locale-inst: Remove instantiations.

	* include/bits/locale_facets.h: Move helper functions in to class
	num_put.
	(num_put::_M_insert_float): Same, for __output_integer.
	(num_put::_M_insert_int): Same, for __output_float.
	(num_put::_M_insert): New.
	(__num_base): Add.
	(__num_base::_S_format_float): Move
	__build_float_format into class __num_base.
	(__num_base::_S_format_int): Move __build_int_format into class
	__num_base.
	* include/bits/locale_facets.tcc (__group_digits): Change to
	(__add_grouping): This.
	* src/locale-inst.cc: And here. Tweak instantiations.
	* src/misc-inst.cc: Remove instantiations.

	* include/bits/ostream.tcc (__pad_char): Rename, adjust inserters
	for new calling conventions, move to...
	* include/bits/locale_facets.tcc (__pad_output): Here. Adjust
	signature to make it useful for both ostream and num_put.
	(__pad_numeric): Remove.
	* src/misc-inst.cc: Remove instantiations.
	* src/locale-inst.cc: Same.

	* include/bits/locale_facets.h (_Numeric_get): Remove.
 	(_Numeric_put): Remove.
	(num_get::get(short)): Remove.
	(num_get::get(int)): Remove.
	(num_get::do_get(short)): Remove.
	(num_get::do_get(int)): Remove.
	* include/bits/istream.tcc (istream::operator>>(short)): Fix as
	per DR 118.
	(istream::operator>>(int)): Same.

	* include/bits/locale_facets.h (_Format_cache): Remove.
	* include/bits/locale_facets.tcc: Same.
	* src/locale.cc: Same.
	* src/locale-inst.cc: Same.
	* include/bits/ostream.tcc: Same.
	* src/ios.cc (ios_base::imbue): Remove here as well.

	* testsuite/22_locale/num_get.cc: New file.
	* testsuite/22_locale/num_get_members_char.cc: New file.
	* testsuite/22_locale/num_get_members_wchar_t.cc: New.
	* testsuite/22_locale/numpunct_members_wchar_t.cc: New file.
	* testsuite/22_locale/num_put.cc: New file.
	* testsuite/22_locale/num_put_members_char.cc: New file.
	* testsuite/22_locale/num_put_members_wchar_t.cc: New file.
	* testsuite/27_io/ostream_inserter_arith.cc: Fix.
	* testsuite/27_io/istream_extractor_arith.cc: Fix.

From-SVN: r47397
2001-11-28 04:07:11 +00:00
Joseph Myers c5504edb75 ChangeLog, [...]: Fix spelling errors.
* ChangeLog, docs/doxygen/maint.cfg.in, docs/doxygen/user.cfg.in,
	docs/doxygen/doxygroups.cc, docs/doxygen/Intro.3,
	docs/html/17_intro/BUGS, docs/html/17_intro/C++STYLE,
	docs/html/17_intro/CHECKLIST, docs/html/17_intro/DESIGN,
	docs/html/17_intro/howto.html, docs/html/17_intro/porting.html,
	docs/html/17_intro/porting.texi, docs/html/18_support/howto.html,
	docs/html/19_diagnostics/howto.html, docs/html/20_util/howto.html,
	docs/html/21_strings/howto.html,
	docs/html/23_containers/howto.html,
	docs/html/26_numerics/howto.html, docs/html/27_io/howto.html,
	docs/html/27_io/binary_iostreams_kuehl.txt,
	docs/html/ext/sgiexts.html, docs/html/faq/index.html,
	docs/html/faq/index.txt, testsuite/24_iterators/iterator.cc,
	include/bits/basic_file.h, include/bits/locale_facets.h,
	include/bits/locale_facets.tcc, include/bits/std_sstream.h,
	include/ext/ropeimpl.h, include/ext/stl_rope.h,
	libsupc++/tinfo.cc, libsupc++/cxxabi.h, libsupc++/typeinfo,
	libsupc++/eh_throw.cc, acinclude.m4, aclocal.m4, configure,
	configure.target, ChangeLog-2000: Fix spelling errors.

From-SVN: r47291
2001-11-23 16:29:02 +00:00
Paolo Carlini 2dc8835ac8 ios_manip_fmtflags.cc: Fix for non-interactive output.
2001-11-01  Paolo Carlini  <pcarlini@unitus.it>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ios_manip_fmtflags.cc: Fix for non-interactive
	output.
	* include/bits/locale_facets.tcc (num_put::do_put(bool)): Fix.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r46709
2001-11-02 03:48:09 +00:00
Benjamin Kosnik 013e8d9783 locale_facets.tcc (time_get::_M_extract_name): Fix.
2001-10-25  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/4542
	* include/bits/locale_facets.tcc (time_get::_M_extract_name): Fix.

From-SVN: r46529
2001-10-26 06:23:47 +00:00
Benjamin Kosnik 1403221a88 locale_facets.tcc (collate::do_transform): Fix.
2001-10-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (collate::do_transform): Fix.

From-SVN: r46500
2001-10-25 22:56:07 +00:00
Brendan Kehoe ba317c5236 [multiple changes]
2001-08-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/std_complex.h: Default initialize second argument
	of polar to 0, as specified in Library DR #79

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/stl_raw_storage_iter.h (operator=): Fix to call
	_Construct instead of construct.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/basic_string.tcc (find_first_not_of): Take out check for
        __n being non-zero, since the standard does not mandate that.
        e.g., a search for "" in "" should yield position 0, not npos.
        (find_last_not_of): Likewise.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/stl_bvector.h (vector<bool>::_M_range_check): Fix
	to throw out_of_range, not range_error, thus sayeth $23.1.1.13.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/stl_iterator.h (reverse_iterator::current): Rename
        member from _M_current, and change all uses; thus sayeth $24.4.1.1.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/stl_algo.h (partial_sort): Add missing `>' on the
        template parameter _ValueType.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

	* include/bits/std_limits.h: Clean up extra semicolons.
        * include/bits/locale_facets.h: Likewise.
        * include/bits/type_traits.h: Likewise.

2001-10-19  Brendan Kehoe  <brendan@zen.org>

        * include/bits/localefwd.h (locale::combine): Add const for lib DR 14.
        * include/bits/locale_facets.tcc (locale::combine): Likewise.

From-SVN: r46353
2001-10-19 18:39:00 +00:00
Benjamin Kosnik da5c0f6ef5 time_members_gnu.h: Remove.
2001-10-02  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/time_members_gnu.h: Remove.
	* config/locale/time_members_generic.h: Remove.
	* config/locale/time_members_gnu.cc (__timepunct::_M_put_helper): Add.
	* config/locale/time_members_generic.cc: Same.
	* include/bits/locale_facets.h: Add data members.
	(__timepunct::_M_put_helper): Change signature.
	(__timepunct::_M_date_formats): Same.
	(__timepunct::_M_time_formats): Same.
	(__timepunct::_M_ampm): Add.
	(__timepunct::_M_date_time_formats): Add.
	(time_get::_M_extract_via_format): Add.
	(time_get::_M_extract_time): Change to...
	(time_get::_M_extract_num): ... this, modify signature.
	* include/bits/locale_facets.tcc (time_get::do_get_year): Fix.
	(time_get::do_get_time): Fix.
	(time_get::do_get_date): Fix.

	* acinclude.m4: Remove CTIME_H.
	* aclocal.m4: Regenerate.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.
	* configure: Regenerate.

	* testsuite/22_locale/time_get_members_char.cc: Fix.
	* testsuite/22_locale/time_get_members_wchar_t.cc: Add.
	* testsuite/22_locale/time_put_members_wchar_t.cc: Add.

From-SVN: r45966
2001-10-02 18:44:50 +00:00
Benjamin Kosnik 1ab656771a time_members_gnu.h (__timepunct::_M_get_helper): Add.
2001-09-28  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/time_members_gnu.h (__timepunct::_M_get_helper): Add.
	(__timepunct::_M_put_helper): Add.
	* config/locale/time_members_generic.h: Same.
	* include/bits/locale_facets.h (__match_parallel): Remove. Format.
	(__timepunct): Add data members.
	(__timepunct::_M_days): Add.
	(__timepunct::_M_days_abbreviated): Add.
	(__timepunct::_M_months): Add.
	(__timepunct::_M_months_abbreviated): Add.
	(__timepunct::_M_initialize_timepunct): Add.
	* include/bits/locale_facets.tcc: Same.
	* src/locale-inst.cc: Remove instantiations for __match_parallel.
	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_CC.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/22_locale/time_put_members_char.cc: Mark XFAIL.
	* testsuite/22_locale/time_put_members_char.cc (test01): New file.
	* testsuite/22_locale/time_get.cc: New file.

From-SVN: r45868
2001-09-28 23:44:48 +00:00
Phil Edwards 77cd227ec3 howto.html: Add anchor name.
2001-09-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/20_util/howto.html:  Add anchor name.
	* docs/html/23_containers/howto.html:  Line wrapping, another link.
	* docs/html/25_algorithms/howto.html:  Another note.

	* docs/html/ext/howto.html:  Link to SGI extensions.  List DRs and
	link to them...
	* docs/html/ext/lwg-active.html:  ...in this new file (from R19),
	* docs/html/ext/lwg-defects.html:  and this new file (from R19).
	* docs/html/ext/sgiexts.html:  New file.  Mention SGI extensions
	carried over to libstdc++-v3.
	* docs/html/faq/index.html:  Link to SGI extensions.  Mention the
	"missing .." pseudobug.
	* docs/html/faq/index.txt:  Regenerate.

	* include/bits/ios_base.h:  DR-related comment cleanup.
	* include/bits/istream.tcc:  Likewise.
	* include/bits/locale_facets.h:  Likewise.
	* include/bits/locale_facets.tcc:  Likewise.
	* include/bits/ostream.tcc:  Likewise.
	* include/bits/std_bitset.h:  Likewise.
	* include/bits/std_iosfwd.h:  Likewise.
	* include/bits/std_istream.h:  Likewise.
	* include/bits/std_ostream.h:  Likewise.
	* include/bits/std_streambuf.h:  Likewise.
	* include/bits/stl_pair.h:  Likewise.
	* include/bits/streambuf_iterator.h:  Likewise.

	* include/bits/std_map.h:  Remove unused header inclusion guard
	_CPP_BITS_STL_TREE_H from around bits/stl_tree.h.
	* include/bits/std_set.h:  Likewise.

	* include/bits/stl_function.h:  Doxygen markup.
	* docs/doxygen/doxygroups.cc:  New file, specifying module grouping.
	* libsupc++/typeinfo:  Doxygen markup tweak.

From-SVN: r45816
2001-09-25 23:51:17 +00:00
Benjamin Kosnik 5b66fcf9a9 [multiple changes]
2001-09-20  Scott Johnston <scott@accom.com>
	    Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>

	* include/backward/alloc.h: Conditionally define malloc_alloc
	* testsuite/backward/header_deque_h.cc: New file.

2001-09-20  Sylvain Pion <Sylvain.Pion@sophia.inria.fr>

	* libstdc++-v3/include/bits/locale_facets.tcc (money_put::do_put):
        change variable name so that it works with -fno-for-scope.

From-SVN: r45704
2001-09-20 09:48:24 +00:00
Benjamin Kosnik e08138aae3 Implement std::time_put.
2001-09-19  Benjamin Kosnik  <bkoz@redhat.com>

	Implement std::time_put.
	* include/bits/locale_facets.h: Include time_members.h.
	(__timepunct): New.
	(time_put): Implement.
	* include/bits/locale_facets.tcc (do_put): Put generic versions here.
	* include/bits/localefwd.h: Bump number of facets.
	* config/locale/time_members_generic.h: New file.
	* config/locale/time_members_gnu.h: New file.
	* config/locale/c_locale_generic.h: Include clocale.
	* src/locale-inst.cc: Add use_facet instantiations for __timepunct.
	* src/locale.cc: Add __timepunct initializations.
	* src/localename.cc (locale::_Impl::_Impl(string, size_t)): Same.
	* include/Makefile.am (stamp-target): Add time_members.h.
	* include/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_H.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/22_locale/time_put.cc: New file.
	* testsuite/22_locale/time_put_members_char.cc: New file.

	* docs/html/22_locale/locale.html: Add note.

From-SVN: r45702
2001-09-20 08:30:01 +00:00
Benjamin Kosnik 96bbfafed8 locale_facets.tcc: Conditionalize use of strtold.
2001-09-14  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc: Conditionalize use of strtold.

From-SVN: r45591
2001-09-14 07:43:36 +00:00
Benjamin Kosnik fb67885447 Implement std::money_get.
2001-09-13   Benjamin Kosnik  <bkoz@redhat.com>

	Implement std::money_get.
	* include/bits/locale_facets.tcc (money_get::do_get): Implement.
	* include/bits/locale_facets.h (money_get): Correct signatures.
	* testsuite/22_locale/money_get.cc: New file.
	* testsuite/22_locale/money_get_members_char.cc: New file.

	* include/bits/locale_facets.tcc (__verify_grouping): New
	function. Consolidate num_get and money_get group checking into
	one function.
	(money_get): Use it.
	* src/locale.cc (num_get::_M_extract): Use it.
	* src/locale-inst.cc: Add instantiation.

From-SVN: r45585
2001-09-13 23:21:25 +00:00
Benjamin Kosnik 69971cd850 Implement std::money_put.
2001-09-09  Benjamin Kosnik  <bkoz@redhat.com>

	Implement std::money_put.
	* include/bits/locale_facets.h
	(moneypunct::_M_initialize_moneypunct): Split up specializations
	to account for _Intl.  More grody hacking to get around the
	ill-considered use of const bool as a template parameter.
	* config/locale/moneypunct_members_gnu.cc: And here.
	* config/locale/moneypunct_members_generic.cc: And here.
	* testsuite/22_locale/moneypunct_members_char.cc: Add tests.
	* testsuite/22_locale/moneypunct.cc: Add tests.
	* testsuite/22_locale/money_put_members_wchar_t.cc: New file.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc: New file.

	* src/locale.cc (money_base::_S_construct_pattern): Move into
	gnu-specific file.
	* config/locale/moneypunct_members_gnu.cc: Add here.
	* config/locale/moneypunct_members_generic.cc: Add generic version
	here.

	* include/bits/locale_facets.tcc (money_put::do_put): Move member
	function definitions here.
	* include/bits/locale_facets.h (money_put): Implement.
	* src/locale-inst.cc: Add use_facet instantiations for moneypunct.
	Correct money_get, money_put instantiations.
	* src/locale.cc (money_base::_S_construct_pattern): Handle case
	where __posn == 0.
	* testsuite/22_locale/money_put_members_char.cc: Add tests.

From-SVN: r45496
2001-09-10 01:00:27 +00:00
Vladimir A Merzliakov b36d8fb47a locale_facets.tcc (collate::do_transform): Add typename.
2001-08-18  Vladimir A Merzliakov  <wanderer@rsu.ru>

	* include/bits/locale_facets.tcc (collate::do_transform): Add typename.

From-SVN: r45016
2001-08-19 00:29:01 +00:00
Benjamin Kosnik ea0c0b6e1b Implement std::collate.
2001-08-17  Benjamin Kosnik  <bkoz@redhat.com>

	Implement std::collate.
	* config/locale/collate_specializations_gnu.cc: Add here, implement in
	MT-safe way.
	* config/locale/collate_specializations_generic.cc: Add here, but
	in a less sophisticated manner.
	* include/bits/locale_facets.tcc (collate): Add generic definition.
	* include/bits/locale_facets.h (~collate): Mark virtual.
	(collate::_M_compare_helper): New.
	(collate::_M_transform_helper): New.
	* src/locale.cc: Remove unnecessary specializations.
	* src/string-inst.cc: Tweak instantiation of ctors.

	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Do configury for collate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am (sources): Add collate.cc.
	* src/Makefile.in: Regenerate.

	* testsuite/22_locale/collate_byname.cc: New.
	* testsuite/22_locale/collate.cc: New file.
	* testsuite/22_locale/collate_char_members.cc: New file.
	* testsuite/22_locale/collate_wchar_t_members.cc: New file.

From-SVN: r44996
2001-08-18 02:53:13 +00:00
Benjamin Kosnik 1f46fc8e90 localefwd.h: Format.
2001-07-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/localefwd.h: Format.
	* include/bits/locale_facts.tcc (locale::combine): Adjust.
	* src/locale.cc (locale::locale::(_Impl)): Don't call
	_M_add_reference.
	(locale::facet::_M_remove_reference): Simplify.
	* src/globals.cc (locale_impl_c): New. Format.
	(locale_c): New.
	* src/ios.cc (ios_base::Init::Init): Increment _S_ios_base_init last.

From-SVN: r43747
2001-07-04 02:39:02 +00:00
Benjamin Kosnik 213c2316b6 locale.cc (locale::locale(const char*)): Make sure global locales are initialized.
2001-07-02  Benjamin Kosnik  <bkoz@redhat.com>

	* src/locale.cc (locale::locale(const char*)): Make sure global
	locales are initialized.
	* include/bits/locale_facets.tcc (locale::combine): Refcout should
	be zero, not one as it's return-by-value.
	* testsuite/27_io/ios_base_callbacks.cc (test01): Don't check for
	named locales here.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): Instead, check
	for it here.
	(test02): Add test.
	* libsupc++/eh_alloc.cc: Use climits, not limits.h.

From-SVN: r43713
2001-07-02 23:08:28 +00:00
Benjamin Kosnik 13f83598b3 locale_facets.tcc (locale::combine): Clone _Impl.
2001-06-29  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.tcc (locale::combine): Clone _Impl.
	before replacing facet.
	* include/bits/localefwd.h (locale::_Impl::_M_remove_reference):
	Correct decrement.
	* src/localename.cc (locale::_Impl): Correct ctor initialization
	lists. Initialize ref count with one. Simplify.
	* src/locale.cc: Add comment.
	* testsuite/22_locale/numpunct.cc (test01): Add derivation test.
	* testsuite/22_locale/numpunct_char_members.cc (test01): Add tests.
	* testsuite/22_locale/members.cc (test02): Fix.

From-SVN: r43661
2001-06-30 04:35:49 +00:00
Benjamin Kosnik d27bba5e57 sbuf_iter.h: Change to..
2001-06-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/sbuf_iter.h: Change to..
	* include/bits/streambuf_iterator.h: This.
	* include/bits/stl_iterator.h: Take out of here...
	* include/bits/stream_iterator.h: Add.
	* src/Makefile.am (base_headers): Add streambuf_iterator,
	stream_iterator.h
	* src/Makefile.in: Regenerate.
	* include/bits/std_string.h: Adjust includes.
	* include/bits/basic_ios.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/std_iosfwd.h: Same.

	* include/bits/std_iterator.h: Add istream, ostream includes.
	* include/bits/stl_iterator.h: Tweak.
	* testsuite/24_iterators/ostream_iterator.cc: Add test.
	* testsuite/24_iterators/istream_iterator.cc: Same.
	* testsuite/23_containers/multiset.cc: Add iterator include.

From-SVN: r43592
2001-06-26 21:22:57 +00:00
Benjamin Kosnik 61c7194612 acinclude.m4 (GLIBCPP_ENABLE_C99): Add stdio.h checking.
2001-06-10  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_C99): Add stdio.h checking.
	Add checking for strtof, _Exit in stdlib.h
	* aclocal.m4: Regenerate.
	* configure.in: Regenerate.
	* include/c_std/bits/std_cstdio.h: Alphabetize lists.
	(snprintf): Put C99 functions into __gnu_cxx namespace.
	(vfscanf): Same.
	(vscanf): Same.
	(vsnprintf): Same.
	(vsscanf): Same.
	* include/c_std/bits/std_cstdlib.h: Alphabetize lists. Put undefs
	for C99 functions within _GLIBCPP_USE_C99 guard.
	(_Exit): Same.
	(strtof): Same.
	(strtold): Same.
	* include/bits/locale_facets.tcc: Check if C99 is enabled.
	* include/c_std/bits/std_cwchar.h (__gnu_cxx): Put undefs within
	C99 guard.
	* include/c_std/bits/cmath.tcc: Formatting tweak.
	* include/c_std/bits/std_cmath.h: Same.

From-SVN: r43161
2001-06-10 23:26:34 +00:00
Benjamin Kosnik bfa1e6b11b acconfig.h (_GLIBCPP_BUGGY_FLOAT_COMPLEX): Remove.
2001-05-30  Benjamin Kosnik  <bkoz@redat.com>

	* acconfig.h (_GLIBCPP_BUGGY_FLOAT_COMPLEX): Remove.
	(_GLIBCPP_BUGGY_COMPLEX): Remove.
	* config.h.in: Regenerate.
	* acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT): Remove.
	* aclocal.m4: Regenerate.
	* configure.in: Don't call it.
	* configure: Regenerate.

	libstdc++/2970
	* src/complex_io.cc (operator<<(ostream&, const complex&): Fix.
	* testsuite/26_numerics/complex_inserters_extractors.cc (test01):
	New test.

	libstdc++/2985
	* include/bits/std_complex.h: Include sstream. Put definitions for
	complex inserters and extractors here, and remove them from...
	* src/complex_io.cc: ...here.
	* include/bits/basic_ios.h (basic_ios::__numput_type): Add _Traits
	parameter.
	(basic_ios::__numget_type): Same.
	* include/bits/std_istream.h: Same.
	* include/bits/std_ostream.h: Same.
	* include/bits/sbuf_iter.h (ostreambuf_iterator): Fix typo in base
	class iterator template arguments.
	* src/locale-inst.cc: Add explicit has_facet instantiations.
	* include/bits/basic_ios.h (basic_ios::_M_get_fctype_ios): Remove.
	(_M_get_fnumput): Remove.
	(_M_get_fnumget): Remove.
	(basic_ios::_M_check_facet): New function.
	(basic_ios::_M_cache_facets): New function.
	* include/bits/basic_ios.tcc: Definition for _M_cache_facets.
	(basic_ios::imbue): Call _M_cache_facets.
	(basic_ios::init): Same.
	* include/bits/istream.tcc: Format, use _M_check_facet.
	* include/bits/ostream.tcc: Same.
	* include/bits/locale_facets.tcc (__output_float): Change
	signature, add _Traits.
	* testsuite/26_numerics/complex_inserters_extractors.cc (test02):
	New test.

From-SVN: r42743
2001-05-31 12:14:56 +00:00
Benjamin Kosnik 39003c9902 std_fstream.h (basic_filebuf): Change signature.
2001-05-07  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/2523
	* include/bits/std_fstream.h (basic_filebuf): Change signature.
	* include/bits/fstream.tcc (basic_filebuf): Change bool argument
	to int_type, pass in buffer size info.
	* include/bits/std_streambuf.h (_M_is_indeterminate): Check for
	unbuffered situation.
	(underflow): Remove codecvt bits for the time being.
	* include/bits/istream.tcc (istream::sentry): Avoid sputbackc call.
	* include/bits/locale_facets.tcc (_M_extract): Cache dereference
	values from iterators, clean.
	* src/locale.cc: Ditto.
	* include/bits/sbuf_iter.h: Format.
	* src/ios.cc: Explicitly pass in buffer sizes at creation time.
	* testsuite/27_io/narrow_stream_objects.cc: Add tests.
	* testsuite/27_io/filebuf.cc: Tweaks.
	* testsuite/27_io/filebuf_members.cc: Tweaks.

From-SVN: r41908
2001-05-08 03:07:56 +00:00
Benjamin Kosnik 69302d8b5e std_streambuf.h: Remove cached locale facets.
2001-03-14  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/2020
	* include/bits/std_streambuf.h: Remove cached locale facets.
	(basic_streambuf::_M_buf_fctype): Remove.
	(basic_streambuf::~basic_streambuf): Remove here.
	(basic_streambuf::basic_streambuf): Same.
	(basic_streambuf::imbue): Same.
	* include/bits/fstream.tcc (filebuf::imbue): Remove _M_buf_fctype.
	* include/bits/std_fstream.h (basic_filebuf::_M_fcvt): Remove.
	(basic_filebuf::~basic_filebuf()): Remove here.
	* include/bits/fstream.tcc (basic_filebuf::basic_filebuf): Same.
	(basic_filebuf::imbue): Same.
	* include/bits/localefwd.h (_Count_ones): Remove.
	(locale::_S_num_categories): Just use 6, since this doesn't
	actually change, ever.
	* include/bits/locale_facets.tcc (has_facet): Simplify.
	(use_facet): Same.
	* testsuite/27_io/filebuf.cc (test06): Add tests.

From-SVN: r40472
2001-03-14 20:46:34 +00:00
Benjamin Kosnik db1d582c81 Fixups for -fno-for-scope
2001-03-12  Benjamin Kosnik  <bkoz@redhat.com>

	Fixups for -fno-for-scope
	* include/bits/locale_facets.tcc (__match_parallel): Fixup.
	* src/valarray-inst.cc (__gslice_to_index): Same.

From-SVN: r40429
2001-03-12 21:42:57 +00:00
Benjamin Kosnik 6259cad9af tests_flags.in (CXXFLAGS): Add -rpath to gcc build dir.
2001-02-22  Benjamin Kosnik  <bkoz@redhat.com>

	* tests_flags.in (CXXFLAGS): Add -rpath to gcc build dir.

	* include/bits/codecvt.h: Use alloca instead of __extension__ for
	the time being.
	* include/bits/ostream.tcc: Same.
	* include/bits/std_ostream.h: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/locale_facets.tcc: Add typename.
	* include/bits/c++config (_GLIBCPP_FULLY_COMPLIANT_HEADERS): Enable.

From-SVN: r39991
2001-02-23 07:12:03 +00:00
Benjamin Kosnik e2c094827c Add support for -fno-exceptions.
2001-02-15  Benjamin Kosnik  <bkoz@redhat.com>

	Add support for -fno-exceptions.
	* include/bits/exception_support.h: Remove.
	* include/bits/basic_string.h: Remove exception_support.
	(string::_M_check): Replace __OUTOFRANGE with __throw_out_of_range.
	(string::at): Same.
	(string::substr): Same.
	* include/bits/basic_string.tcc (string::reserve): Replace
	__LENGTHERROR with __throw_length_error.
	(string::_S_create): Same.
	(string::resize): Same.
	(string::_M_replace): Same.
	(string::replace): Same.
	(string::copy): Replace __OUTOFRANGE with __throw_out_of_range.
	(string::compare): Same.
	* include/bits/stl_vector.h: Remove exception_support.
	* src/Makefile.am (base_headers): Remove here.
	* src/Makefile.in: Regenerate.

	* include/bits/stl_range_errors.h: Remove.
	* include/bits/stl_deque.h: Use __throw_range_error.
	* include/bits/std_deque.h: Include functexcept.h.
	* include/bits/std_vector.h: Same.
	* src/Makefile.am (base_headers): Remove here.
	* src/Makefile.in: Regenerate.
	* include/ext/stl_bvector.h (class __BVECTOR): Use __throw_range_error.
	* include/ext/bvector: Remove stl_range_errors.h

	* include/bits/c++config (_GLIBCPP_USE_EXCEPTIONS): Remove.

	* include/bits/functexcept.h: New file.
	* src/functexcept.cc: New file. Definitions for function-based
	exception routines.
	* src/Makefile.am (sources): Add functexcept.cc.
	* src/Makefile.in: Regenerate.

	* include/bits/stl_config.h (__STL_USE_EXCEPTIONS): Wrap with
	__EXCEPTIONS.

	* include/bits/localefwd.h: Include functexcept.h.
	* include/bits/std_iosfwd.h: Same.

	* include/bits/basic_ios.h: Use __throw_ios_failure instead of
	throw basic_ios::failure.
	* include/bits/fstream.tcc (filebuf::_M_allocate_buffers):
	Use __throw_exception_again.
	(filebuf::_M_filebuf_init): Same.
	* include/bits/streambuf.tcc (__copy_streambufs): Same.
	* include/bits/ostream.tcc (ostream::operator<<): Same.
	* include/bits/istream.tcc (istream::operator>>): Same.
	* include/bits/basic_string.tcc (string::_M_mutate): Same.
	(string::_S_construct): Same.
	(string::_M_clone): Same.
	* include/bits/locale_facets.tcc (use_facet(const locale&)): Use
	__throw_bad_cast.
	(num_put<_CharT, _OutIter>::do_put): Use __throw_exception_again.
	* src/localename.cc (locale::_Imp::_Imp(const _Impl&, size_t): Use
	__throw_exception_again.
	(locale::_Imp::_Imp(string, size_t): Same.
	(locale::_Imp::_M_replace_facet): Use __throw_runtime_error.
	* src/locale.cc (locale::_M_coalesce): Use __throw_exception_again.
	(locale::locale(const char*)): Use __throw_runtime_error.
	(locale::classic): Use __throw_exception_again.
	(locale::_S_normalize_category): Use __throw_runtime_error.

	* src/stdexcept.cc: Remove cruft.

	* libsupc++/exception_defines.h: New file.
	* libsupc++/new_opnt.cc: Include exception_defines.h.
	* libsupc++/vec.cc: Same.
	(__cxa_vec_new2): Use __throw_exception_again.
	(__cxa_vec_new3): Same.
	(__cxa_vec_ctor): Same.
	(__cxa_vec_delete3): Same.
	(__cxa_vec_cctor): Same.
	(__cxa_vec_delete2): Same.
	(__cxa_vec_dtor): Same.
	* libsupc++/exception_support.cc: Include exception_defines.h. Only
	compile exception-handling bits if __EXCEPTIONS is defined.
	Remove old ABI support.
	* libsupc++/new_op.cc (new): Include exception_defines.h. Use
	std::__throw_bad_alloc() instead of throw bad_alloc.
	* libsupc++/Makefile.am: Add exception_defines.h.
	* libsupc++/Makefile.in: Reformat.
	* libsupc++/*: Format.

From-SVN: r39730
2001-02-16 00:44:44 +00:00
Benjamin Kosnik 72ed283692 acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Deal with library install locations too.
2001-02-06  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Deal with library
	install locations too.
	* aclocal.m4: Regeneate.
	* configure.in: Remove USE_LIBDIR.
	* configure: Regenerate.
	* src/Makefile.am (toolexecdir): Simplify, use
	glibcpp_toolexecdir, glibcpp_toolexeclibdir.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	* libsupc++/Makefile.in: Regenerate.

	* src/Makefile.am: Just remove special rules for locale-inst.cc and
	misc-inst.cc as no longer necessary.

	Follow C++STYLE for naming non-static functions.
	* include/bits/ostream.tcc (_S_pad_char): Not static, rename to
	__pad_char.
	* include/bits/streambuf.tcc: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/locale_facets.tcc (_S_pad_numeric): To __pad_numeric.
	(_S_output_float): To __output_float.
	* include/bits/std_streambuf.h (_S_copy_streambufs): To
	__copy_streambufs.
	* include/bits/locale_facets.tcc (_S_build_float_format): To
	__build_float_format.
	(_S_format): To __output_integer.
	(_S_fill): To __pad.
	* src/locale.cc: Same.
	* src/misc-inst.cc: Fix formatting. Fix signature for wchar_t. Correct
	names.
	* include/bits/locale_facets.tcc (_S_group_digits): To
	__group_digits.
	* src/locale-inst.cc: Fixup names. Add use_facet instantiations
	for collate, numpunct.

From-SVN: r39508
2001-02-07 01:54:21 +00:00
Mark Mitchell bf6adbe2c6 locale_facets.tcc: Remove `static' keyword on function definitions.
* include/bits/locale_facets.tcc: Remove `static' keyword on
	function definitions.
	* include/bits/std_streambuf.h: Likewise.
	* src/Makefile.am: Remove use of -fimplicit-templates.
	* src/Makefile.in: Regenerated.
	* src/locale-inst.cc: Explicitly instantiate more functions.
	* src/msic-inst.cc: Likewise.
	* src/string-inst.cc: Likewise.

From-SVN: r39481
2001-02-06 06:36:18 +00:00
Benjamin Kosnik 0214010c60 Preliminary named locales.
2001-01-29  Benjamin Kosnik  <bkoz@redhat.com>

	Preliminary named locales.
	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro.
	* aclocal.m4: Regenerate.
	* configure.in: Use it.
	* configure: Regerate.
	* src/Makefile.am (sources): Add c++locale.cc.
	(build_headers): Add c++locale.h.
	* src/Makefile.in: Regenerate.
	* config/c_locale_gnu.h: New file.
	* config/c_locale_gnu.cc: New file. Non-inline member functions
	for named locales, gnu-specific.
	* config/c_locale_generic.h: New file.
	* config/c_locale_generic.cc: New file. Non-inline member
	functions for named locales, generic version.
	* docs/html/configopts.html: Add documentation on new options.

	* include/bits/locale_facets.h (class _Messages): Remove.
	(class _Moneypunct): Remove.
	* src/locale-inst.cc: Remove.

	* include/bits/locale_facets.h (class _Collate): Remove.
	* src/locale-inst.cc (std): Remove.
	* src/locale.cc: And here.

	* include/bits/localefwd.h (locale::_M_coalesce): New
	function. Correctly put together multi-name locales.
	(_Impl(const _Impl&, category, size_t)): Remove.

	* include/bits/localefwd.h (locale::_Impl): Remove _M_construct_*
	member functions.
	(_M_normalize_category_names): Remove.
	(_M_replace_categories): Fix.

	* src/localename.cc (locale::_Impl::_M_construct_collate): Remove.
	(locale::_Impl::_M_construct_ctype): Remove.
	(locale::_Impl::_M_construct_monetary): Remove.
	(locale::_Impl::_M_construct_numeric): Remove.
	(locale::_Impl::_M_construct_time): Remove.
	(locale::_Impl::_M_construct_messages): Remove.

	* include/bits/locale_facets.h (_Bad_use_facet): Remove.
	(_Use_facet_failure_handle): Remove.
	* src/locale.cc: Remove definitions.
	* src/locale-inst.cc: And here.

	* testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests.

	* src/localename.cc (locale::facet::_S_create_c_locale): Properly
	create and error-check underlying locale object.
	(locale::facet::_S_destroy_c_locale): Add, take care of properly
	tearing down underlying locale object.
	* include/bits/localefwd.h (locale::facet): Declare.
	* testsuite/22_locale/members.cc: Don't test "fr_FR" locale for
	correctness, as glibc apparently has incorrect info in it. Test
	with it when it works again.....

	* include/bits/localefwd.h (locale::_Impl::__vec_string):
	Remove. Number of categories is fixed at six, so just simplify and
	make this an array of strings.
	(locale::_Impl::_M_has_name): Remove.
	(locale::_Impl::_M_name): Remove.
	(locale::_Impl::_M_category_names): Turns into...
	(locale::_Impl::_M_names): ...this.
	(locale::_Impl::_M_has_same_name()): New function.
	* src/localename.cc (locale::_Impl::~_Impl()): Remove here.
	(locale::_Impl::_Impl(size_t __refs, string __str)): Simplify
	signature.
	* src/locale.cc (locale::name()): Construct mangled name
	accurately reflecting combined locale categories.

	* src/locale.cc (locale::classic()): Don't initialize here.
	* src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t
	__refs, bool __has_name, string __str): Do it here.

	* include/bits/localefwd.h: _S_categories_num to
	_S_num_categories. _S_facets_num to _S_num_facets.
	(locale:🆔:id()): Explicitly set _M_index to zero.
	* src/locale.cc: Same.

	* src/locale.cc: (locale::locale(const char*)): Construct named
	locales uniquely.

	* src/locale.cc: Remove numpunct_byname ctors.
	* testsuite/22_locale/numpunct_byname.cc: New file.
	* testsuite/22_locale/numpunct.cc: New file.

	* include/bits/localefwd.h (class locale): Change data members to
	protected, from private.
	(_Impl::_M_get_c_locale): Add member function.
	(locale::facet::_M_get_global_impl()): Add member function.
	* include/bits/locale_facets.h (numpunct::_M_init): Change to take
	a __c_locale pointer.
	(numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for
	named locales.
	* testsuite/22_locale/members.cc: New file, test name and combine.

	* include/bits/locale_facets.h (class numpunct): Remove class
	_Punct and _Numpunct. Rewrite class numpunct to be correct for
	named locales.
	* include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add.
	* src/localename.cc (_Impl::~_Impl()): Call __frelocale.
	(_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale.
	* src/locale-inst.cc: Remove _Numpunct, _Punct instantiations.
	* testsuite/22_locale/numpunct_char_members.cc: New file.

From-SVN: r39347
2001-01-30 09:18:51 +00:00
Benjamin Kosnik 0a31609b5a Attempt to make locale visible in gdb.
2000-12-22  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	Attempt to make locale visible in gdb.
	* include/bits/std_locale.h: Remove codecvt.h include.
	* include/bits/locale_facets.h: Add here, after ctype decls.
	* include/bits/codecvt.h: Remove std namespace, as assumed to be
	in std now.

	* include/bits/locale_facets.h: Consistently move generic static
	member definitions directly after generic facet declarations.
	* include/bits/locale_facets.tcc: From here.

	* src/locale.cc: Organize locale::id static definitions for
	required facets.
	* src/codecvt.cc (codecvt<char...>): Remove locale::id definition.
	(codecvt<wchar_t...>): Same.
	* src/localename: And here.

	* include/bits/localefwd.h (_Count_ones): Change _S_count to _M_count.
	Same for _M_halfcount.
	(std): make locale::_Impl protected. CHANGE BACK

From-SVN: r38449
2000-12-22 11:03:33 +00:00
Loren J. Rittle 5af655ccee locale_facets.tcc (num_get<_CharT, [...]): Add missing typename keyword.
* include/bits/locale_facets.tcc (num_get<_CharT,
          _InIter>::do_get(...)): Add missing typename keyword.

From-SVN: r37513
2000-11-17 05:38:04 +00:00
Phil Edwards dfb1d76f1c configure.in: Check for gconv.h.
2000-10-25  Phil Edwards  <pme@sources.redhat.com>

        * configure.in:  Check for gconv.h.
        * libio/wfileops.c:  Wrap gconv.h in HAVE_GCONV_H.

        * config/c_io_libio_codecvt.c:  Change __mbstate_t to __c_mbstate_t.
        * libio/_G_config.h:  And here.
        * libio/iofwide.c:  And here.
        * libio/libio.h:  And here.

        * config/os/solaris/solaris2.7/bits/ctype_noninline.h:  Remove
          exception specification to match declaration.
        * include/bits/locale_facets.tcc:  Include bits/std_clocale.h.

From-SVN: r37053
2000-10-25 16:54:47 +00:00
Benjamin Kosnik 697649eab1 Makefile.am (exception): Change exception.cc to exception_support.cc.
2000-10-18   Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am (exception): Change exception.cc to
	exception_support.cc.
	(CXXLINK): Remove bogus --tag CC.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/exception.cc: Move to...
	* libsupc++/exception_support.cc: ...here.

	* src/Makefile.am: Remove bogus --tag CC.
	* src/Makefile.in: Regenerate.

	* include/bits/locale_facets.tcc (use_facet): Simplify.
	* include/bits/locale_facets.h (use_facet<ctype<char> >): Correct
	use_facet declaration. Replace 'const ctype<T>' with ctype<T>.
	(use_facet<ctype<wchar_t> >): Same.
	* src/locale-inst.cc: Remove explicit instantiation.
	* src/locale.cc: Correct signature here too.
	(_Bad_use_facet::what()): Correct error string.
	* include/bits/localefwd.h: Correct comment.

	* mkcheck.in (C_DIR): Change libsupc++/include to libsupc++.

From-SVN: r36943
2000-10-18 23:26:22 +00:00
Benjamin Kosnik 725dc051ca include: New directory.
2000-10-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* include: New directory.
	* include/backward: New directory.
	* include/bits: New directory.
	* include/ext: New directory.
	* include/std: New directory.
	* include/*/*: Populate.

	* src/complex.cc: Adjust include of mathconf.

	* mkc++config (BASE_H): Add include.

	* src/Makefile.am: Support for topleve sources include directory.
	(INCLUDES): Add LIBMATH_INCLUDE.
	* src/Makefile.in: Regenerate.
	* math/Makefile.am (INCLUDES): Append /include.
	* math/Makefile.in: Regenerate.
	* libio/Makefile.am (INCLUDES): Add glibcpp_includedir.
	* libio/Makefile.in: Regenerate.

From-SVN: r36723
2000-10-05 11:27:02 +00:00