@@ -59,49 +59,53 @@ typedef uintptr_t uint_farptr_t;
5959
6060inline const void * memchr_P (const void * s , int val , size_t len ) { return memchr (s , val , len ); }
6161inline int memcmp_P (const void * s1 , const void * s2 , size_t len ) { return memcmp (s1 , s2 , len ); }
62- inline void * memccpy_P (void * dest , const void * src , int val , size_t len ) { return memccpy (dest , src , val , len ); }
6362inline void * memcpy_P (void * dest , const void * src , size_t n ) { return memcpy (dest , src , n ); }
64- inline void * memmem_P (const void * s1 , size_t len1 , const void * s2 , size_t len2 ) { return memmem (s1 , len1 , s2 , len2 ); }
65- inline const void * memrchr_P (const void * src , int val , size_t len ) { return memrchr (src , val , len ); }
6663inline char * strcat_P (char * dest , const char * src ) { return strcat (dest , src ); }
6764inline const char * strchr_P (const char * s , int val ) { return strchr (s , val ); }
68- inline const char * strchrnul_P (const char * s , int c ) { return strchrnul (s , c ); }
6965inline int strcmp_P (const char * s1 , const char * s2 ) { return strcmp (s1 , s2 ); }
7066inline char * strcpy_P (char * dest , const char * src ) { return strcpy (dest , src ); }
71- inline int strcasecmp_P (const char * s1 , const char * s2 ) { return strcasecmp (s1 , s2 ); }
72- inline char * strcasestr_P (const char * s1 , const char * s2 ) { return (char * )strcasestr (s1 , s2 ); }
7367inline size_t strcspn_P (const char * s , const char * reject ) { return strcspn (s , reject ); }
7468// strlcat and strlcpy are AVR-specific and not entirely trivial to reimplement using strncat it seems
7569//inline size_t strlcat_P(char *dst, const char *src, size_t siz) { return strlcat(dst, src, siz); }
7670//inline size_t strlcpy_P(char *dst, const char *src, size_t siz) { return strlcpy(dst, src, siz); }
7771//inline size_t strlcat_PF(char *dst, uint_farptr_t src, size_t n) { return strlcat(dst, (const char*)src, n); }
7872//inline size_t strlcpy_PF(char *dst, uint_farptr_t src, size_t siz) { return strlcpy(dst, (const char*)src, siz); }
7973inline int strncmp_P (const char * s1 , const char * s2 , size_t n ) { return strncmp (s1 , s2 , n ); }
80- inline int strncasecmp_P (const char * s1 , const char * s2 , size_t n ) { return strncasecmp (s1 , s2 , n ); }
8174inline char * strncat_P (char * dest , const char * src , size_t len ) { return strncat (dest , src , len ); }
8275inline char * strncpy_P (char * dest , const char * src , size_t n ) { return strncpy (dest , src , n ); }
8376inline char * strpbrk_P (const char * s , const char * accept ) { return (char * )strpbrk (s , accept ); }
8477inline const char * strrchr_P (const char * s , int val ) { return strrchr (s , val ); }
85- inline char * strsep_P (char * * sp , const char * delim ) { return strsep (sp , delim ); }
8678inline size_t strspn_P (const char * s , const char * accept ) { return strspn (s , accept ); }
8779inline char * strstr_P (const char * s1 , const char * s2 ) { return (char * )strstr (s1 , s2 ); }
8880inline char * strtok_P (char * s , const char * delim ) { return strtok (s , delim ); }
89- inline char * strtok_r_P (char * string , const char * delim , char * * last ) { return strtok_r (string , delim , last ); }
9081inline size_t strlen_PF (uint_farptr_t s ) { return strlen ((char * )s ); }
91- inline size_t strnlen_P (uint_farptr_t s , size_t len ) { return strnlen ((char * )s , len ); }
9282inline void * memcpy_PF (void * dest , uint_farptr_t src , size_t n ) { return memcpy (dest , (const char * )src , n ); }
9383inline char * strcpy_PF (char * dst , uint_farptr_t src ) { return strcpy (dst , (const char * )src ); }
9484inline char * strncpy_PF (char * dst , uint_farptr_t src , size_t n ) { return strncpy (dst , (const char * )src , n ); }
9585inline char * strcat_PF (char * dst , uint_farptr_t src ) { return strcat (dst , (const char * )src ); }
9686inline char * strncat_PF (char * dst , uint_farptr_t src , size_t n ) { return strncat (dst , (const char * )src , n ); }
9787inline int strcmp_PF (const char * s1 , uint_farptr_t s2 ) { return strcmp (s1 , (const char * )s2 ); }
9888inline int strncmp_PF (const char * s1 , uint_farptr_t s2 , size_t n ) { return strncmp (s1 , (const char * )s2 , n ); }
99- inline int strcasecmp_PF (const char * s1 , uint_farptr_t s2 ) { return strcasecmp (s1 , (const char * )s2 ); }
100- inline int strncasecmp_PF (const char * s1 , uint_farptr_t s2 , size_t n ) { return strncasecmp (s1 , (const char * )s2 , n ); }
10189inline char * strstr_PF (const char * s1 , uint_farptr_t s2 ) { return (char * )strstr (s1 , (const char * )s2 ); }
10290inline int memcmp_PF (const void * s1 , uint_farptr_t s2 , size_t len ) { return memcmp (s1 , (const char * )s2 , len ); }
10391inline size_t strlen_P (const char * src ) { return strlen (src ); }
10492
93+ // TODO: These functions cannot be found on the CYGWIN test build for
94+ // some reason, so disable them for now. Most of these are less common
95+ // and/or GNU-specific addons anyway
96+ //inline void *memccpy_P(void *dest, const void *src, int val, size_t len) { return memccpy(dest, src, val, len); }
97+ //inline void *memmem_P(const void *s1, size_t len1, const void *s2, size_t len2) { return memmem(s1, len1, s2, len2); }
98+ //inline const void *memrchr_P(const void *src, int val, size_t len) { return memrchr(src, val, len); }
99+ //inline const char *strchrnul_P(const char *s, int c) { return strchrnul(s, c); }
100+ //inline int strcasecmp_P(const char *s1, const char *s2) { return strcasecmp(s1, s2); }
101+ //inline char *strcasestr_P(const char *s1, const char *s2) { return (char*)strcasestr(s1, s2); }
102+ //inline int strncasecmp_P(const char *s1, const char *s2, size_t n) { return strncasecmp(s1, s2, n); }
103+ //inline char *strsep_P(char **sp, const char *delim) { return strsep(sp, delim); }
104+ //inline char *strtok_r_P(char *string, const char *delim, char **last) { return strtok_r(string, delim, last); }
105+ //inline int strcasecmp_PF(const char *s1, uint_farptr_t s2) { return strcasecmp(s1, (const char*)s2); }
106+ //inline int strncasecmp_PF(const char *s1, uint_farptr_t s2, size_t n) { return strncasecmp(s1, (const char*)s2, n); }
107+ //inline size_t strnlen_P(uint_farptr_t s, size_t len) { return strnlen((char*)s, len); }
108+
105109// These are normally defined by stdio.h on AVR, but we cannot override that
106110// include file (at least not without no longer being able to include the
107111// original as well), so just define these here. It seems likely that any
0 commit comments