PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
strsep.c
Go to the documentation of this file.
1
/*
2
* src/port/strsep.c
3
*
4
* $OpenBSD: strsep.c,v 1.8 2015/08/31 02:53:57 guenther Exp $
5
*/
6
7
/*-
8
* Copyright (c) 1990, 1993
9
* The Regents of the University of California. All rights reserved.
10
*
11
* Redistribution and use in source and binary forms, with or without
12
* modification, are permitted provided that the following conditions
13
* are met:
14
* 1. Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* 2. Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in the
18
* documentation and/or other materials provided with the distribution.
19
* 3. Neither the name of the University nor the names of its contributors
20
* may be used to endorse or promote products derived from this software
21
* without specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33
* SUCH DAMAGE.
34
*/
35
36
#include "
c.h
"
37
38
/*
39
* Get next token from string *stringp, where tokens are possibly-empty
40
* strings separated by characters from delim.
41
*
42
* Writes NULs into the string at *stringp to end tokens.
43
* delim need not remain constant from call to call.
44
* On return, *stringp points past the last NUL written (if there might
45
* be further tokens), or is NULL (if there are definitely no more tokens).
46
*
47
* If *stringp is NULL, strsep returns NULL.
48
*/
49
char
*
50
strsep
(
char
**
stringp
,
const
char
*delim)
51
{
52
char
*s;
53
const
char
*
spanp
;
54
int
c
,
55
sc
;
56
char
*
tok
;
57
58
if
((s = *
stringp
) ==
NULL
)
59
return
(
NULL
);
60
for
(
tok
= s;;)
61
{
62
c
= *s++;
63
spanp
= delim;
64
do
65
{
66
if
((
sc
= *
spanp
++) ==
c
)
67
{
68
if
(
c
== 0)
69
s =
NULL
;
70
else
71
s[-1] = 0;
72
*
stringp
= s;
73
return
(
tok
);
74
}
75
}
while
(
sc
!= 0);
76
}
77
/* NOTREACHED */
78
}
c.h
c
char * c
Definition
preproc-cursor.c:31
fb
static int fb(int x)
Definition
preproc-init.c:92
strsep
char * strsep(char **stringp, const char *delim)
Definition
strsep.c:50
src
port
strsep.c
Generated on Fri May 22 2026 11:13:17 for PostgreSQL Source Code by
1.9.8