changeset 14860:c12e3d2438e8

setlocale: Enable replacement on Cygwin 1.5. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on Cygwin 1.5.x. * doc/posix-functions/setlocale.texi: Mention that the problem with the LC_CTYPE category also exists on Cygwin 1.5.x.
author Bruno Haible <bruno@clisp.org>
date Sat, 04 Jun 2011 12:07:57 +0200
parents 66acfe2be3d5
children baaff605722d
files ChangeLog doc/posix-functions/setlocale.texi m4/setlocale.m4
diffstat 3 files changed, 19 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-06-04  Bruno Haible  <bruno@clisp.org>
+
+	setlocale: Enable replacement on Cygwin 1.5.
+	* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on
+	Cygwin 1.5.x.
+	* doc/posix-functions/setlocale.texi: Mention that the problem with the
+	LC_CTYPE category also exists on Cygwin 1.5.x.
+
 2011-06-04  Bruno Haible  <bruno@clisp.org>
 
 	strerror-override: Don't disable symbol renamings.
--- a/doc/posix-functions/setlocale.texi
+++ b/doc/posix-functions/setlocale.texi
@@ -13,9 +13,9 @@
 ignores the environment variables @code{LC_ALL}, @code{@var{category}}, and
 @code{LANG}.
 @item
-On Windows platforms (excluding Cygwin), @code{setlocale(LC_ALL,@var{name})}
-succeeds and sets the LC_CTYPE category to @samp{C} when it does not support
-the encoding, instead of failing.
+On Windows platforms (excluding Cygwin) and Cygwin 1.5.x,
+@code{setlocale(LC_ALL,@var{name})} succeeds and sets the LC_CTYPE category to
+@samp{C} when it does not support the encoding, instead of failing.
 @item
 On Windows platforms (excluding Cygwin), @code{setlocale} understands different
 locale names, that are not based on ISO 639 language names and ISO 3166 country
--- a/m4/setlocale.m4
+++ b/m4/setlocale.m4
@@ -1,4 +1,4 @@
-# setlocale.m4 serial 2
+# setlocale.m4 serial 3
 dnl Copyright (C) 2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -12,6 +12,13 @@
     dnl On native Windows systems, setlocale(category,NULL) does not look at
     dnl the environment variables LC_ALL, category, and LANG.
     mingw*) REPLACE_SETLOCALE=1 ;;
+    dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL)
+    dnl is then still "C".
+    cygwin*)
+      case `uname -r` in
+        1.5.*) REPLACE_SETLOCALE=1 ;;
+      esac
+      ;;
   esac
   if test $REPLACE_SETLOCALE = 1; then
     AC_LIBOBJ([setlocale])