iPXE
core
stringextra.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1991, 1992 Linus Torvalds
3
* Copyright (C) 2004 Tobias Lorenz
4
*
5
* string handling functions
6
* based on linux/lib/string.c
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License version 2 as
10
* published by the Free Software Foundation.
11
*/
12
13
FILE_LICENCE
( GPL2_ONLY );
14
15
/*
16
* stupid library routines.. The optimized versions should generally be found
17
* as inline code in <asm-xx/string.h>
18
*
19
* These are buggy as well..
20
*
21
* * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de>
22
* - Added strsep() which will replace strtok() soon (because strsep() is
23
* reentrant and should be faster). Use only strsep() in new code, please.
24
*/
25
26
/*
27
* these are the standard string functions that are currently not used by
28
* any code in etherboot. put into a separate file to avoid linking them in
29
* with the rest of string.o
30
* if anything ever does want to use a function of these, consider moving
31
* the function in question back into string.c
32
*/
33
34
#include <
stdint.h
>
35
#include <
stdlib.h
>
36
#include <
string.h
>
37
#include <
ctype.h
>
38
39
/* *** FROM string.c *** */
40
41
#ifndef __HAVE_ARCH_STRPBRK
42
/**
43
* strpbrk - Find the first occurrence of a set of characters
44
* @cs: The string to be searched
45
* @ct: The characters to search for
46
*/
47
char
*
strpbrk
(
const
char
*
cs
,
const
char
* ct)
48
{
49
const
char
*sc1,*sc2;
50
51
for
( sc1 =
cs
; *sc1 !=
'\0'
; ++sc1) {
52
for
( sc2 = ct; *sc2 !=
'\0'
; ++sc2) {
53
if
(*sc1 == *sc2)
54
return
(
char
*) sc1;
55
}
56
}
57
return
NULL
;
58
}
59
#endif
60
61
#ifndef __HAVE_ARCH_STRSEP
62
/**
63
* strsep - Split a string into tokens
64
* @s: The string to be searched
65
* @ct: The characters to search for
66
*
67
* strsep() updates @s to point after the token, ready for the next call.
68
*
69
* It returns empty tokens, too, behaving exactly like the libc function
70
* of that name. In fact, it was stolen from glibc2 and de-fancy-fied.
71
* Same semantics, slimmer shape. ;)
72
*/
73
char
*
strsep
(
char
**s,
const
char
*ct)
74
{
75
char
*sbegin = *s, *
end
;
76
77
if
(sbegin ==
NULL
)
78
return
NULL
;
79
80
end
=
strpbrk
(sbegin, ct);
81
if
(
end
)
82
*
end
++ =
'\0'
;
83
*s =
end
;
84
85
return
sbegin;
86
}
87
#endif
NULL
#define NULL
NULL pointer (VOID *)
Definition
Base.h:322
ctype.h
Character types.
FILE_LICENCE
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition
compiler.h:896
stdint.h
string.h
String functions.
cs
uint32_t cs
Definition
librm.h:14
end
uint32_t end
Ending offset.
Definition
netvsc.h:7
stdlib.h
strpbrk
char * strpbrk(const char *cs, const char *ct)
strpbrk - Find the first occurrence of a set of characters @cs: The string to be searched @ct: The ch...
Definition
stringextra.c:47
strsep
char * strsep(char **s, const char *ct)
strsep - Split a string into tokens @s: The string to be searched @ct: The characters to search for
Definition
stringextra.c:73
Generated by
1.14.0