[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: coreutils 6.6 fails to compile on IRIX 5.3
From: |
Paul Eggert |
Subject: |
Re: coreutils 6.6 fails to compile on IRIX 5.3 |
Date: |
Sat, 23 Dec 2006 23:55:50 -0800 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) |
Bruno Haible <address@hidden> writes:
> ! #if HAVE_WCHAR_H
> ! # include <wctype.h>
> ! #else
> ! # ifndef iswprint
> ! # define iswprint(wc) 1
> ! # endif
> ! #endif
That should work, but I'd prefer something less intrusive on uses of
the module, so that the source code says only "#include <wctype.h>".
I'm willing to complicate the module implementation a bit to get
there. The idea is to enable simplifications like the patch proposed in
<http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00202.html>.
How about the following patch instead? I installed it.
2006-12-23 Paul Eggert <address@hidden>
Fix bug reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00228.html>
where quotearg.c didn't compile on Mac OS X 10.2 because it
lacks <wchar.h> and wint_t.
* lib/wctype_.h (__wctype_wint_t): New type.
Include <stdio.h>, <time.h>, <wchar.h> only if HAVE_WINT_T.
(iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph):
(iswlower, iswprint, iswpunct, iswspace, iswupper, ixwxdigit):
Arg is now of type __wctype_wint_t, not wint_t.
* m4/wctype.m4 (gl_WCTYPE_H): Require gt_TYPE_WINT_T, and
substitute HAVE_WINT_T.
* modules/wctype (Files): Add m4/wint_t.m4.
(wctype.h): Substitute HAVE_WINT_T.
Index: lib/wctype_.h
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/wctype_.h,v
retrieving revision 1.2
diff -u -p -r1.2 wctype_.h
--- lib/wctype_.h 22 Dec 2006 16:27:26 -0000 1.2
+++ lib/wctype_.h 24 Dec 2006 07:55:05 -0000
@@ -29,14 +29,19 @@
#ifndef _GL_WCTYPE_H
#define _GL_WCTYPE_H
+#if @HAVE_WINT_T@ - 0
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
<wchar.h>.
BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
<wchar.h>. */
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+typedef wint_t __wctype_wint_t;
+#else
+typedef int __wctype_wint_t;
+#endif
/* Include the original <wctype.h> if it exists.
BeOS 5 has the functions but no <wctype.h>. */
@@ -55,7 +60,7 @@ static wint_t _ctmp_;
#if !defined iswalnum && !HAVE_ISWCNTRL
static inline int
-iswalnum (wint_t wc)
+iswalnum (__wctype_wint_t wc)
{
return ((wc >= '0' && wc <= '9')
|| ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
@@ -65,7 +70,7 @@ iswalnum (wint_t wc)
#if !defined iswalpha && !HAVE_ISWCNTRL
static inline int
-iswalpha (wint_t wc)
+iswalpha (__wctype_wint_t wc)
{
return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
}
@@ -74,7 +79,7 @@ iswalpha (wint_t wc)
#if !defined iswblank && !HAVE_ISWCNTRL
static inline int
-iswblank (wint_t wc)
+iswblank (__wctype_wint_t wc)
{
return wc == ' ' || wc == '\t';
}
@@ -83,7 +88,7 @@ iswblank (wint_t wc)
#if !defined iswcntrl && !HAVE_ISWCNTRL
static inline int
-iswcntrl (wint_t wc)
+iswcntrl (__wctype_wint_t wc)
{
return (wc & ~0x1f) == 0 || wc == 0x7f;
}
@@ -92,7 +97,7 @@ iswcntrl (wint_t wc)
#if !defined iswdigit && !HAVE_ISWCNTRL
static inline int
-iswdigit (wint_t wc)
+iswdigit (__wctype_wint_t wc)
{
return wc >= '0' && wc <= '9';
}
@@ -101,7 +106,7 @@ iswdigit (wint_t wc)
#if !defined iswgraph && !HAVE_ISWCNTRL
static inline int
-iswgraph (wint_t wc)
+iswgraph (__wctype_wint_t wc)
{
return wc >= '!' && wc <= '~';
}
@@ -110,7 +115,7 @@ iswgraph (wint_t wc)
#if !defined iswlower && !HAVE_ISWCNTRL
static inline int
-iswlower (wint_t wc)
+iswlower (__wctype_wint_t wc)
{
return wc >= 'a' && wc <= 'z';
}
@@ -119,7 +124,7 @@ iswlower (wint_t wc)
#if !defined iswprint && !HAVE_ISWCNTRL
static inline int
-iswprint (wint_t wc)
+iswprint (__wctype_wint_t wc)
{
return wc >= ' ' && wc <= '~';
}
@@ -128,7 +133,7 @@ iswprint (wint_t wc)
#if !defined iswpunct && !HAVE_ISWCNTRL
static inline int
-iswpunct (wint_t wc)
+iswpunct (__wctype_wint_t wc)
{
return (wc >= '!' && wc <= '~'
&& !((wc >= '0' && wc <= '9')
@@ -139,7 +144,7 @@ iswpunct (wint_t wc)
#if !defined iswspace && !HAVE_ISWCNTRL
static inline int
-iswspace (wint_t wc)
+iswspace (__wctype_wint_t wc)
{
return (wc == ' ' || wc == '\t'
|| wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
@@ -149,7 +154,7 @@ iswspace (wint_t wc)
#if !defined iswupper && !HAVE_ISWCNTRL
static inline int
-iswupper (wint_t wc)
+iswupper (__wctype_wint_t wc)
{
return wc >= 'A' && wc <= 'Z';
}
@@ -158,7 +163,7 @@ iswupper (wint_t wc)
#if !defined iswxdigit && !HAVE_ISWCNTRL
static inline int
-iswxdigit (wint_t wc)
+iswxdigit (__wctype_wint_t wc)
{
return ((wc >= '0' && wc <= '9')
|| ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
Index: m4/wctype.m4
===================================================================
RCS file: /cvsroot/gnulib/gnulib/m4/wctype.m4,v
retrieving revision 1.2
diff -u -p -r1.2 wctype.m4
--- m4/wctype.m4 22 Dec 2006 16:27:26 -0000 1.2
+++ m4/wctype.m4 24 Dec 2006 07:55:05 -0000
@@ -13,6 +13,9 @@ AC_DEFUN([gl_WCTYPE_H],
AC_CHECK_HEADERS_ONCE([wctype.h])
AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_SUBST([HAVE_WINT_T])
+
if test $ac_cv_header_wctype_h = yes; then
gl_ABSOLUTE_HEADER([wctype.h])
ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\"
Index: modules/wctype
===================================================================
RCS file: /cvsroot/gnulib/gnulib/modules/wctype,v
retrieving revision 1.1
diff -u -p -r1.1 wctype
--- modules/wctype 22 Dec 2006 00:21:54 -0000 1.1
+++ modules/wctype 24 Dec 2006 07:55:05 -0000
@@ -4,6 +4,7 @@ A <wctype.h> that conforms better to C99
Files:
lib/wctype_.h
m4/wctype.m4
+m4/wint_t.m4
Depends-on:
@@ -21,6 +22,7 @@ wctype.h: wctype_.h
sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
-e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \
+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
< $(srcdir)/wctype_.h; \
} > address@hidden
mv address@hidden $@
- coreutils 6.6 fails to compile on IRIX 5.3, Georg Schwarz, 2006/12/03
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Jim Meyering, 2006/12/03
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Paul Eggert, 2006/12/04
- Message not available
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Paul Eggert, 2006/12/20
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Georg Schwarz, 2006/12/21
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Paul Eggert, 2006/12/21
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Bruno Haible, 2006/12/22
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Bruno Haible, 2006/12/22
- Re: coreutils 6.6 fails to compile on IRIX 5.3,
Paul Eggert <=
- Message not available
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Eric Blake, 2006/12/27
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Eric Blake, 2006/12/27
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Jim Meyering, 2006/12/27
- Re: coreutils 6.6 fails to compile on IRIX 5.3, Paul Eggert, 2006/12/27