From afc41fa966b013332fd7b1844607e4f78f192389 Mon Sep 17 00:00:00 2001 From: EST 1998 Nathan Bryant Date: Thu, 29 Jan 1998 21:51:06 +0000 Subject: check for strtok_r remove fr from ALL_LINGUAS add libsupport, INTLLIBS, Thu Jan 29 16:49:12 EST 1998 Nathan Bryant * configure.in: check for strtok_r * programs/freecell/configure.in: remove fr from ALL_LINGUAS * programs/girc/Makefile.am: add libsupport, INTLLIBS, DL_LIB * programs/gmailman/Makefile.am: add DL_LIB * programs/gsm/Makefile.am: add DL_LIB * support/strtok_r.c: new file svn path=/trunk/; revision=59 --- support/strtok_r.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 support/strtok_r.c (limited to 'support/strtok_r.c') diff --git a/support/strtok_r.c b/support/strtok_r.c new file mode 100644 index 0000000..fb68ad8 --- /dev/null +++ b/support/strtok_r.c @@ -0,0 +1,62 @@ +/* Reentrant string tokenizer. Generic version. +Copyright (C) 1991, 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include + + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" +*/ +char * +strtok_r (s, delim, save_ptr) + char *s; + const char *delim; + char **save_ptr; +{ + char *token; + + if (s == NULL) + s = *save_ptr; + + /* Scan leading delimiters. */ + s += strspn (s, delim); + if (*s == '\0') + return NULL; + + /* Find the end of the token. */ + token = s; + s = strpbrk (token, delim); + if (s == NULL) + /* This token finishes the string. */ + *save_ptr = strchr (token, '\0'); + else + { + /* Terminate the token and make *SAVE_PTR point past it. */ + *s = '\0'; + *save_ptr = s + 1; + } + return token; +} -- cgit v1.2.1