wctype-h: Avoid namespace pollution on Solaris 2.6.
authorBruno Haible <bruno@clisp.org>
Sat, 28 May 2011 18:58:14 +0000 (20:58 +0200)
committerIan Beckwith <ianb@erislabs.net>
Thu, 9 Jun 2011 20:28:41 +0000 (21:28 +0100)
* 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>.
(cherry picked from commit 05f391a9c40aaf461aacd0a27fc90bfaafdc5ccc)

ChangeLog
doc/posix-headers/wctype.texi
lib/wctype.in.h

index 1ee6670..0c1cc03 100644 (file)
--- 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
index 13c5014..38c239c 100644 (file)
@@ -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:
index feef37d..680d6b0 100644 (file)
 
 /* 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