		/* Copyright 2000-2004 The Apache Software Foundation
		 *
		 * Licensed under the Apache License, Version 2.0 (the "License");
		 * you may not use this file except in compliance with the License.
		 * You may obtain a copy of the License at
		 *
		 *     http://www.apache.org/licenses/LICENSE-2.0
		 *
		 * Unless required by applicable law or agreed to in writing, software
		 * distributed under the License is distributed on an "AS IS" BASIS,
		 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
		 * See the License for the specific language governing permissions and
		 * limitations under the License.
		 */
		
		#ifdef HAVE_STDDEF_H
		#include <stddef.h>        /* for NULL */
		#endif
		
		#include "apr.h"
		#include "apr_strings.h"
		
		#define APR_WANT_STRFUNC   /* for strchr() */
		#include "apr_want.h"
		
		APR_DECLARE(char *) apr_strtok(char *str, const char *sep, char **last)
          30    {
          30        char *token;
		
          30        if (!str)           /* subsequent call */
          19            str = *last;    /* start where we left off */
		
		    /* skip characters in sep (will terminate at '\0') */
          74        while (*str && strchr(sep, *str))
          44            ++str;
		
          30        if (!*str)          /* no more tokens */
          12            return NULL;
		
          18        token = str;
		
		    /* skip valid token characters to terminate token and
		     * prepare for the next call (will terminate at '\0) 
		     */
          18        *last = token + 1;
         150        while (**last && !strchr(sep, **last))
         132            ++*last;
		
          18        if (**last) {
          10            **last = '\0';
          10            ++*last;
		    }
		
          18        return token;
		}
