diff options
Diffstat (limited to 'src/engine/e_system.c')
| -rw-r--r-- | src/engine/e_system.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/engine/e_system.c b/src/engine/e_system.c index 2b24ab7c..9545369d 100644 --- a/src/engine/e_system.c +++ b/src/engine/e_system.c @@ -911,6 +911,35 @@ void str_sanitize(char *str_in) } } +/* case */ +int str_comp_nocase(const char *a, const char *b) +{ +#if defined(CONF_FAMILY_WINDOWS) + return _stricmp(a,b); +#else + return strcasecmp(a,b); +#endif +} + +const char *str_find_nocase(const char *haystack, const char *needle) +{ + while(*haystack) /* native implementation */ + { + const char *a = haystack; + const char *b = needle; + while(*a && *b && tolower(*a) == tolower(*b)) + { + a++; + b++; + } + if(!(*b)) + return haystack; + haystack++; + } + + return 0; +} + #if defined(__cplusplus) } #endif |