Mercurial > hg > octave-lojdl > gnulib-hg
changeset 16719:8d5d2ed0afb0
locale: Provide a complete 'struct lconv'.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not contain int_p_cs_precedes.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Update.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 25 Mar 2012 13:56:33 +0200 |
parents | e4aad6f843ed |
children | 7dbecbf765a8 |
files | ChangeLog doc/posix-headers/locale.texi m4/locale_h.m4 tests/test-locale.c |
diffstat | 4 files changed, 13 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2012-03-25 Bruno Haible <bruno@clisp.org> + locale: Provide a complete 'struct lconv'. + * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if + 'struct lconv' does not contain int_p_cs_precedes. + * tests/test-locale.c (main): Check that 'struct lconv' is complete. + * doc/posix-headers/locale.texi: Update. + locale: Provide a complete 'struct lconv' on Solaris 10, 11. * m4/locale_h.m4 (gl_LOCALE_H): On Solaris, define _LCONV_C99. * doc/posix-headers/locale.texi: Update.
--- a/doc/posix-headers/locale.texi +++ b/doc/posix-headers/locale.texi @@ -24,7 +24,7 @@ @code{int_p_cs_precedes}, @code{int_p_sign_posn}, @code{int_p_sep_by_space}, @code{int_n_cs_precedes}, @code{int_n_sign_posn}, @code{int_n_sep_by_space} on some platforms: -glibc, Solaris 11 2011-11. +glibc, OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9. @item Some platforms provide a @code{NULL} macro that cannot be used in arbitrary @@ -34,10 +34,4 @@ Portability problems not fixed by Gnulib: @itemize -@item -The @code{struct lconv} type does not contain the members -@code{int_p_cs_precedes}, @code{int_p_sign_posn}, @code{int_p_sep_by_space}, -@code{int_n_cs_precedes}, @code{int_n_sign_posn}, @code{int_n_sep_by_space} -on some platforms: -OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9. @end itemize
--- a/m4/locale_h.m4 +++ b/m4/locale_h.m4 @@ -1,4 +1,4 @@ -# locale_h.m4 serial 16 +# locale_h.m4 serial 17 dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -65,15 +65,18 @@ fi AC_SUBST([HAVE_XLOCALE_H]) - dnl Check whether 'struct lconv' is well-defined. + dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. + dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, + dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> struct lconv l; - int x = sizeof (l.decimal_point);]], + int x = sizeof (l.decimal_point); + int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no])
--- a/tests/test-locale.c +++ b/tests/test-locale.c @@ -68,14 +68,12 @@ ls += sizeof (l.n_sep_by_space); ls += sizeof (*l.int_curr_symbol); ls += sizeof (l.int_frac_digits); -#if 0 ls += sizeof (l.int_p_cs_precedes); ls += sizeof (l.int_p_sign_posn); ls += sizeof (l.int_p_sep_by_space); ls += sizeof (l.int_n_cs_precedes); ls += sizeof (l.int_n_sign_posn); ls += sizeof (l.int_n_sep_by_space); -#endif return 0; }