changeset 16718:e4aad6f843ed

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.
author Bruno Haible <bruno@clisp.org>
date Sun, 25 Mar 2012 13:45:45 +0200
parents 474c0712e7aa
children 8d5d2ed0afb0
files ChangeLog doc/posix-headers/locale.texi m4/locale_h.m4
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-03-25  Bruno Haible  <bruno@clisp.org>
 
+	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.
+
 	locale: Provide a working 'struct lconv'.
 	* lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1.
 	* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
--- 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.
+glibc, Solaris 11 2011-11.
 
 @item
 Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
@@ -39,5 +39,5 @@
 @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 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
+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 15
+# locale_h.m4 serial 16
 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,
@@ -17,6 +17,15 @@
   dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
   AC_REQUIRE([gl_STDDEF_H])
 
+  dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
+  dnl only if _LCONV_C99 is defined.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    solaris*)
+      AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.])
+      ;;
+  esac
+
   AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001],
     [gl_cv_header_locale_h_posix2001],
     [AC_COMPILE_IFELSE(