/*
 * edlib v1.1 Copyright 1989 Edwin Hoogerbeets
 * This code is freely redistributable as long as no charge other than
 * reasonable copying fees are levied for it.
 */

#define STRING_END      '\0'
#ifndef NULL
#define NULL    0L
#endif

char *strtok(buf, separators)
register char *buf, *separators;
{
        register char *token, *end;     /* Start and end of token. */
        extern char *strpbrk();
        static char *fromLastTime;

        if (token = buf ? buf : fromLastTime) {
                token += strspn(token, separators);     /* Find token! */
                if (*token == STRING_END)
                        return(NULL);
                fromLastTime = ((end = strpbrk(token,separators))
                                ? &end[1]
                                : NULL);
                *end = STRING_END;                      /* Cut it short! */
        }
        return(token);
}
