From 04f92ed843ff3516dd6b12341ad44c397634cf16 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 20 Dec 2010 02:18:07 +0100 Subject: [PATCH] wctype: Make it work in C++ mode on OSF/1 5.1. * lib/wctype.in.h (iswblank): Declare but not define here. * lib/iswblank.c: New file, extracted from lib/wctype.in.h. * m4/wctype_h.m4 (gl_WCTYPE_H): Arrange to compile it if needed. * modules/wctype (Files): Add lib/iswblank.c. --- ChangeLog | 8 ++++++++ lib/iswblank.c | 27 +++++++++++++++++++++++++++ lib/wctype.in.h | 12 ++---------- m4/wctype_h.m4 | 12 +++++++++++- modules/wctype | 1 + 5 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 lib/iswblank.c diff --git a/ChangeLog b/ChangeLog index 43dc38e41..f9020abed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2010-12-19 Bruno Haible + wctype: Make it work in C++ mode on OSF/1 5.1. + * lib/wctype.in.h (iswblank): Declare but not define here. + * lib/iswblank.c: New file, extracted from lib/wctype.in.h. + * m4/wctype_h.m4 (gl_WCTYPE_H): Arrange to compile it if needed. + * modules/wctype (Files): Add lib/iswblank.c. + +2010-12-19 Bruno Haible + signal: Document problem with type of SIGRTMIN, SIGRTMAX on OSF/1 5.1. * doc/posix-headers/signal.texi: Document OSF/1 5.1 problem. * lib/strsignal.c (strsignal): Cast SIGRTMIN to 'int'. diff --git a/lib/iswblank.c b/lib/iswblank.c new file mode 100644 index 000000000..386c01474 --- /dev/null +++ b/lib/iswblank.c @@ -0,0 +1,27 @@ +/* Test wide character for being blank. + Copyright (C) 2008-2010 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. */ + +#include + +/* Specification. */ +#include + +int +iswblank (wint_t wc) +{ + return wc == ' ' || wc == '\t'; +} diff --git a/lib/wctype.in.h b/lib/wctype.in.h index 1f209f337..9a6209895 100644 --- a/lib/wctype.in.h +++ b/lib/wctype.in.h @@ -284,18 +284,10 @@ towupper # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswblank rpl_iswblank # endif -# endif - -static inline int -# if @REPLACE_ISWBLANK@ -rpl_iswblank +extern int rpl_iswblank (wint_t wc); # else -iswblank +extern int iswblank (wint_t wc); # endif - (wint_t wc) -{ - return wc == ' ' || wc == '\t'; -} #endif diff --git a/m4/wctype_h.m4 b/m4/wctype_h.m4 index bc6b6e791..edcf41f98 100644 --- a/m4/wctype_h.m4 +++ b/m4/wctype_h.m4 @@ -1,4 +1,4 @@ -# wctype_h.m4 serial 8 +# wctype_h.m4 serial 9 dnl A placeholder for ISO C99 , for platforms that lack it. @@ -82,4 +82,14 @@ AC_DEFUN([gl_WCTYPE_H], REPLACE_ISWCNTRL=0 fi AC_SUBST([REPLACE_ISWCNTRL]) + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + dnl Redefine all of iswcntrl, ..., towupper in . + : + else + if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then + dnl Redefine only iswblank. + AC_LIBOBJ([iswblank]) + fi + fi ]) diff --git a/modules/wctype b/modules/wctype index b0fc26d09..99dbe44a5 100644 --- a/modules/wctype +++ b/modules/wctype @@ -3,6 +3,7 @@ A that conforms better to C99. Files: lib/wctype.in.h +lib/iswblank.c m4/wctype_h.m4 m4/wint_t.m4 -- 2.11.0