
/*
 *  STRING.H	    ANSI header
 *
 *  (c)Copyright 1990 by Matthew Dillon, All Rights Reserved
 */

#ifndef _STRING_H
#define _STRING_H

#ifndef _STDDEF_H
#include <stddef.h>
#endif


extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);

extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);

extern void *memcpy(void *, const void *, 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 void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);

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 *);

/*
 *  Standard, but not ANSI (somebody went overboard in the routines
 *  above switching the source and destination... these routines fix
 *  that)
 */

extern void *movmem(const void *, const void *, size_t);
extern void *setmem(void *, size_t, int);
extern void *cmpmem(const void *, const void *, size_t);
extern void *clrmem(const void *, size_t);
extern void *bzero(const void *, size_t);
extern void *bcopy(const void *, const void *, size_t);
extern void *bcmp(const void *, const void *, size_t);

/*
 *  ???
 */

extern int stricmp(const char *, const char *);
extern int strnicmp(const char *, const char *, int);

#endif

