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