35#ifndef ZYAN_CUSTOM_LIBC
52#define ZYAN_ERRNO errno
65#define ZYAN_VA_START va_start
66#define ZYAN_VA_ARG va_arg
67#define ZYAN_VA_END va_end
68#define ZYAN_VA_COPY(dest, source) va_copy((dest), (source))
76#define ZYAN_FPUTS fputs
77#define ZYAN_FPUTC fputc
78#define ZYAN_FPRINTF fprintf
79#define ZYAN_PRINTF printf
82#define ZYAN_SCANF scanf
83#define ZYAN_SSCANF sscanf
84#define ZYAN_VSNPRINTF vsnprintf
91#define ZYAN_STDIN stdin
92#define ZYAN_STDOUT stdout
93#define ZYAN_STDERR stderr
100#define ZYAN_CALLOC calloc
101#define ZYAN_FREE free
102#define ZYAN_GETENV getenv
103#define ZYAN_MALLOC malloc
104#define ZYAN_REALLOC realloc
111#define ZYAN_MEMCHR memchr
112#define ZYAN_MEMCMP memcmp
113#define ZYAN_MEMCPY memcpy
114#define ZYAN_MEMMOVE memmove
115#define ZYAN_MEMSET memset
116#define ZYAN_STRCAT strcat
117#define ZYAN_STRCHR strchr
118#define ZYAN_STRCMP strcmp
119#define ZYAN_STRCOLL strcoll
120#define ZYAN_STRCPY strcpy
121#define ZYAN_STRCSPN strcspn
122#define ZYAN_STRLEN strlen
123#define ZYAN_STRNCAT strncat
124#define ZYAN_STRNCMP strncmp
125#define ZYAN_STRNCPY strncpy
126#define ZYAN_STRPBRK strpbrk
127#define ZYAN_STRRCHR strrchr
128#define ZYAN_STRSPN strspn
129#define ZYAN_STRSTR strstr
130#define ZYAN_STRTOK strtok
131#define ZYAN_STRXFRM strxfrm
154#if defined(ZYAN_MSVC) || defined(ZYAN_ICC)
161# define ZYAN_VA_START __crt_va_start
162# define ZYAN_VA_ARG __crt_va_arg
163# define ZYAN_VA_END __crt_va_end
164# define ZYAN_VA_COPY(destination, source) ((destination) = (source))
166#elif defined(ZYAN_GNUC)
173# define ZYAN_VA_START(v, l) __builtin_va_start(v, l)
174# define ZYAN_VA_END(v) __builtin_va_end(v)
175# define ZYAN_VA_ARG(v, l) __builtin_va_arg(v, l)
176# define ZYAN_VA_COPY(d, s) __builtin_va_copy(d, s)
179# error "Unsupported compiler for no-libc mode."
252 const ZyanU8* p1 = s1, *p2 = s2;
266 volatile ZyanU8* dp = dst;
277 volatile ZyanU8* pd = dst;
281 for (pd += n, ps += n; n--;)
300 *p++ = (
unsigned char)val;
312 while ((*dest++ = *src++));
318 while (*s != (
char)c)
330 while (*s1 && (*s1 == *s2))
350 while ((*dest++ = *src++));
387 if (!(*dest++ = *src++))
402 return *(
unsigned char*)(s1 - 1) - *(
unsigned char*)(s2 - 1);
417 }
while ((*dest++ = *src++));
467 return (
char*)(s1 - 1);
490 p = *p ? *p = 0, p + 1 : 0;
General helper and platform detection macros.
#define ZYAN_INLINE
Definition Defines.h:356
#define ZYAN_UNUSED(x)
Marks the specified parameter as unused.
Definition Defines.h:447
#define ZYAN_STRCPY
Definition LibC.h:120
#define ZYAN_STRNCAT
Definition LibC.h:123
#define ZYAN_STRNCPY
Definition LibC.h:125
#define ZYAN_MEMCHR
Definition LibC.h:111
#define ZYAN_STRCHR
Definition LibC.h:117
#define ZYAN_STRXFRM
Definition LibC.h:131
#define ZYAN_STRSTR
Definition LibC.h:129
#define ZYAN_STRCAT
Definition LibC.h:116
#define ZYAN_STRSPN
Definition LibC.h:128
#define ZYAN_MEMCPY
Definition LibC.h:113
va_list ZyanVAList
Defines the ZyanVAList datatype.
Definition LibC.h:63
#define ZYAN_MEMSET
Definition LibC.h:115
#define ZYAN_STRTOK
Definition LibC.h:130
#define ZYAN_STRLEN
Definition LibC.h:122
FILE ZyanFile
Defines the ZyanFile datatype.
Definition LibC.h:89
#define ZYAN_MEMCMP
Definition LibC.h:112
#define ZYAN_STRRCHR
Definition LibC.h:127
#define ZYAN_STRPBRK
Definition LibC.h:126
#define ZYAN_STRCMP
Definition LibC.h:118
#define ZYAN_STRNCMP
Definition LibC.h:124
#define ZYAN_STRCOLL
Definition LibC.h:119
#define ZYAN_STRCSPN
Definition LibC.h:121
#define ZYAN_MEMMOVE
Definition LibC.h:114
Includes and defines some default data types.
size_t ZyanUSize
Definition Types.h:224
uint8_t ZyanU8
Definition Types.h:216