diff options
author | Stef Walter <stef@memberwebs.com> | 2006-10-12 16:57:18 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2006-10-12 16:57:18 +0000 |
commit | 310e1d3b2ef4ebf868020debb3b4bb6190e12367 (patch) | |
tree | 0dd3ec9ea68de7c3b5c1ae16ffe1771f2c3f0d8f /common | |
parent | f0f9f9b90b4cedd0fb24db012770ec7c95a9cce9 (diff) |
Add strcasestr which is missing on solaris.
Diffstat (limited to 'common')
-rw-r--r-- | common/compat.c | 28 | ||||
-rw-r--r-- | common/compat.h | 4 |
2 files changed, 32 insertions, 0 deletions
diff --git a/common/compat.c b/common/compat.c index 40e4c73..1c620aa 100644 --- a/common/compat.c +++ b/common/compat.c @@ -179,6 +179,34 @@ size_t strlcat(char* dst, const char* src, size_t siz) #endif +#ifndef HAVE_STRCASESTR + +const char* strcasestr(const char *s, const char *find) +{ + char c, sc; + size_t len; + + if((c = *find++) != 0) + { + c = tolower((unsigned char)c); + len = strlen(find); + do + { + do + { + if((sc = *s++) == 0) + return (NULL); + } + while((char)tolower((unsigned char)sc) != c); + } + while (strncasecmp(s, find, len) != 0); + s--; + } + return((const char*)s); +} + +#endif + #ifndef HAVE_SETENV #include <stdio.h> diff --git a/common/compat.h b/common/compat.h index 44c45e0..89f7fbb 100644 --- a/common/compat.h +++ b/common/compat.h @@ -88,6 +88,10 @@ size_t strlcat(char *dst, const char *src, size_t size); size_t strlcpy(char *dst, const char *src, size_t size); #endif +#ifndef HAVE_STRCASESTR +const char* strcasestr(const char *s, const char *find); +#endif + #ifndef HAVE_SETENV int setenv(const char* name, const char* value, int overwrite); #endif |