summaryrefslogtreecommitdiff
path: root/common/strtok_r.c
blob: a0b099706aea71b447ba124881068617e1b7fbc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * public domain strtok_r()
 */

#include <string.h>

char* strtok_r( char* str, const char* delim, char** nextp )
{
    char* ret;

    if( str == NULL )
    {
        str = *nextp;
    }

    str += strspn( str, delim );

    if( *str == '\0' )
    {
        return NULL;
    }

    ret = str;

    str += strcspn( str, delim );

    if( *str )
    {
        *str++ = '\0';
    }

    *nextp = str;

    return ret;
}