#ifndef _ADVLIBC_STRING_
#define _ADVLIBC_STRING_
#include	"./advtypes.h"
#ifdef __cplusplus
extern "C" {
#endif
char LIBCCALL *strcpy(char *string1, const char *string2);
char LIBCCALL *strcat(char *string1, const char *string2);
int LIBCCALL strcmp(const char *string1, const char *string2);
size_t LIBCCALL strlen(const char *string);
#if !defined(NOBUILTIN)
#define	strncpy(d, s, c)	__builtin_strncpy(d, s, c)
#define	strncat(d, s, c)	__builtin_strncat(d, s, c)
#define	strncmp(d, s, c)	__builtin_strncmp(d, s, c)
#else
char LIBCCALL *strncpy(char *string1, const char *string2, size_t count);
char LIBCCALL *strncat(char *string1, const char *string2, size_t count);
int LIBCCALL strncmp(const char *string1, const char *string2, size_t count);
#endif
char LIBCCALL *strchr(const char *string, int c);
char LIBCCALL *strrchr(const char *string, int c);
int LIBCCALL stricmp(const char *string1, const char *string2);
int LIBCCALL strnicmp(const char *string1, const char *string2, size_t count);
char LIBCCALL *strdup(const char *string);
char LIBCCALL *strupr(char *string);
char LIBCCALL *strlwr(char *string);
char LIBCCALL *strrev(char *string);
char LIBCCALL *strset(char *string, int c);
char LIBCCALL *strnset(char *string, int c, size_t count);
char LIBCCALL *strstr(const char *string1, const char *string2);
size_t LIBCCALL strspn(const char *string1, const char *string2);
size_t LIBCCALL strcspn(const char *string1, const char *string2);
char LIBCCALL *strpbrk(const char *string1, const char *string2);
char LIBCCALL *strtok(char *string1, const char *string2);
// Macros...
#define	strcmpi(s1, s2)			stricmp((s1), (s2))
#define strcoll(s1, s2)			strcmp((s1), (s2))
#define stricoll(s1, s2)		stricmp((s1), (s2))
#define strncoll(s1, s2, c)		strncmp((s1), (s2), (c))
#define strnicoll(s1, s2, c)	strnicmp((s1), (s2), (c))
#ifdef __cplusplus
}
#endif
#endif
RetroPC.NET-CVS <cvs@retropc.net>