Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
opt
cpr
opt
curl
lib
strtok.c
Go to the documentation of this file.
1
/***************************************************************************
2
* _ _ ____ _
3
* Project ___| | | | _ \| |
4
* / __| | | | |_) | |
5
* | (__| |_| | _ <| |___
6
* \___|\___/|_| \_\_____|
7
*
8
* Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
9
*
10
* This software is licensed as described in the file COPYING, which
11
* you should have received as part of this distribution. The terms
12
* are also available at https://curl.haxx.se/docs/copyright.html.
13
*
14
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
* copies of the Software, and permit persons to whom the Software is
16
* furnished to do so, under the terms of the COPYING file.
17
*
18
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
* KIND, either express or implied.
20
*
21
***************************************************************************/
22
23
#include "
curl_setup.h
"
24
25
#ifndef HAVE_STRTOK_R
26
#include <stddef.h>
27
28
#include "
strtok.h
"
29
30
char
*
31
Curl_strtok_r
(
char
*
ptr
,
const
char
*sep,
char
**end)
32
{
33
if
(!ptr)
34
/* we got NULL input so then we get our last position instead */
35
ptr = *end;
36
37
/* pass all letters that are including in the separator string */
38
while
(*ptr && strchr(sep, *ptr))
39
++
ptr
;
40
41
if
(*ptr) {
42
/* so this is where the next piece of string starts */
43
char
*start =
ptr
;
44
45
/* set the end pointer to the first byte after the start */
46
*end = start + 1;
47
48
/* scan through the string to find where it ends, it ends on a
49
null byte or a character that exists in the separator string */
50
while
(**end && !strchr(sep, **end))
51
++*end;
52
53
if
(**end) {
54
/* the end is not a null byte */
55
**end =
'\0'
;
/* zero terminate it! */
56
++*end;
/* advance the last pointer to beyond the null byte */
57
}
58
59
return
start;
/* return the position where the string starts */
60
}
61
62
/* we ended up on a null byte, there are no more strings to find! */
63
return
NULL;
64
}
65
66
#endif
/* this was only compiled if strtok_r wasn't present */
strtok.h
Curl_strtok_r
char * Curl_strtok_r(char *ptr, const char *sep, char **end)
Definition:
strtok.c:31
ptr
UNITTEST_START char * ptr
Definition:
unit1330.c:38
curl_setup.h
rc_tagdetect_client
Author(s): Monika Florek-Jasinska
, Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:16