Viet-Trung Luu | 96b05c1 | 2016-01-11 11:26:36 -0800 | [diff] [blame] | 1 | #include <strings.h> |
| 2 | #include <ctype.h> |
| 3 | #include "libc.h" |
| 4 | |
George Kulakowski | 17e3b04 | 2016-02-18 15:59:50 -0800 | [diff] [blame] | 5 | int strcasecmp(const char* _l, const char* _r) { |
| 6 | const unsigned char *l = (void *)_l, *r = (void *)_r; |
| 7 | for (; *l && *r && (*l == *r || tolower(*l) == tolower(*r)); l++, r++) |
| 8 | ; |
| 9 | return tolower(*l) - tolower(*r); |
Viet-Trung Luu | 96b05c1 | 2016-01-11 11:26:36 -0800 | [diff] [blame] | 10 | } |
| 11 | |
George Kulakowski | 17e3b04 | 2016-02-18 15:59:50 -0800 | [diff] [blame] | 12 | int __strcasecmp_l(const char* l, const char* r, locale_t loc) { |
| 13 | return strcasecmp(l, r); |
Viet-Trung Luu | 96b05c1 | 2016-01-11 11:26:36 -0800 | [diff] [blame] | 14 | } |
| 15 | |
| 16 | weak_alias(__strcasecmp_l, strcasecmp_l); |