X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fstring.h;h=2fa5284dd3a4029020cb8e5896206028e83fc680;hp=95285778750d07e39af7f2b193e38a7596976cd8;hb=ac3f809c3c10347c110fac3db93af0954eda98bb;hpb=8b8277d2940a8745f85d86a9af3ad6970b5fa52c diff --git a/includes/string.h b/includes/string.h index 9528577..2fa5284 100644 --- a/includes/string.h +++ b/includes/string.h @@ -4,12 +4,64 @@ // Public Domain C Library - http://pdclib.sourceforge.net // This code is Public Domain. Use, modify, and redistribute at will. // ---------------------------------------------------------------------------- -// Provides functions for handling C strings ('\0' terminated char arrays). +// String handling // ---------------------------------------------------------------------------- #ifndef __STRING_H #define __STRING_H __STRING_H -// TODO +// ---------------------------------------------------------------------------- +// MACROS + +#define NULL 0 + +// ---------------------------------------------------------------------------- +// TYPEDEFS + +typedef size_t; + +// ---------------------------------------------------------------------------- +// FUNCTIONS + +int memcmp( const void * s1, const void * s2, size_t n ); +void * memcpy( void * restrict s1, const void * restrict s2, size_t n ); +void * memmove( void * s1, const void * s2, size_t n ); +void * memset( void * s, int c, size_t n ); +char * strcat( char * restrict s1, const char * restrict s2 ); +int strcmp( const char * s1, const char * s2 ); +int strcoll( const char * s1, const char * s2 ); +char * strcpy( char * restrict s1, const char * restrict s2 ); +size_t strcspn( const char * s1, const char * s2 ); +char * strerror( int errcode ); +size_t strlen( const char * s ); +char * strncat( char * restrict s1, const char * restrict s2, size_t n ); +int strncmp( const char * s1, const char * s2, size_t n ); +char * strncpy( char * restrict s1, const char * restrict s2, size_t n ); +size_t strspn( const char * s1, const char * s2 ); +char * strtok( char * restrict s1, const char * restrict s2 ); +size_t strxfrm( char * restrict s1, const char * restrict s2, size_t n ); + +#ifdef __cplusplus + +const void * memchr( const void * s, int c, size_t n ); +void * memchr( void * s, int c, size_t n ); +const char * strchr( const char * s, int c ); +char * strchr( char * s, int c ); +const char * strpbrk( const char * s1, const char * s2 ); +char * strpbrk( char * s1, const char * s2 ); +const char * strrchr( const char * s, int c ); +char * strrchr( char * s, int c ); +const char * strstr( const char * s1, const char * s2 ); +char * strstr( char * s1, const char * s2 ); + +#else + +void * memchr( const void * s, int c, size_t n ); +char * strchr( const char * s, int c ); +char * strpbrk( const char *s1, const char * s2 ); +char * strrchr( const char * s, int c ); +char * strstr( const char * s1, const char * s2 ); + +#endif // __cplusplus #endif // __STRING_H