changeset 8660:f682656899d3

New module 'locale'.
author Bruno Haible <bruno@clisp.org>
date Tue, 10 Apr 2007 23:41:17 +0000
parents d6d05661430a
children 36b51a57755d
files ChangeLog lib/locale_.h m4/locale_h.m4 modules/locale
diffstat 4 files changed, 95 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-10  Bruno Haible  <bruno@clisp.org>
+
+	* modules/locale: New file.
+	* lib/locale_.h: New file.
+	* m4/locale_h.m4: New file.
+
 2007-04-10  Paul Eggert  <eggert@cs.ucla.edu>
             Bruno Haible  <bruno@clisp.org>
 
new file mode 100644
--- /dev/null
+++ b/lib/locale_.h
@@ -0,0 +1,29 @@
+/* A POSIX <locale.h>.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program 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 program 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 program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_LOCALE_H
+#define _GL_LOCALE_H
+
+#include @ABSOLUTE_LOCALE_H@
+
+/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
+   On systems that don't define it, use the same value as GNU libintl.  */
+#if !defined LC_MESSAGES
+# define LC_MESSAGES 1729
+#endif
+
+#endif /* _GL_LOCALE_H */
new file mode 100644
--- /dev/null
+++ b/m4/locale_h.m4
@@ -0,0 +1,24 @@
+# locale_h.m4 serial 1
+dnl Copyright (C) 2007 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.
+
+AC_DEFUN([gl_LOCALE_H],
+[
+  AC_CACHE_CHECK([whether locale.h conforms to POSIX],
+    [gl_cv_header_working_locale_h],
+    [AC_TRY_COMPILE([#include <locale.h>
+int x = LC_MESSAGES;], [],
+       [gl_cv_header_working_locale_h=yes],
+       [gl_cv_header_working_locale_h=no])])
+  if test $gl_cv_header_working_locale_h = yes; then
+    LOCALE_H=
+  else
+    gl_ABSOLUTE_HEADER([locale.h])
+    ABSOLUTE_LOCALE_H=\"$gl_cv_absolute_locale_h\"
+    AC_SUBST([ABSOLUTE_LOCALE_H])
+    LOCALE_H=locale.h
+  fi
+  AC_SUBST([LOCALE_H])
+])
new file mode 100644
--- /dev/null
+++ b/modules/locale
@@ -0,0 +1,36 @@
+Description:
+A <locale.h> that conforms to POSIX.
+
+Files:
+lib/locale_.h
+m4/locale_h.m4
+
+Depends-on:
+absolute-header
+
+configure.ac:
+gl_LOCALE_H
+
+Makefile.am:
+BUILT_SOURCES += $(LOCALE_H)
+
+# We need the following in order to create <locale.h> when the system
+# doesn't have one that provides all definitions.
+locale.h: locale_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''ABSOLUTE_LOCALE_H''@|$(ABSOLUTE_LOCALE_H)|g' \
+	      < $(srcdir)/locale_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += locale.h locale.h-t
+
+Include:
+<locale.h>
+
+License:
+LGPL
+
+Maintainer:
+Bruno Haible
+