2003-02-06 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/codecvt/encoding/wchar_t/1.cc (test01):
Explicitly use the "C" locale.
* testsuite/22_locale/codecvt/max_length/wchar_t/1.cc (test01): Same.
2003-02-06 Petur Runolfsson <peturr02@ru.is>
DR 75
DR 305
PR libstdc++/9028 (partial)
PR libstdc++/9224
PR libstdc++/9246
PR libstdc++/9247
* src/codecvt.cc
(codecvt<wchar_t, char, mbstate_t>::do_encoding,
codecvt<wchar_t, char, mbstate_t>::do_length,
codecvt<wchar_t, char, mbstate_t>::do_max_length):
Move...
* config/locale/generic/codecvt_members.cc: ...here.
* config/locale/gnu/codecvt_members.cc: ...and here.
* config/locale/generic/codecvt_members.cc,
* config/locale/gnu/codecvt_members.cc
(codecvt<wchar_t, char, mbstate_t>::do_encoding
codecvt<wchar_t, char, mbstate_t>::do_in,
codecvt<wchar_t, char, mbstate_t>::do_length,
codecvt<wchar_t, char, mbstate_t>::do_max_length,
codecvt<wchar_t, char, mbstate_t>::do_out):
New implementation that handles stateless encodings,
including UTF-8.
* config/locale/generic/codecvt_members.cc,
* config/locale/gnu/codecvt_members.cc,
* config/locale/ieee_1003.1-2001/codecvt_specializations.h,
* include/bits/codecvt.h,
* src/codecvt.cc
(codecvt::length, codecvt::do_length):
Change type of first argument of length and do_length from
'const state_type&' to 'state_type&' according to DR 75.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/1.cc:
Cleanup and check for correct return value from encoding
for "C" locale.
* testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/encoding/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/in/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/8.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/9.cc: New test.
* testsuite/22_locale/codecvt/length/char/1.cc: Cleanup.
* testsuite/22_locale/codecvt/length/char/2.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/length/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/length/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/max_length/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/out/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/4.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/5.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/6.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/7.cc: New test.
* testsuite/22_locale/codecvt/unicode/1.cc: New test.
* testsuite/22_locale/codecvt/unshift/wchar_t/1.cc: Cleanup.
* testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: New test.
* testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: New test.
* testsuite/22_locale/codecvt/unshfit/wchar_t/4.cc: New test.
From-SVN: r62474
2001-10-31 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/4749
* include/bits/codecvt.h: Add virtual member function declarations.
* src/codecvt.cc: Tweaks.
* testsuite/22_locale/codecvt.cc: Test compilation only,
non-required facets not required to have linkage.
From-SVN: r46685
2001-02-16 Greg Bumgardner <bumgard@roguewave.com>
libstdc++/1734
* include/bits/std_ostream.h: Replaced usage of
_Traits::_S_eos() with _CharT() as per section 17.2.2.1.3.
* include/bits/char_traits.h: Removed non-standard
methods that cannot be used elsewhere.
libstdc++/1885
* include/bits/basic_ios.h: Uncommented #include of
bits/basic_ios.tcc
libstdc++/1897
* include/bits/codecvt.h: See next...
* include/bits/fstream.tcc: See next...
* include/bits/ostream.tcc: Add __extension__
to variable-length arrays.
libstdc++/1967
* include/bits/localefwd.h: Changed int counter type to size_t.
libstdc++/1968
* include/bits/std_fstream.h: Added typedef for __ctype_type.
From-SVN: r39802
2000-12-22 Benjamin Kosnik <bkoz@fillmore.redhat.com>
Attempt to make locale visible in gdb.
* include/bits/std_locale.h: Remove codecvt.h include.
* include/bits/locale_facets.h: Add here, after ctype decls.
* include/bits/codecvt.h: Remove std namespace, as assumed to be
in std now.
* include/bits/locale_facets.h: Consistently move generic static
member definitions directly after generic facet declarations.
* include/bits/locale_facets.tcc: From here.
* src/locale.cc: Organize locale::id static definitions for
required facets.
* src/codecvt.cc (codecvt<char...>): Remove locale::id definition.
(codecvt<wchar_t...>): Same.
* src/localename: And here.
* include/bits/localefwd.h (_Count_ones): Change _S_count to _M_count.
Same for _M_halfcount.
(std): make locale::_Impl protected. CHANGE BACK
From-SVN: r38449
2000-11-12 Brent Verner <brent@rcfile.org>
* include/c_std/bits/wrap_langinfo.h: New file.
* include/c_std/langinfo.h: New file.
* include/bits/codecvt.h (__enc_trants::__enc_traits()): Bring in
CODESET from _C_legacy::CODESET if using shadow headers.
From-SVN: r37436
2000-11-10 Phil Edwards <pme@sources.redhat.com>
* include/bits/codecvt.h (__iconv_adaptor): New adaptor function,
courtesy of Alexandre Oliva, to handle const/non-const signatures.
(codecvt::do_out): Use.
(codecvt::do_in): And here.
From-SVN: r37379
* config/c_io_libio.cc (basic_file<char>::__basic_file):
Don't pass a NULL _IO_wide_data to _IO_no_init when
_GLIBCPP_USE_WCHAR_T is not defined.
* config/c_io_libio.h (_IO_codecvt): Don't declare when
_GLIBCPP_USE_WCHAR_T is not defined.
* config/c_io_libio_codecvt.c: Don't compile it
when _GLIBCPP_USE_WCHAR_T is not defined.
* include/bits/codecvt.h (codecvt<_InternT, _ExternT, __enc_traits):
Don't define this specialization when _GLIBCPP_USE_WCHAR_T
is not defined.
* include/bits/locale_facets.h (<bits/std_cwctype.h>): Don't
include it when _GLIBCPP_USE_WCHAR_T is not defined.
* src/codecvt.cc (__enc_traits::_S_max_size): Don't define
when _GLIBCPP_USE_WCHAR_T is not defined.
* src/localename.cc (locale::_Impl::_M_construct_collate):
Don't call wide-character functions when _GLIBCPP_USE_WCHAR_T is
not defined.
(locale::_Impl::_M_construct_ctype): Likewise.
(locale::_Impl::_M_construct_monetary): Likewise.
(locale::_Impl::_M_construct_numeric): Likewise.
(locale::_Impl::_M_construct_time): Likewise.
(locale::_Impl::_M_construct_messages): Likewise.
* iofopen.c (_IO_new_fopen): Don't define `_IO_wide_data wd'
if _GLIBCPP_USE_WCHAR_T is not defined.
* iofwide.c: Don't define codecvt functions when
_GLIBCPP_USE_WCHAR_T is not defined.
(_IO_fwide): Don't try to put the stream in wide mode when
_GLIBCPP_USE_WCHAR_T is not defined.
* libio.h (_IO_wide_data): Define it as an incomplete struct
when _GLIBCPP_USE_WCHAR_T is not defined.
* wfiledoalloc.c: Don't define anything when
_GLIBCPP_USE_WCHAR_T is not defined.
* wfileops.c: Likewise.
* wgenops.c: Likewise.
From-SVN: r37131
2000-10-19 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* testsuite/22_locale/codecvt_unicode_char.cc (test01): Adjust
creation of state_type for unicode_codecvt to take into account
the byte order markings. Add distinct tests for UCS-2BE and UCS-2LE.
* testsuite/22_locale/codecvt_unicode_wchar_t.cc (test01): Same.
* include/bits/codecvt.h (__enc_traits): Add support for encodings
that need a byte order marker. Needed for correct unicode support.
* src/locale.cc: Remove explicit qualification std::.
(locale::locale(const char* __name)): Revert, as named locale
support not finished.
* src/localename.cc (locale::_Impl:: _Impl(size_t __numfacets,
size_t __refs, bool __has_name = false, string __name): Move
default argument...
* include/bits/localefwd.h: Here.
From-SVN: r36959