From 4b41e9b7dc4438aec894d034923164e1884ca0c2 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 18 Oct 2009 21:16:44 +0200 Subject: [PATCH] New module 'isblank'. --- ChangeLog | 8 ++++++++ doc/posix-functions/isblank.texi | 8 ++++---- lib/isblank.c | 33 +++++++++++++++++++++++++++++++++ m4/isblank.m4 | 19 +++++++++++++++++++ modules/isblank | 25 +++++++++++++++++++++++++ 5 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 lib/isblank.c create mode 100644 m4/isblank.m4 create mode 100644 modules/isblank diff --git a/ChangeLog b/ChangeLog index caeadf26c..3bbcc2a37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2009-10-18 Bruno Haible + 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. + +2009-10-18 Bruno Haible + New module 'ctype'. * lib/ctype.in.h: New file. * m4/ctype.m4: New file. diff --git a/doc/posix-functions/isblank.texi b/doc/posix-functions/isblank.texi index 254779303..12bcd9112 100644 --- a/doc/posix-functions/isblank.texi +++ b/doc/posix-functions/isblank.texi @@ -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 diff --git a/lib/isblank.c b/lib/isblank.c new file mode 100644 index 000000000..e2d5503d1 --- /dev/null +++ b/lib/isblank.c @@ -0,0 +1,33 @@ +/* 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 . */ + +#include + +/* Specification. */ +#include + +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'); +} diff --git a/m4/isblank.m4 b/m4/isblank.m4 new file mode 100644 index 000000000..37f1a75a5 --- /dev/null +++ b/m4/isblank.m4 @@ -0,0 +1,19 @@ +# 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 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 +]) diff --git a/modules/isblank b/modules/isblank new file mode 100644 index 000000000..6dbb371f7 --- /dev/null +++ b/modules/isblank @@ -0,0 +1,25 @@ +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: + + +License: +LGPLv2+ + +Maintainer: +Bruno Haible -- 2.11.0