Lely core libraries
2.3.4
string.c
Go to the documentation of this file.
1
23
#include "
libc.h
"
24
#include <
lely/libc/string.h
>
25
26
#if !LELY_NO_MALLOC
27
28
#include <
stdlib.h
>
29
30
#if !(_MSC_VER >= 1400) && !(_POSIX_C_SOURCE >= 200809L) \
31
&& !defined(__MINGW32__)
32
char
*
33
strdup(
const
char
*s)
34
{
35
size_t
size = strlen(s) + 1;
36
char
*dup = malloc(size);
37
if
(!dup)
38
return
NULL;
39
return
memcpy(dup, s, size);
40
}
41
#endif
42
43
#if !(_POSIX_C_SOURCE >= 200809L)
44
char
*
45
strndup(
const
char
*s,
size_t
size)
46
{
47
size = strnlen(s, size);
48
char
*dup = malloc(size + 1);
49
if
(!dup)
50
return
NULL;
51
dup[size] =
'\0'
;
52
return
memcpy(dup, s, size);
53
}
54
#endif
55
56
#endif // !LELY_NO_MALLOC
57
58
#if !(_MSC_VER >= 1400) && !(_POSIX_C_SOURCE >= 200809L) \
59
&& !defined(__MINGW32__)
60
size_t
61
strnlen(
const
char
*s,
size_t
maxlen)
62
{
63
size_t
size = 0;
64
while
(size < maxlen && *s++)
65
size++;
66
return
size;
67
}
68
#endif
string.h
libc.h
stdlib.h
src
libc
string.c
Generated by
1.8.17