Mercurial > hg > octave-kai > gnulib-hg
changeset 12551:a46bd192256f
iconv: Reject native Solaris iconv.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 01 Jan 2010 01:57:29 +0100 |
parents | 1ef945b5adbd |
children | adc711ccbbd5 |
files | ChangeLog doc/posix-functions/iconv.texi m4/iconv.m4 |
diffstat | 3 files changed, 29 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-01-01 Bruno Haible <bruno@clisp.org> + + iconv: Reject native Solaris iconv. + * m4/iconv.m4 (AM_ICONV_LINK): Recognize native Solaris iconv() bug. + * doc/posix-functions/iconv.texi: Document native Solaris iconv() bug. + 2009-12-31 Bruno Haible <bruno@clisp.org> * tests/test-signal.c (main): Remove test of 'SIG'.
--- a/doc/posix-functions/iconv.texi +++ b/doc/posix-functions/iconv.texi @@ -12,7 +12,7 @@ GNU libiconv is not found if installed in @file{$PREFIX/lib}. @item Failures are not distinguishable from successful returns on some platforms: -AIX 5.1. +AIX 5.1, Solaris 10. @end itemize Portability problems not fixed by Gnulib:
--- a/m4/iconv.m4 +++ b/m4/iconv.m4 @@ -1,5 +1,5 @@ -# iconv.m4 serial AM8 (gettext-0.18) -dnl Copyright (C) 2000-2002, 2007-2009 Free Software Foundation, Inc. +# iconv.m4 serial 9 (gettext-0.18) +dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -58,7 +58,7 @@ ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. + dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" @@ -87,6 +87,25 @@ return 1; } } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ {