X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=string.h;h=c63bab8dff7ba01b66eae343329542b4f330115c;hp=a10b42f5068a483bdbe60c4deefb1350661206e7;hb=a1bf72a143e4756b80c8306e6eef3deee215546c;hpb=422a064a2ed21894de2c7de8181a4d2c9d52f791 diff --git a/string.h b/string.h index a10b42f..c63bab8 100755 --- a/string.h +++ b/string.h @@ -8,6 +8,9 @@ Permission is granted to use, modify, and / or redistribute at will. */ +#ifndef _PDCLIB_STRING_H +#define _PDCLIB_STRING_H _PDCLIB_STRING_H + #ifndef _PDCLIB_AUX_H #define _PDCLIB_AUX_H _PDCLIB_AUX_H #include <_PDCLIB_aux.h> @@ -20,11 +23,13 @@ #if _PDCLIB_HOSTED == 1 #warning As of the current release, PDCLib is not a conforming hosted environment. -#warning might be incomplete. +#warning is not standard-compliant (yet) - strerror is missing. #endif typedef _PDCLIB_size_t size_t; +#define NULL _PDCLIB_NULL + /* String function conventions */ /* @@ -130,3 +135,63 @@ void * memchr( const void * s, int c, size_t n ); */ char * strchr( const char * s, int c ); +/* Determine the length of the initial substring of character array s1 which + consists only of characters not from the character array s2. + Returns the length of that substring. +*/ +size_t strcspn( const char * s1, const char * s2 ); + +/* Search the character array s1 for any character from the character array s2. + Returns a pointer to the first occurrence, or NULL. +*/ +char * strpbrk( const char * s1, const char * s2 ); + +/* Search the character array s (including terminating '\0') for the character c + (interpreted as char). + Returns a pointer to the last instance found, or NULL. +*/ +char * strrchr( const char * s, int c ); + +/* Determine the length of the initial substring of character array s1 which + consists only of characters from the character array s2. + Returns the length of that substring. +*/ +size_t strspn( const char * s1, const char * s2 ); + +/* Search the character array s1 for the substring in character array s2. + Returns a pointer to that sbstring, or NULL. If s2 is of length zero, + returns s1. +*/ +char * strstr( const char * s1, const char * s2 ); + +/* In a series of subsequent calls, parse a C string into tokens. + On the first call to strtok(), the first argument is a pointer to the to-be- + parsed C string. On subsequent calls, the first argument is NULL unless you + want to start parsing a new string. s2 holds an array of seperator characters + which can differ from call to call. Leading seperators are skipped, the first + trailing seperator overwritten with '\0'. + Returns a pointer to the next token. + WARNING: This function uses static storage, and as such is not reentrant. +*/ +char * strtok( char * _PDCLIB_restrict s1, const char * _PDCLIB_restrict s2 ); + +/* Miscellaneous functions */ + +/* Write the character c (interpreted as unsigned char) to the first n + characters of the memory area pointed to by s. + Returns s. +*/ +void * memset( void * s, int c, size_t n ); + +/* Map an error number to a (locale-specific) error message string. Error + numbers are typically errno values, but any number is mapped to a message. + TODO: PDCLib does not yet support locales. + TODO: strerror() not yet implemented. +char * strerror( int errnum ); +*/ + +/* Returns the length of the string s (excluding terminating '\0'). +*/ +size_t strlen( const char * s ); + +#endif