From 2d0fc24aba5e2c71a55b991a6e0ba6a01110581f Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 10 Jun 2003 12:13:31 +0000 Subject: [PATCH] New module strchrnul. --- ChangeLog | 6 +++++- lib/ChangeLog | 5 +++++ lib/strchrnul.c | 31 +++++++++++++++++++++++++++++++ lib/strchrnul.h | 28 ++++++++++++++++++++++++++++ m4/ChangeLog | 4 ++++ m4/strchrnul.m4 | 23 +++++++++++++++++++++++ modules/strchrnul | 20 ++++++++++++++++++++ 7 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 lib/strchrnul.c create mode 100644 lib/strchrnul.h create mode 100644 m4/strchrnul.m4 create mode 100644 modules/strchrnul diff --git a/ChangeLog b/ChangeLog index 5ce99b2628..afe2d8126d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ -2003-06=10 Simon Josefsson +2003-06-10 Simon Josefsson + + * modules/strchrnul: New file. + +2003-06-10 Simon Josefsson * modules/argp: New file. diff --git a/lib/ChangeLog b/lib/ChangeLog index 685049a965..92ee7d93a6 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2003-06-10 Simon Josefsson + + * strchrnul.h: New file. + * strchrnul.c: New file. + 2003-06=10 Simon Josefsson * argp.h: New file, from glibc. diff --git a/lib/strchrnul.c b/lib/strchrnul.c new file mode 100644 index 0000000000..694e24a0ab --- /dev/null +++ b/lib/strchrnul.c @@ -0,0 +1,31 @@ +/* Searching in a string. + Copyright (C) 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Specification. */ +#include "strchrnul.h" + +/* Find the first occurrence of C in S or the final NUL byte. */ +char * +strchrnul (s, c_in) + const char *s; + int c_in; +{ + while (*s && (*s != c_in)) + s++; + + return (char*) s; +} diff --git a/lib/strchrnul.h b/lib/strchrnul.h new file mode 100644 index 0000000000..f7589e990b --- /dev/null +++ b/lib/strchrnul.h @@ -0,0 +1,28 @@ +/* Searching in a string. + Copyright (C) 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#if HAVE_STRCHRNUL + +/* Get strchrnul() declaration. */ +#include + +#else + +/* Find the first occurrence of C in S or the final NUL byte. */ +extern char *strchrnul (const char *s, int c_in); + +#endif diff --git a/m4/ChangeLog b/m4/ChangeLog index 1b46f78c92..e31bef8678 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,7 @@ +2003-06-10 Simon Josefsson + + * strchrnul.m4: New file. + 2003-06-07 Bruno Haible * fnmatch.m4 (_AC_LIBOBJ_FNMATCH, gl_FUNC_FNMATCH_POSIX, diff --git a/m4/strchrnul.m4 b/m4/strchrnul.m4 new file mode 100644 index 0000000000..565e338d5c --- /dev/null +++ b/m4/strchrnul.m4 @@ -0,0 +1,23 @@ +# strchrnul.m4 serial 1 +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +AC_DEFUN([gl_FUNC_STRCHRNUL], +[ + dnl Persuade glibc to declare strchrnul(). + AC_REQUIRE([AC_GNU_SOURCE]) + + AC_REPLACE_FUNCS(strchrnul) + if test $ac_cv_func_strchrnul = no; then + gl_PREREQ_STRCHRNUL + fi +]) + +# Prerequisites of lib/strchrnul.c. +AC_DEFUN([gl_PREREQ_STRCHRNUL], [ + AC_CHECK_HEADERS_ONCE(string.h) +]) diff --git a/modules/strchrnul b/modules/strchrnul new file mode 100644 index 0000000000..b174523fbe --- /dev/null +++ b/modules/strchrnul @@ -0,0 +1,20 @@ +Description: +strchrnul(): Find the first occurrence of C in S or the final NUL byte. + +Files: +lib/strchrnul.h +lib/strchrnul.c +m4/strchrnul.m4 + +Depends-on: + +configure.ac: +gl_FUNC_STRCHRNUL + +Makefile.am: + +Include: +"strchrnul.h" + +Maintainer: +FSF -- 2.30.2