| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /* Copyright (C) 1991 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/ormodify it under the terms of the GNU Library General Public License aspublished by the Free Software Foundation; either version 2 of theLicense, 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULibrary General Public License for more details.You should have received a copy of the GNU Library General PublicLicense along with the GNU C Library; see the file COPYING.LIB.  Ifnot, write to the Free Software Foundation, Inc., 675 Mass Ave,Cambridge, MA 02139, USA.  */#include <string.h>static char *olds = 0;/* Parse S into tokens separated by characters in DELIM.   If S is NULL, the last string strtok() was called with is   used.  For example:	char s[] = "-abc=-def";	x = strtok(s, "-");		// x = "abc"	x = strtok(NULL, "=-");		// x = "def"	x = strtok(NULL, "=");		// x = NULL		// s = "abc\0-def\0"*/char *strtok( register char *s, register const char *delim){	char *token;	if (s == 0) {		if (olds == 0) {			return 0;		} else			s = olds;	}	/* Scan leading delimiters.  */	s += strspn(s, delim);	if (*s == '\0') {		olds = 0;		return 0;	}	/* Find the end of the token.  */	token = s;	s = strpbrk(token, delim);	if (s == 0)		/* This token finishes the string.  */		olds = 0;	else {		/* Terminate the token and make OLDS point past it.  */		*s = '\0';		olds = s + 1;	}	return token;}
 |