X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_strtok.c;h=ac4f68c9508fe3833120710c45c47314443ba24f;hb=91395288bb0d1ea2c74e017213938ac858d5d808;hp=786317ead8b271aec53016715745cfa5e7e7031c;hpb=ccaa1364f24ea0207b04e628c45f4ca2ff3e5083;p=fw%2Fsdcc diff --git a/device/lib/_strtok.c b/device/lib/_strtok.c index 786317ea..ac4f68c9 100644 --- a/device/lib/_strtok.c +++ b/device/lib/_strtok.c @@ -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; }