X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_strtok.c;h=ac4f68c9508fe3833120710c45c47314443ba24f;hb=eae1bd2f705a2c61e143c539f8c4d1e9c2b4efe6;hp=b3193d4ed33eb9d9135f2a74525fce4cebb36fad;hpb=b09af35f2f1cde7649d3ac4a6f5d2af6d97895a0;p=fw%2Fsdcc diff --git a/device/lib/_strtok.c b/device/lib/_strtok.c index b3193d4e..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 -#ifdef SDCC_MODEL_LARGE -#pragma NOINDUCTION -#pragma NOINVARIANT +#if defined(SDCC_MODEL_LARGE) || defined (SDCC_MODEL_FLAT24) +#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; }