![Ori Bernstein](/assets/img/avatar_default.png)
strndup is part of POSIX.1, so APE should provide it. This patch adds it, so need to patch it out of fewer programs going forward.
52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
#ifndef __STRING_H_
|
|
#define __STRING_H_
|
|
#pragma lib "/$M/lib/ape/libap.a"
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern void *memcpy(void *, const void *, size_t);
|
|
extern void *memccpy(void*, void*, int, size_t);
|
|
extern void *memmove(void *, const void *, size_t);
|
|
extern char *strcpy(char *, const char *);
|
|
extern char *strncpy(char *, const char *, size_t);
|
|
extern char *strcat(char *, const char *);
|
|
extern char *strncat(char *, const char *, size_t);
|
|
extern int memcmp(const void *, const void *, size_t);
|
|
extern int strcmp(const char *, const char *);
|
|
extern int strcoll(const char *, const char *);
|
|
extern char *strdup(char*);
|
|
extern char *strndup(char*, size_t);
|
|
extern int strncmp(const char *, const char *, size_t);
|
|
extern size_t strxfrm(char *, const char *, size_t);
|
|
extern void *memchr(const void *, int, size_t);
|
|
extern char *strchr(const char *, int);
|
|
extern size_t strcspn(const char *, const char *);
|
|
extern char *strpbrk(const char *, const char *);
|
|
extern char *strrchr(const char *, int);
|
|
extern size_t strspn(const char *, const char *);
|
|
extern char *strstr(const char *, const char *);
|
|
extern char *strtok(char *, const char *);
|
|
extern void *memset(void *, int, size_t);
|
|
extern char *strerror(int);
|
|
extern size_t strlen(const char *);
|
|
extern size_t strnlen(const char *, size_t);
|
|
|
|
#ifdef _REENTRANT_SOURCE
|
|
extern char *strerror_r(int, const char *, int);
|
|
extern char *strtok_r(char *, const char *, char **);
|
|
#endif
|
|
|
|
#ifdef _BSD_EXTENSION
|
|
#include <bsd.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|