summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--doc/posix-headers/wctype.texi4
-rw-r--r--lib/wctype.in.h13
3 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f9ee06b019..9c8b3a9e38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-05-29 Bruno Haible <bruno@clisp.org>
+
+ wctype-h: Avoid namespace pollution on Solaris 2.6.
+ * lib/wctype.in.h: On Solaris, undefine 'multibyte' and a few other
+ identifiers.
+ * doc/posix-headers/wctype.texi: Mention the problem.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
2011-05-28 Jim Meyering <meyering@redhat.com>
parse-datetime.y: accommodate -Wstrict-overflow
diff --git a/doc/posix-headers/wctype.texi b/doc/posix-headers/wctype.texi
index 13c50145c7..38c239cb73 100644
--- a/doc/posix-headers/wctype.texi
+++ b/doc/posix-headers/wctype.texi
@@ -25,6 +25,10 @@ IRIX 6.5.30.
@item
The functions @code{isw*} are actually defined as macros that don't work,
on IRIX 5.3.
+@item
+This header file defines some identifiers, such as @code{multibyte}, as macros
+on some platforms:
+Solaris 2.6.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
index df98128f64..5e6798a449 100644
--- a/lib/wctype.in.h
+++ b/lib/wctype.in.h
@@ -59,6 +59,19 @@
/* The definition of _GL_WARN_ON_USE is copied here. */
+/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
+ #defines a number of identifiers in the application namespace. Revert
+ these #defines. */
+#ifdef __sun
+# undef multibyte
+# undef eucw1
+# undef eucw2
+# undef eucw3
+# undef scrw1
+# undef scrw2
+# undef scrw3
+#endif
+
/* Define wint_t and WEOF. (Also done in wchar.in.h.) */
#if !@HAVE_WINT_T@ && !defined wint_t
# define wint_t int