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
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
Paolo Carlini
d407831d09
locale-inst.cc: Do not include <cassert>.
...
2003-02-17 Paolo Carlini <pcarlini@unitus.it>
* src/locale-inst.cc: Do not include <cassert>.
* src/locale.cc: Likewise.
From-SVN: r63009
2003-02-17 21:42:05 +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
aa53f832ac
localefwd.h (class locale): Add static member _S_num_extra_categories...
...
2002-10-08 Paolo Carlini <pcarlini@unitus.it>
Benjamin Kosnik <bkoz@redhat.com>
* include/bits/localefwd.h (class locale): Add static member
_S_num_extra_categories, encoding the number of additional
categories.
Change _S_num_categories to _S_categories_size.
(class locale::_Impl): Add _M_c_cats.
(class locale::_Impl::_M_names): Change to array of chars.
(class locale::_Impl::_M_check_same_name): Use
_S_extra_categories_size, tweak.
(locale::locale(const locale&, _Facet*)): Ditto.
* src/locale.cc (locale::locale(const char* )): Rewrite to deal
with the environment in a POSIX-compliant way while being thread
safe.
(locale::name()): Update to output POSIX environment strings.
* src/localename.cc
(locale::_Impl::_Impl(const _Impl&, size_t): Use
_S_categories_size_*, tweak.
(locale::_Impl::_Impl(facet**, size_t, bool)): Ditto.
(locale::_Impl::_Impl(const char*, size_t)): Name each category
individually.
(locale::_Impl::_M_replace_categories): Use strcpy.
* include/bits/locale_facets.h (numpunct::_M_initialize_numpunct):
Change default argument to NULL from _S_c_locale.
(timepunct::_M_initialize_timepunct): Same.
_S_c_locale cleanups.
* src/codecvt.c: _S_c_locale simplification.
* src/ctype.c: Same.
* src/globals.cc: Add fake_name.
* src/locale-inst.cc: Remove extra includes.
* src/locale.cc: Remove extra includes.
Add _S_extra_categories_size definition.
Correct "C" initialization.
(locale::facet::facet): Don't initialize _S_c_locale.
(locale::facet::_M_remove_reference): Adjust.
* src/localename: Use facet_vec, facet_name.
(locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set
facet ref counts to one. Initialize _S_c_locale.
(locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref
counts when installing unilaterally.
* config/locale/generic/c_locale.cc: Add _S_categories definition.
* config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
* config/locale/generic/time_members.cc: _S_c_locale cleanup.
* config/locale/gnu/c_locale.cc: Add _S_categories definition.
(_S_destroy_c_locale): Move checks against _S_c_locale here.
* config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro.
* config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale
calls, _S_c_locale usage.
* config/locale/gnu/monetary_members.cc: Same, tweaks.
* config/locale/gnu/monetary_members.cc: Same.
* config/locale/gnu/time_members.cc: Same.
* config/os/gnu-linux/ctype_noninline.h: Use locale::classic().
* docs/html/22_locale/locale.html: Add bits about global locales
and "C" setlocale.
* testsuite/22_locale/facet.cc (test02): Add.
* testsuite/22_locale/static_members.cc (test02): Add.
* testsuite/22_locale/ctor_copy_dtor.cc (test04): Add.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r57964
2002-10-08 23:32:23 +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
Steve Ellcey
3522a91b80
locale-inst.cc (__codecvt_abstract_base): Put inside _GLIBCPP_USE_WCHAR_T ifdef.
...
* src/locale-inst.cc (__codecvt_abstract_base):
Put inside _GLIBCPP_USE_WCHAR_T ifdef.
* include/bits/istream.tcc (basic_istream): Ditto.
(ws) Ditto.
(operator>>) Ditto.
* include/bits/ostream.tcc (basic_ostream): Ditto.
(endl): Ditto.
(ends): Ditto.
(flush): Ditto.
(operator<<): Ditto.
From-SVN: r54351
2002-06-07 22:06:38 +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
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
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
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
Benjamin Kosnik
8dba028f10
localename.cc: Remove stdexcept include.
...
2002-02-13 Benjamin Kosnik <bkoz@redhat.com>
* src/localename.cc: Remove stdexcept include.
* src/locale-inst.cc: Same.
* src/locale.cc: Same.
* src/functexcept.cc: Remove string includes.
* include/std/std_bitset.h: Remove stdexcept include.
* testsuite/23_containers/bitset_members.cc: Add stdexcept.
From-SVN: r49740
2002-02-13 18:29:12 +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
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
Jeff Law
415f500c76
* src/locale-inst.cc: Include <bits/std_cstdlib.h>
...
From-SVN: r48259
2001-12-21 17:39:43 -07: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
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
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
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
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
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
6ca9928acc
misc-inst.cc (__sink_unused_warning): Move to...
...
2001-03-22 Benjamin Kosnik <bkoz@redhat.com>
* src/misc-inst.cc (__sink_unused_warning): Move to...
* src/locale-inst.cc (__sink_unused_warning): Move to...
* src/stl-inst.cc: Here.
* include/bits/c++config (_STL_NO_CONCEPT_CHECKS): Add define,
commented it out.
From-SVN: r40792
2001-03-23 20:02:03 +00:00
Phil Edwards
d53d7f6e61
algo.h: Use std not __STD.
...
2001-03-04 Phil Edwards <pme@sources.redhat.com>
http://gcc.gnu.org/ml/libstdc++/2001-03/msg00015.html
* include/backward/algo.h: Use std not __STD. Remove unneeded
macros and "never happens" code. Adjust to C++STYLE guidelines.
* include/backward/algobase.h: Likewise.
* include/backward/alloc.h: Likewise.
* include/backward/bvector.h: Likewise.
* include/backward/deque.h: Likewise.
* include/backward/function.h: Likewise.
* include/backward/hash_map.h: Likewise.
* include/backward/hash_set.h: Likewise.
* include/backward/hashtable.h: Likewise.
* include/backward/heap.h: Likewise.
* include/backward/iterator.h: Likewise.
* include/backward/list.h: Likewise.
* include/backward/map.h: Likewise.
* include/backward/multimap.h: Likewise.
* include/backward/multiset.h: Likewise.
* include/backward/pair.h: Likewise.
* include/backward/rope.h: Likewise.
* include/backward/set.h: Likewise.
* include/backward/slist.h: Likewise.
* include/backward/stack.h: Likewise.
* include/backward/strstream: Likewise.
* include/backward/tempbuf.h: Likewise.
* include/backward/tree.h: Likewise.
* include/backward/vector.h: Likewise.
* include/bits/basic_ios.h: Likewise.
* include/bits/basic_ios.tcc: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/c++config: Likewise.
* include/bits/concept_checks.h: Likewise.
* include/bits/fpos.h: Likewise.
* include/bits/fstream.tcc: Likewise.
* include/bits/functexcept.h: Likewise.
* include/bits/ios_base.h: Likewise.
* include/bits/istream.tcc: Likewise.
* include/bits/mask_array.h: Likewise.
* include/bits/ostream.tcc: Likewise.
* include/bits/pthread_allocimpl.h: Likewise.
* include/bits/sbuf_iter.h: Likewise.
* include/bits/slice.h: Likewise.
* include/bits/slice_array.h: Likewise.
* include/bits/sstream.tcc: Likewise.
* include/bits/std_bitset.h: Likewise.
* include/bits/std_fstream.h: Likewise.
* include/bits/std_iomanip.h: Likewise.
* include/bits/std_ios.h: Likewise.
* include/bits/std_istream.h: Likewise.
* include/bits/std_iterator.h: Likewise.
* include/bits/std_memory.h: Likewise.
* include/bits/std_ostream.h: Likewise.
* include/bits/std_sstream.h: Likewise.
* include/bits/std_streambuf.h: Likewise.
* include/bits/std_string.h: Likewise.
* include/bits/std_valarray.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_alloc.h: Likewise.
* include/bits/stl_construct.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_function.h: Likewise.
* include/bits/stl_heap.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_iterator_base.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_numeric.h: Likewise.
* include/bits/stl_pair.h: Likewise.
* include/bits/stl_pthread_alloc.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_raw_storage_iter.h: Likewise.
* include/bits/stl_relops.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/stl_tempbuf.h: Likewise.
* include/bits/stl_threads.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_uninitialized.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/streambuf.tcc: Likewise.
* include/bits/type_traits.h: Likewise.
* include/bits/valarray_meta.h: Likewise.
* include/ext/bvector: Likewise.
* include/ext/hash_map: Likewise.
* include/ext/hash_set: Likewise.
* include/ext/ropeimpl.h: Likewise.
* include/ext/slist: Likewise.
* include/ext/stl_bvector.h: Likewise.
* include/ext/stl_hash_fun.h: Likewise.
* include/ext/stl_hashtable.h: Likewise.
* include/ext/stl_rope.h: Likewise.
* src/complex_io.cc: Likewise.
* src/ios.cc: Likewise.
* src/locale-inst.cc: Likewise.
* src/locale.cc: Likewise.
* src/localename.cc: Likewise.
* src/misc-inst.cc: Likewise.
* src/stdexcept.cc: Likewise.
* src/stl-inst.cc: Likewise.
* src/strstream.cc: Likewise.
* src/valarray-inst.cc: Likewise.
From-SVN: r40239
2001-03-04 21:34:02 +00:00
Benjamin Kosnik
ab7a43d812
locale-inst.cc (fill_n): Instantiate with size_t arguments.
...
2001-02-08 Loren J. Rittle <ljrittle@acm.org>
* src/locale-inst.cc (fill_n): Instantiate with size_t arguments.
From-SVN: r39549
2001-02-08 20:33:19 +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
167ed88f7a
locale_facets.h (ctype): Remove _Ctype_nois and _Ctype and replace with common __ctype_abstract_base.
...
2000-12-06 Benjamin Kosnik <bkoz@kredhat.com>
* include/bits/locale_facets.h (ctype): Remove _Ctype_nois and
_Ctype and replace with common __ctype_abstract_base.
(ctype<wchar_t>::_M_convert_to_wmask): Move to locale.cc.
* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>::ctype):
And here.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/bits/ctype_noninline.h (ctype): Same.
* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
* config/os/generic/bits/ctype_noninline.h (ctype): Same.
* config/os/aix/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
* src/locale-inst.cc: Clean instantiations.
* src/locale.cc (ctype<char>): Add definitions here.
(ctype<wchar_t>::_M_wmask): Move definitions here.
* config/os/generic/bits/ctype_inline.h (ctype<char>::is):
Implement in a generic way, with only "C" functionality and no
knowlege of the target os.
* config/os/generic/bits/os_defines.h: Change comments to C++ style.
* testsuite/22_locale/ctype_char_members.cc (test01): Add tests.
* include/bits/codecvt.h (ctype_byname): Remove specializations,
as not required.
* include/bits/localefwd.h (codecvt_byname): And here.
* src/codecvt.cc: Remove codecvt_byname specializations.
* include/c/bits/std_cstdio.h: Include c++config.h.
From-SVN: r38100
2000-12-07 06:44:49 +00:00
David Edelsohn
02a480f137
locale-inst.cc: Add explicit instantiations of _M_fill_insert and fill_n<..., unsigned long,...> .
...
* src/locale-inst.cc: Add explicit instantiations of
_M_fill_insert and fill_n<..., unsigned long,...> .
From-SVN: r37324
2000-11-08 15:00:36 -05: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
a6863e2538
Makefile.am (LIBSUPCXX_INCLUDES): Adjust.
...
2000-10-10 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* Makefile.am (LIBSUPCXX_INCLUDES): Adjust.
* libsupc++/include: Remove
* libsupc++/include/*: Move to ...
* libsupc++: Here.
* libsupc++/Makefile.am (glibcppinstall_HEADERS): Install headers.
(glibcppinstalldir): New.
* src/Makefile.am (c_base_headers): New.
(c_shadow_headers): New
(c_headers): New.
(myinstallheaders): Correct install issues.
* src/Makefile.in: Regenerate.
* Makefile.am (CSHADOW_INCLUDES): Simplify.
* Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add c_include_dir.
* aclocal.m4: Regenerate.
* mkcheck.in (SRC_DIR): Use it.
* include/bits/std_stdexcept.h: And here.
* include/bits/std_ios.h: Change std_exception.h to exception.
* src/locale.cc: And here.
* src/locale-inst.cc: And here.
* include/bits/valarray_array.h: And here.
* include/bits/stl_alloc.h: And here.
* include/bits/stl_algobase.h: And here.
* include/bits/pthread_allocimpl.h: And here.
* include/bits/stl_construct.h: Change to std_new.h to new.
* include/bits/locale_facets.h: Change std_typeinfo.h to typeinfo.
* src/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
(headers): Remove duplicated headers.
(std_headers): And here.
* src/Makefile.in: Regenerate.
* libsupc++/Makefile.am (LIBSUPCXX_INCLUDES): Remove.
* libsupc++/Makefile.in: Regenerate.
* Makefile.am (LIBSUPCXX_INCLUDES): Add here.
(AM_MAKEFLAGS): And here.
* Makefile.in: Regenerate.
* include/bits/std_typeinfo.h: Remove.
* include/bits/std_new.h: Remove
* include/bits/std_exception.h: Remove.
* std/new: Remove.
* std/typeinfo: Remove.
* std/exception: Remove.
* libio/_G_config.h (__need_ptrdiff_t): Add.
* libsupc++/include/new: Change stddef.h to cstddef.
* libsupc++/tinfo.h: Change limits.h to climits.
* libsupc++/pure.cc: Comment out _GNU_LIBRARY_ bits, as this
renders the file uncompilable. Add copyright.
* include/c_std/bits/std_cstddef.h: Don't bring wchar_t into std
namespace, as it is a fundamental type.
From-SVN: r36833
2000-10-10 23:50:39 +00:00
Benjamin Kosnik
8bc603eeeb
locale-inst.cc: Add time_put_byname and time_get_byname instantiations.
...
2000-09-18 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale-inst.cc: Add time_put_byname and
time_get_byname instantiations.
* bits/locale_facets.h: Correct default, private derivation to
public derivation in _byname declarations.
* src/locale.cc (locale::classic()): Simplify.
* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
const string& __name, category __cat, size_t __refs): Re-work for
named locales.
(_M_normalize_category_names): Remove.
* testsuite/22_locale/global_templates.cc (test01): Tweaks.
* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
From-SVN: r36526
2000-09-19 06:47:52 +00:00
Benjamin Kosnik
0435a3f8ca
locale-inst.cc: Remove pre-instantiation of unicode codecvt types.
...
2000-09-01 Benjamin Kosnik <bkoz@cygnus.com>
* src/locale-inst.cc: Remove pre-instantiation of unicode
codecvt types. Now unnecessary, as locale header now correct.
From-SVN: r36105
2000-09-01 22:02:49 +00:00
Benjamin Kosnik
0479a46292
locale_facets.tcc (_S_build_float_format): Move ...
...
2000-08-31 Benjamin Kosnik <bkoz@cygnus.com>
* bits/locale_facets.tcc (_S_build_float_format): Move ...
* src/locale.cc: Here.
* bits/locale_facets.tcc (num_get::_M_extract): Clean up generic
definition. Move specialization to ...
* src/locale.cc: Here.
* bits/locale_facets.tcc: Move _Format_cache specializations to ...
* src/locale.cc: Here.
* bits/locale_facets.tcc: Move use_facet<ctype> specializations to ...
* src/locale.cc: Here.
* bits/std_locale.h: Note that locale_facets.tcc should be
included here, for standards conformance. It may increase
compile times though. For the time being, enable.
* testsuite/22_locale/facet.cc: New file, some parts commented out
for the time being.
* mkcheck.in: Append total time to test summary file.
* bits/sbuf_iter.h : Formatting tweaks.
Clean up static const data member definitions.
* src/locale.cc: Add definitions for all missing locale,
locale::_Imp, and locale::id static data members.
(ctype<char>): Add table_size define.
(money_base): Add _S_default_pattern, uglify.
* bits/localefwd.h: Add definitions for static members of _Count_ones.
* bits/locale_facets.h: Tweaks.
* bits/locale_facets.tcc: Tweaks.
* bits/string.tcc: Add definition for npos.
* bits/ios_base.h: Tweaks.
* bits/ios_base.h (ios_base::Init::_M_ios_base_init): Change to
_S_ios_base_init.
* src/ios.cc: And here. Add _S_local_words definition.
Add definitions for __ios_flags const static data.
* src/codecvt.cc: Same for __enc_traits.
* src/locale-inst.cc: Remove money_base data member definition
here.
From-SVN: r36093
2000-09-01 08:58:07 +00:00
Benjamin Kosnik
ae658d47a4
locale-inst.cc: Add codecvt<unicode_t...
...
2000-08-22 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale-inst.cc: Add codecvt<unicode_t, wchar_t,
__enc_traits> instantiations for has_facet and use_facet.
* testsuite/22_locale/codecvt_unicode_wchar_t.cc: New file, for
testing two-byte unicode encodings converted to four-byte UCS4
encodings.
* bits/codecvt.h (codecvt<__enc_traits>): Fix do_unshift.
* testsuite/22_locale/codecvt_unicode_char.cc (test01): Add
correct state/encoding information.
* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add wcsrtombs,
mbsrtowcs checks as codecvt<wchar_t, char, mbstate_t> needs them
now.
Add checks for langinfo.h, nl_langinfo function call.
* libio/iofwide.c (_IO_fwide): Simplify, as nl_langinfo is assumed.
From-SVN: r35897
2000-08-22 23:44:23 +00:00
Benjamin Kosnik
a5834d1b79
codecvt.h: Implement codecvt<wchar_t, char, mbstate_t>.
...
2000-08-21 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* bits/codecvt.h: Implement codecvt<wchar_t, char, mbstate_t>. Fix
up __enc_traits template so as to be marginally useful.
* src/codecvt.cc: And here.
* bits/char_traits: Tweak.
* bits/locale_facets.h: Tweak.
* bits/locale_facets.tcc: Tweak.
* bits/localefwd.h: Tweak.
* src/locale-inst.cc: Add use_facet/has_facet instantiations here.
* testsuite/22_locale/codecvt_wchar_t_cc.cc: New file.
* testsuite/22_locale/codecvt_char_char.cc: New file.
* testsuite/22_locale/codecvt_unicode_char.cc: New file.
From-SVN: r35870
2000-08-22 08:18:10 +00:00
Benjamin Kosnik
6351162329
codecvt.h: New file.
...
2000-08-15 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* bits/codecvt.h: New file.
* src/codecvt.cc: New file.
* bits/std_locale.h: Add include here.
* src/Makefile.am (headers): Add codecvt.h
(sources): Add codecvt.cc.
* src/Makefile.in: Regenerate.
* bits/locale_facets.h (codecvt): Re-implement. Rename _Codecvt to
__codecvt_abstract_base in an attempt to point some light this way...
Move __enc_traits and codecvt bits to codecvt.h.
* src/locale-inst.cc: Remove codecvt<wchar_t, wchar_t, mbstate_t>
explicit instantiation. Separate out codecvt instantations, simplify.
* src/locale.cc: Move codecvt bits to codecvt.cc
From-SVN: r35737
2000-08-16 04:12:51 +00:00
Benjamin Kosnik
b2dad0e372
libstdc++-v3: New directory.
...
2000-04-21 Benjamin Kosnik <bkoz@redhat.com>
* libstdc++-v3: New directory.
From-SVN: r33317
2000-04-21 20:33:34 +00:00