X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fstrtok_r.c;h=9bda06468b411edf01e8afc5721379674c3641c4;hb=1276a2c5f24c0c932426aca9c899fa524d2443f2;hp=83064a3eb1a78d13c39e27c3515b4d827c87638c;hpb=e606c288b838e1cc23db903b8e41f2f058cda932;p=gnulib.git diff --git a/lib/strtok_r.c b/lib/strtok_r.c index 83064a3eb..9bda06468 100644 --- a/lib/strtok_r.c +++ b/lib/strtok_r.c @@ -1,20 +1,20 @@ /* Reentrant string tokenizer. Generic version. - Copyright (C) 1991,1996-1999,2001,2004 Free Software Foundation, Inc. + Copyright (C) 1991, 1996-1999, 2001, 2004, 2007, 2009-2014 Free Software + Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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. + 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, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include @@ -22,12 +22,10 @@ #include -#undef strtok_r -#undef __strtok_r - -#ifndef _LIBC -/* Get specification. */ -# include "strtok_r.h" +#ifdef _LIBC +# undef strtok_r +# undef __strtok_r +#else # define __strtok_r strtok_r # define __rawmemchr strchr #endif @@ -35,23 +33,12 @@ /* 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" - - For the POSIX documentation for this function, see: - http://www.opengroup.org/onlinepubs/009695399/functions/strtok.html - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x80. - - See also strsep(). + 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 (char *s, const char *delim, char **save_ptr)