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
This commit is contained in:
parent
62432849bc
commit
ae658d47a4
11 changed files with 302 additions and 98 deletions
|
@ -1,3 +1,21 @@
|
|||
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.
|
||||
|
||||
2000-08-22 Richard B. Kreckel <Richard.Kreckel@Uni-Mainz.DE>
|
||||
|
||||
* config/cpu/alpha/bits/atomicity.h: Change __attribute__
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
dnl
|
||||
dnl Initialize configure bits.
|
||||
dnl
|
||||
|
@ -936,10 +935,12 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
AC_MSG_RESULT($has_weof)
|
||||
|
||||
dnl Tests for wide character functions used in char_traits<wchar_t>.
|
||||
AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset, ac_wfuncs=yes, ac_wfuncs=no)
|
||||
AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
|
||||
wcsrtombs mbsrtowcs, ac_wfuncs=yes, ac_wfuncs=no)
|
||||
|
||||
AC_MSG_CHECKING([for ISO C9X wchar_t support])
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
|
||||
&& test x"$ac_wfuncs" = xyes; then
|
||||
ac_isoC9X_wchar_t=yes
|
||||
else
|
||||
ac_isoC9X_wchar_t=no
|
||||
|
@ -949,10 +950,13 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
dnl Use iconv for wchar_t to char conversions. As such, check for
|
||||
dnl X/Open Portability Guide, version 2 features (XPG2).
|
||||
AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
|
||||
AC_CHECK_FUNCS(iconv_open iconv_close iconv, ac_XPG2funcs=yes, ac_XPG2funcs=no)
|
||||
AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
|
||||
AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
|
||||
ac_XPG2funcs=yes, ac_XPG2funcs=no)
|
||||
|
||||
AC_MSG_CHECKING([for XPG2 wchar_t support])
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_XPG2funcs" = xyes; then
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
|
||||
&& test x"$ac_XPG2funcs" = xyes; then
|
||||
ac_XPG2_wchar_t=yes
|
||||
else
|
||||
ac_XPG2_wchar_t=no
|
||||
|
@ -961,12 +965,9 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
|
||||
dnl At the moment, only enable wchar_t specializations if all the
|
||||
dnl above support is present.
|
||||
dnl 2000-07-07-bkoz-hack-xxx
|
||||
# ac_isoC9X_wchar_t=no
|
||||
dnl 2000-07-07-bkoz-hack-xxx
|
||||
|
||||
AC_MSG_CHECKING([for enabled wchar_t specializations])
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes \
|
||||
&& test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
libinst_wstring_la="libinst-wstring.la"
|
||||
AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
|
||||
AC_MSG_RESULT("yes")
|
||||
|
|
21
libstdc++-v3/aclocal.m4
vendored
21
libstdc++-v3/aclocal.m4
vendored
|
@ -10,7 +10,6 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
dnl
|
||||
dnl Initialize configure bits.
|
||||
dnl
|
||||
|
@ -948,10 +947,12 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
AC_MSG_RESULT($has_weof)
|
||||
|
||||
dnl Tests for wide character functions used in char_traits<wchar_t>.
|
||||
AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset, ac_wfuncs=yes, ac_wfuncs=no)
|
||||
AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
|
||||
wcsrtombs mbsrtowcs, ac_wfuncs=yes, ac_wfuncs=no)
|
||||
|
||||
AC_MSG_CHECKING([for ISO C9X wchar_t support])
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
|
||||
&& test x"$ac_wfuncs" = xyes; then
|
||||
ac_isoC9X_wchar_t=yes
|
||||
else
|
||||
ac_isoC9X_wchar_t=no
|
||||
|
@ -961,10 +962,13 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
dnl Use iconv for wchar_t to char conversions. As such, check for
|
||||
dnl X/Open Portability Guide, version 2 features (XPG2).
|
||||
AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
|
||||
AC_CHECK_FUNCS(iconv_open iconv_close iconv, ac_XPG2funcs=yes, ac_XPG2funcs=no)
|
||||
AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
|
||||
AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
|
||||
ac_XPG2funcs=yes, ac_XPG2funcs=no)
|
||||
|
||||
AC_MSG_CHECKING([for XPG2 wchar_t support])
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_XPG2funcs" = xyes; then
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
|
||||
&& test x"$ac_XPG2funcs" = xyes; then
|
||||
ac_XPG2_wchar_t=yes
|
||||
else
|
||||
ac_XPG2_wchar_t=no
|
||||
|
@ -973,12 +977,9 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
|
|||
|
||||
dnl At the moment, only enable wchar_t specializations if all the
|
||||
dnl above support is present.
|
||||
dnl 2000-07-07-bkoz-hack-xxx
|
||||
# ac_isoC9X_wchar_t=no
|
||||
dnl 2000-07-07-bkoz-hack-xxx
|
||||
|
||||
AC_MSG_CHECKING([for enabled wchar_t specializations])
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes \
|
||||
&& test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
libinst_wstring_la="libinst-wstring.la"
|
||||
AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
|
||||
AC_MSG_RESULT("yes")
|
||||
|
|
|
@ -416,7 +416,12 @@ namespace std
|
|||
if (__conv != size_t(-1))
|
||||
{
|
||||
__to_next = reinterpret_cast<extern_type*>(__cto);
|
||||
__ret = ok;
|
||||
if (__tlen == __tmultiple * (__to_end - __to))
|
||||
__ret = noconv;
|
||||
else if (__tlen == 0)
|
||||
__ret = ok;
|
||||
else
|
||||
__ret = partial;
|
||||
}
|
||||
else
|
||||
__ret = error;
|
||||
|
|
|
@ -510,6 +510,9 @@
|
|||
/* Define if you have the logl function. */
|
||||
#undef HAVE_LOGL
|
||||
|
||||
/* Define if you have the mbsrtowcs function. */
|
||||
#undef HAVE_MBSRTOWCS
|
||||
|
||||
/* Define if you have the modff function. */
|
||||
#undef HAVE_MODFF
|
||||
|
||||
|
@ -519,6 +522,9 @@
|
|||
/* Define if you have the nan function. */
|
||||
#undef HAVE_NAN
|
||||
|
||||
/* Define if you have the nl_langinfo function. */
|
||||
#undef HAVE_NL_LANGINFO
|
||||
|
||||
/* Define if you have the powf function. */
|
||||
#undef HAVE_POWF
|
||||
|
||||
|
@ -579,6 +585,9 @@
|
|||
/* Define if you have the wcslen function. */
|
||||
#undef HAVE_WCSLEN
|
||||
|
||||
/* Define if you have the wcsrtombs function. */
|
||||
#undef HAVE_WCSRTOMBS
|
||||
|
||||
/* Define if you have the wmemchr function. */
|
||||
#undef HAVE_WMEMCHR
|
||||
|
||||
|
|
157
libstdc++-v3/configure
vendored
157
libstdc++-v3/configure
vendored
|
@ -17501,15 +17501,16 @@ fi
|
|||
rm -f conftest*
|
||||
echo "$ac_t""$has_weof" 1>&6
|
||||
|
||||
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
|
||||
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
|
||||
wcsrtombs mbsrtowcs
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:17508: checking for $ac_func" >&5
|
||||
echo "configure:17509: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17513 "configure"
|
||||
#line 17514 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -17532,7 +17533,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:17537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -17559,8 +17560,9 @@ done
|
|||
|
||||
|
||||
echo $ac_n "checking for ISO C9X wchar_t support""... $ac_c" 1>&6
|
||||
echo "configure:17563: checking for ISO C9X wchar_t support" >&5
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then
|
||||
echo "configure:17564: checking for ISO C9X wchar_t support" >&5
|
||||
if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
|
||||
&& test x"$ac_wfuncs" = xyes; then
|
||||
ac_isoC9X_wchar_t=yes
|
||||
else
|
||||
ac_isoC9X_wchar_t=no
|
||||
|
@ -17569,17 +17571,17 @@ echo "configure:17563: checking for ISO C9X wchar_t support" >&5
|
|||
|
||||
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
|
||||
echo "configure:17573: checking for iconv.h" >&5
|
||||
echo "configure:17575: checking for iconv.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17578 "configure"
|
||||
#line 17580 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <iconv.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:17583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:17585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -17601,15 +17603,49 @@ else
|
|||
ac_has_iconv_h=no
|
||||
fi
|
||||
|
||||
for ac_func in iconv_open iconv_close iconv
|
||||
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
|
||||
echo "configure:17609: checking for langinfo.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17614 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <langinfo.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:17619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_header_$ac_safe=yes"
|
||||
else
|
||||
echo "$ac_err" >&5
|
||||
echo "configure: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_header_$ac_safe=no"
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
ac_has_langinfo_h=yes
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
ac_has_langinfo_h=no
|
||||
fi
|
||||
|
||||
for ac_func in iconv_open iconv_close iconv nl_langinfo
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:17608: checking for $ac_func" >&5
|
||||
echo "configure:17644: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17613 "configure"
|
||||
#line 17649 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -17632,7 +17668,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:17672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -17650,7 +17686,8 @@ if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
|
|||
cat >> confdefs.h <<EOF
|
||||
#define $ac_tr_func 1
|
||||
EOF
|
||||
ac_XPG2funcs=yes
|
||||
\
|
||||
ac_XPG2funcs=yes
|
||||
else
|
||||
echo "$ac_t""no" 1>&6
|
||||
ac_XPG2funcs=no
|
||||
|
@ -17659,19 +17696,19 @@ done
|
|||
|
||||
|
||||
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
|
||||
echo "configure:17663: checking for XPG2 wchar_t support" >&5
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_XPG2funcs" = xyes; then
|
||||
echo "configure:17700: checking for XPG2 wchar_t support" >&5
|
||||
if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
|
||||
&& test x"$ac_XPG2funcs" = xyes; then
|
||||
ac_XPG2_wchar_t=yes
|
||||
else
|
||||
ac_XPG2_wchar_t=no
|
||||
fi
|
||||
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
|
||||
|
||||
# ac_isoC9X_wchar_t=no
|
||||
|
||||
echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
|
||||
echo "configure:17674: checking for enabled wchar_t specializations" >&5
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
|
||||
echo "configure:17710: checking for enabled wchar_t specializations" >&5
|
||||
if test x"$ac_isoC9X_wchar_t" = xyes \
|
||||
&& test x"$ac_XPG2_wchar_t" = xyes; then
|
||||
libinst_wstring_la="libinst-wstring.la"
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define _GLIBCPP_USE_WCHAR_T 1
|
||||
|
@ -17695,17 +17732,17 @@ EOF
|
|||
|
||||
ac_safe=`echo "ctype.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for ctype.h""... $ac_c" 1>&6
|
||||
echo "configure:17699: checking for ctype.h" >&5
|
||||
echo "configure:17736: checking for ctype.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17704 "configure"
|
||||
#line 17741 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:17709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:17746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -17726,9 +17763,9 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
|||
ctype_default=yes
|
||||
|
||||
echo $ac_n "checking <ctype> for gnu-linux ""... $ac_c" 1>&6
|
||||
echo "configure:17730: checking <ctype> for gnu-linux " >&5
|
||||
echo "configure:17767: checking <ctype> for gnu-linux " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17732 "configure"
|
||||
#line 17769 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17739,7 +17776,7 @@ int
|
|||
+ __ctype_tolower[a] + __ctype_toupper[a] + __ctype_b[a];}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_linux=yes
|
||||
|
@ -17758,9 +17795,9 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for freebsd 4.0 ""... $ac_c" 1>&6
|
||||
echo "configure:17762: checking <ctype> for freebsd 4.0 " >&5
|
||||
echo "configure:17799: checking <ctype> for freebsd 4.0 " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17764 "configure"
|
||||
#line 17801 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17770,7 +17807,7 @@ int
|
|||
+ _CTYPE_D + _CTYPE_P + _CTYPE_X + _CTYPE_G ;}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_bsd=yes
|
||||
|
@ -17790,9 +17827,9 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for freebsd 3.4 ""... $ac_c" 1>&6
|
||||
echo "configure:17794: checking <ctype> for freebsd 3.4 " >&5
|
||||
echo "configure:17831: checking <ctype> for freebsd 3.4 " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17796 "configure"
|
||||
#line 17833 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17802,7 +17839,7 @@ int
|
|||
+ _D + _P + _X + _G + __istype (a, 0);}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_freebsd34=yes
|
||||
|
@ -17822,9 +17859,9 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for solaris 2.6,7,8 ""... $ac_c" 1>&6
|
||||
echo "configure:17826: checking <ctype> for solaris 2.6,7,8 " >&5
|
||||
echo "configure:17863: checking <ctype> for solaris 2.6,7,8 " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17828 "configure"
|
||||
#line 17865 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17835,7 +17872,7 @@ int
|
|||
+ __trans_lower[a] + __trans_upper[a] + __ctype_mask[a];}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_solaris=yes
|
||||
|
@ -17850,7 +17887,7 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_solaris = "yes"; then
|
||||
echo $ac_n "checking for version""... $ac_c" 1>&6
|
||||
echo "configure:17854: checking for version" >&5
|
||||
echo "configure:17891: checking for version" >&5
|
||||
ac_ext=C
|
||||
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||
|
@ -17859,14 +17896,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
|
|||
cross_compiling=$ac_cv_prog_cxx_cross
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17863 "configure"
|
||||
#line 17900 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
typedef long* __to_type; __to_type const& _M_toupper = __trans_upper;
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_solaris26=yes
|
||||
|
@ -17898,9 +17935,9 @@ cross_compiling=$ac_cv_prog_cc_cross
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for solaris 2.5.1 ""... $ac_c" 1>&6
|
||||
echo "configure:17902: checking <ctype> for solaris 2.5.1 " >&5
|
||||
echo "configure:17939: checking <ctype> for solaris 2.5.1 " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17904 "configure"
|
||||
#line 17941 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17910,7 +17947,7 @@ int
|
|||
+ __ctype[a];}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_solaris25=yes
|
||||
|
@ -17930,9 +17967,9 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for aix ""... $ac_c" 1>&6
|
||||
echo "configure:17934: checking <ctype> for aix " >&5
|
||||
echo "configure:17971: checking <ctype> for aix " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17936 "configure"
|
||||
#line 17973 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17943,7 +17980,7 @@ int
|
|||
+ _VALC('a') + _IS('c', 0);}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:17984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_aix=yes
|
||||
|
@ -17963,9 +18000,9 @@ rm -f conftest*
|
|||
|
||||
if test $ctype_default = "yes"; then
|
||||
echo $ac_n "checking <ctype> for newlib ""... $ac_c" 1>&6
|
||||
echo "configure:17967: checking <ctype> for newlib " >&5
|
||||
echo "configure:18004: checking <ctype> for newlib " >&5
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17969 "configure"
|
||||
#line 18006 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
int main() {
|
||||
|
@ -17975,7 +18012,7 @@ int
|
|||
+ _ctype_[a];}
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:17979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:18016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
\
|
||||
ctype_newlib=yes
|
||||
|
@ -18009,17 +18046,17 @@ fi
|
|||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:18013: checking for $ac_hdr" >&5
|
||||
echo "configure:18050: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 18018 "configure"
|
||||
#line 18055 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:18023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:18060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -18048,12 +18085,12 @@ done
|
|||
for ac_func in getpagesize
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:18052: checking for $ac_func" >&5
|
||||
echo "configure:18089: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 18057 "configure"
|
||||
#line 18094 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -18076,7 +18113,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:18080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:18117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -18101,7 +18138,7 @@ fi
|
|||
done
|
||||
|
||||
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
|
||||
echo "configure:18105: checking for working mmap" >&5
|
||||
echo "configure:18142: checking for working mmap" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -18109,7 +18146,7 @@ else
|
|||
ac_cv_func_mmap_fixed_mapped=no
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 18113 "configure"
|
||||
#line 18150 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
/* Thanks to Mike Haertel and Jim Avera for this test.
|
||||
|
@ -18249,7 +18286,7 @@ main()
|
|||
}
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:18253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:18290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_func_mmap_fixed_mapped=yes
|
||||
else
|
||||
|
@ -18312,19 +18349,19 @@ fi
|
|||
|
||||
if test $ac_cv_header_locale_h = yes; then
|
||||
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
|
||||
echo "configure:18316: checking for LC_MESSAGES" >&5
|
||||
echo "configure:18353: checking for LC_MESSAGES" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 18321 "configure"
|
||||
#line 18358 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <locale.h>
|
||||
int main() {
|
||||
return LC_MESSAGES
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:18328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:18365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_val_LC_MESSAGES=yes
|
||||
else
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2000-08-22 Benjamin Kosnik <bkoz@gnu.org>
|
||||
|
||||
* iofwide.c (_IO_fwide): Simplify, as nl_langinfo is assumed.
|
||||
|
||||
2000-08-14 Benjamin Kosnik <bkoz@gnu.org>
|
||||
|
||||
* *: Merge with mainline glibc sources.
|
||||
|
|
|
@ -27,15 +27,15 @@
|
|||
#ifdef _LIBC
|
||||
# include <dlfcn.h>
|
||||
# include <wchar.h>
|
||||
# include <locale/localeinfo.h>
|
||||
# include <wcsmbs/wcsmbsload.h>
|
||||
# include <iconv/gconv_int.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _LIBC
|
||||
#if defined(_LIBC) || defined(_GLIBCPP_USE_WCHAR_T)
|
||||
# include <langinfo.h>
|
||||
# include <locale/localeinfo.h>
|
||||
# include <wcsmbs/wcsmbsload.h>
|
||||
# include <iconv/gconv_int.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -156,21 +156,14 @@ _IO_fwide (fp, mode)
|
|||
should come up with a solution for the determination of the
|
||||
currently used internal character set. */
|
||||
const char *internal_ccs = _G_INTERNAL_CCS;
|
||||
const char *external_ccs = NULL;
|
||||
const char *external_ccs = nl_langinfo(CODESET);
|
||||
|
||||
# ifdef HAVE_NL_LANGINFO
|
||||
external_ccs = nl_langinfo (CODESET);
|
||||
# endif
|
||||
if (external_ccs == NULL)
|
||||
external_ccs = "ISO-8859-1";
|
||||
|
||||
cc->__cd_in = iconv_open (internal_ccs, external_ccs);
|
||||
if (cc->__cd_in != (iconv_t) -1)
|
||||
cc->__cd_out = iconv_open (external_ccs, internal_ccs);
|
||||
|
||||
if (cc->__cd_in == (iconv_t) -1 || cc->__cd_out == (iconv_t) -1)
|
||||
/* XXX */
|
||||
abort ();
|
||||
}
|
||||
# else
|
||||
# error "somehow determine this from LC_CTYPE"
|
||||
|
|
|
@ -136,13 +136,26 @@ namespace std {
|
|||
template class __codecvt_abstract_base<char, char, mbstate_t>;
|
||||
template class __codecvt_abstract_base<wchar_t, char, mbstate_t>;
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
// XXX This should not be necessary. Unfortunately, the has_facet
|
||||
// and use_facet defines are not in the headers, an instead in
|
||||
// locale_facets.tcc for the time being, as they use std::vector and
|
||||
// thus compile time double when they are pushed up to the top-level
|
||||
// includes.
|
||||
typedef unsigned short unicode_t;
|
||||
|
||||
template
|
||||
const codecvt<unicode_t, char, __enc_traits>&
|
||||
use_facet<codecvt<unicode_t, char, __enc_traits> >(const locale&);
|
||||
template
|
||||
bool
|
||||
has_facet<codecvt<unicode_t, char, __enc_traits> >(const locale &);
|
||||
|
||||
template
|
||||
const codecvt<unicode_t, wchar_t, __enc_traits>&
|
||||
use_facet<codecvt<unicode_t, wchar_t, __enc_traits> >(const locale&);
|
||||
template
|
||||
bool
|
||||
has_facet<codecvt<unicode_t, wchar_t, __enc_traits> >(const locale &);
|
||||
#endif
|
||||
|
||||
// collate
|
||||
|
|
|
@ -97,8 +97,6 @@ void test01()
|
|||
|
||||
bool test = true;
|
||||
const ext_type* e_lit = "black pearl jasmine tea";
|
||||
const ext_type* efrom_next;
|
||||
const int_type* ifrom_next;
|
||||
int size = strlen(e_lit);
|
||||
|
||||
int_type i_lit_base[24] =
|
||||
|
@ -108,6 +106,8 @@ void test01()
|
|||
};
|
||||
const int_type* i_lit = i_lit_base;
|
||||
|
||||
const ext_type* efrom_next;
|
||||
const int_type* ifrom_next;
|
||||
ext_type* e_arr = new ext_type[size + 1];
|
||||
ext_type* eto_next;
|
||||
int_type* i_arr = new int_type[size + 1];
|
||||
|
@ -130,7 +130,7 @@ void test01()
|
|||
VERIFY( ito_next == i_arr + size );
|
||||
|
||||
// out
|
||||
unicode_codecvt::state_type state02;
|
||||
unicode_codecvt::state_type state02("UNICODE", "ISO_8859-1");
|
||||
initialize_state(state02);
|
||||
result r2 = cvt.out(state02, i_lit, i_lit + size, ifrom_next,
|
||||
e_arr, e_arr + size, eto_next);
|
||||
|
@ -141,7 +141,7 @@ void test01()
|
|||
|
||||
// unshift
|
||||
ext_traits::copy(e_arr, e_lit, size);
|
||||
unicode_codecvt::state_type state03;
|
||||
unicode_codecvt::state_type state03("UNICODE", "ISO_8859-1");
|
||||
initialize_state(state03);
|
||||
result r3 = cvt.unshift(state03, e_arr, e_arr + size, eto_next);
|
||||
VERIFY( r3 == codecvt_base::noconv );
|
||||
|
@ -153,7 +153,7 @@ void test01()
|
|||
|
||||
VERIFY( !cvt.always_noconv() );
|
||||
|
||||
unicode_codecvt::state_type state04;
|
||||
unicode_codecvt::state_type state04("UNICODE", "ISO_8859-1");
|
||||
initialize_state(state04);
|
||||
int j = cvt.length(state03, e_lit, e_lit + size, 5);
|
||||
VERIFY( j == 5 );
|
||||
|
|
123
libstdc++-v3/testsuite/22_locale/codecvt_unicode_wchar_t.cc
Normal file
123
libstdc++-v3/testsuite/22_locale/codecvt_unicode_wchar_t.cc
Normal file
|
@ -0,0 +1,123 @@
|
|||
// 2000-08-22 Benjamin Kosnik <bkoz@cygnus.com>
|
||||
|
||||
// Copyright (C) 2000 Free Software Foundation
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// 22.2.1.5 - Template class codecvt [lib.locale.codecvt]
|
||||
|
||||
#include <locale>
|
||||
#include <debug_assert.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
void
|
||||
initialize_state(__enc_traits& state)
|
||||
{ state._M_init(); }
|
||||
|
||||
// Partial specialization using __enc_traits.
|
||||
// codecvt<unicode_t, wchar_t, __enc_traits>
|
||||
void test01()
|
||||
{
|
||||
typedef codecvt_base::result result;
|
||||
typedef unsigned short unicode_t;
|
||||
typedef unicode_t int_type;
|
||||
typedef wchar_t ext_type;
|
||||
typedef __enc_traits enc_type;
|
||||
typedef codecvt<int_type, ext_type, enc_type> unicode_codecvt;
|
||||
typedef char_traits<int_type> int_traits;
|
||||
typedef char_traits<ext_type> ext_traits;
|
||||
|
||||
bool test = true;
|
||||
const ext_type* e_lit = L"black pearl jasmine tea";
|
||||
int size = ext_traits::length(e_lit);
|
||||
|
||||
int_type i_lit_base[24] =
|
||||
{ 25088, 27648, 24832, 25344, 27392, 8192, 28672, 25856, 24832, 29184,
|
||||
27648, 8192, 27136, 24832, 29440, 27904, 26880, 28160, 25856, 8192, 29696,
|
||||
25856, 24832, 2560
|
||||
};
|
||||
const int_type* i_lit = i_lit_base;
|
||||
|
||||
const ext_type* efrom_next;
|
||||
const int_type* ifrom_next;
|
||||
ext_type* e_arr = new ext_type[size + 1];
|
||||
ext_type* eto_next;
|
||||
int_type* i_arr = new int_type[size + 1];
|
||||
int_type* ito_next;
|
||||
|
||||
// construct a locale object with the specialized facet.
|
||||
locale loc(locale::classic(), new unicode_codecvt);
|
||||
// sanity check the constructed locale has the specialized facet.
|
||||
VERIFY( has_facet<unicode_codecvt>(loc) );
|
||||
const unicode_codecvt& cvt = use_facet<unicode_codecvt>(loc);
|
||||
|
||||
// in
|
||||
unicode_codecvt::state_type state01("UNICODE", "UCS4");
|
||||
initialize_state(state01);
|
||||
result r1 = cvt.in(state01, e_lit, e_lit + size, efrom_next,
|
||||
i_arr, i_arr + size, ito_next);
|
||||
VERIFY( r1 == codecvt_base::ok );
|
||||
VERIFY( !int_traits::compare(i_arr, i_lit, size) );
|
||||
VERIFY( efrom_next == e_lit + size );
|
||||
VERIFY( ito_next == i_arr + size );
|
||||
|
||||
// out
|
||||
unicode_codecvt::state_type state02("UNICODE", "UCS4");
|
||||
initialize_state(state02);
|
||||
result r2 = cvt.out(state02, i_lit, i_lit + size, ifrom_next,
|
||||
e_arr, e_arr + size, eto_next);
|
||||
VERIFY( r2 == codecvt_base::ok );
|
||||
VERIFY( !ext_traits::compare(e_arr, e_lit, size) );
|
||||
VERIFY( ifrom_next == i_lit + size );
|
||||
VERIFY( eto_next == e_arr + size );
|
||||
|
||||
// unshift
|
||||
ext_traits::copy(e_arr, e_lit, size);
|
||||
unicode_codecvt::state_type state03("UNICODE", "UCS4");
|
||||
initialize_state(state03);
|
||||
result r3 = cvt.unshift(state03, e_arr, e_arr + size, eto_next);
|
||||
VERIFY( r3 == codecvt_base::noconv );
|
||||
VERIFY( !ext_traits::compare(e_arr, e_lit, size) );
|
||||
VERIFY( eto_next == e_arr );
|
||||
|
||||
int i = cvt.encoding();
|
||||
VERIFY( i == 0 );
|
||||
|
||||
VERIFY( !cvt.always_noconv() );
|
||||
|
||||
unicode_codecvt::state_type state04("UNICODE", "UCS4");
|
||||
initialize_state(state04);
|
||||
int j = cvt.length(state03, e_lit, e_lit + size, 5);
|
||||
VERIFY( j == 5 );
|
||||
|
||||
int k = cvt.max_length();
|
||||
VERIFY( k == 1 );
|
||||
|
||||
delete [] e_arr;
|
||||
delete [] i_arr;
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
test01();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Add table
Reference in a new issue