Here comes the 'isblank' module: 2009-10-18 Bruno Haible <br...@clisp.org>
New module 'isblank'. * lib/isblank.c: New file. * m4/isblank.m4: New file. * modules/isblank: New file. * doc/posix-functions/isblank.texi: Mention the new module. ================================ lib/isblank.c ================================ /* Test whether a character is a blank. Copyright (C) 2009 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <ctype.h> int isblank (int c) { /* On all known platforms, in all predefined locales, isblank(c) is likely equivalent with (c == ' ' || c == '\t'). Look at the glibc definition (in glibc/localedata/locales/i18n): The "blank" characters are '\t', ' ', U+1680, U+180E, U+2000..U+2006, U+2008..U+200A, U+205F, U+3000, and none except the first two is present in a common 8-bit encoding. Therefore the substitute for other platforms is not more complicated than this. */ return (c == ' ' || c == '\t'); } ================================ m4/isblank.m4 ================================ # isblank.m4 serial 1 dnl Copyright (C) 2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ISBLANK], [ dnl Persuade glibc <ctype.h> to declare isblank(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_CTYPE_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([isblank]) if test $ac_cv_func_isblank = no; then HAVE_ISBLANK=0 CTYPE_H='ctype.h' AC_LIBOBJ([isblank]) fi ]) =============================== modules/isblank =============================== Description: isblank() function: test whether a single-byte character is a blank. Files: lib/isblank.c m4/isblank.m4 Depends-on: extensions ctype configure.ac: gl_FUNC_ISBLANK gl_CTYPE_MODULE_INDICATOR([isblank]) Makefile.am: Include: <ctype.h> License: LGPLv2+ Maintainer: Bruno Haible =============================================================================== --- doc/posix-functions/isblank.texi.orig 2009-10-18 21:14:36.000000000 +0200 +++ doc/posix-functions/isblank.texi 2009-10-07 11:12:33.000000000 +0200 @@ -4,15 +4,15 @@ POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/isblank.html} -Gnulib module: --- +Gnulib module: isblank Portability problems fixed by Gnulib: @itemize +...@item +This function is missing on some platforms: +AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw. @end itemize Portability problems not fixed by Gnulib: @itemize -...@item -This function is missing on some platforms: -AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw. @end itemize