X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_strtok.c;h=ac4f68c9508fe3833120710c45c47314443ba24f;hb=f983558a0e07566cf65dca67cddd3f4bf81328e0;hp=1285e460c07605032cdb3a24133031008edb2cac;hpb=0705b1e15e7f3c9cfc912d73ca5407aa59daa2d1;p=fw%2Fsdcc diff --git a/device/lib/_strtok.c b/device/lib/_strtok.c index 1285e460..ac4f68c9 100644 --- a/device/lib/_strtok.c +++ b/device/lib/_strtok.c @@ -3,17 +3,17 @@ Written By - Sandeep Dutta . sandeep.dutta@usa.net (1999) - 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 + This 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, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This 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 General Public License for more details. + GNU Library General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -22,24 +22,31 @@ what you give them. Help stamp out software-hoarding! -------------------------------------------------------------------------*/ #include "string.h" -#define NULL (void *)0 #if defined(SDCC_MODEL_LARGE) || defined (SDCC_MODEL_FLAT24) -#pragma NOINDUCTION -#pragma NOINVARIANT +#pragma noinduction +#pragma noinvariant #endif -char _generic *strtok ( - char _generic *str , - char _generic *control - ) +char * strtok ( + char * str, + char * control ) { - static char _generic *s ; - register char _generic *s1 ; + static char * s; + register char * s1; if ( str ) s = str ; + if ( !s ) + return NULL; + while (*s) { + if (strchr(control,*s)) + s++; + else + break; + } + s1 = s ; while (*s) { @@ -49,6 +56,12 @@ char _generic *strtok ( } s++ ; } - return (NULL); + + s = NULL; + + if (*s1) + return s1; + else + return NULL; }