(svn r15371) -Codechange: add an implementation of strcasestr for when _GNU_SOURCE isn't defined.

This commit is contained in:
rubidium 2009-02-06 11:58:52 +00:00
parent ba3d7e70f2
commit 35c5da08c5
2 changed files with 16 additions and 1 deletions

View File

@ -362,4 +362,18 @@ char *strndup(const char *s, size_t len)
memcpy(tmp, s, len);
return tmp;
}
const char *strcasestr(const char *haystack, const char *needle)
{
size_t hay_len = strlen(haystack);
size_t needle_len = strlen(needle);
while (hay_len >= needle_len) {
if (strncasecmp(haystack, needle, needle_len) == 0) return haystack;
haystack++;
hay_len--;
}
return NULL;
}
#endif /* !_GNU_SOURCE */

View File

@ -234,8 +234,9 @@ static inline bool IsWhitespace(WChar c)
}
#ifndef _GNU_SOURCE
/* strndup is a GNU extension */
/* strndup and strcasestr are GNU extensions */
char *strndup(const char *s, size_t len);
const char *strcasestr(const char *haystack, const char *needle);
#endif /* !_GNU_SOURCE */
#endif /* STRING_FUNC_H */