xref: /aosp_15_r20/external/musl/src/string/strncasecmp.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <strings.h>
2*c9945492SAndroid Build Coastguard Worker #include <ctype.h>
3*c9945492SAndroid Build Coastguard Worker 
strncasecmp(const char * _l,const char * _r,size_t n)4*c9945492SAndroid Build Coastguard Worker int strncasecmp(const char *_l, const char *_r, size_t n)
5*c9945492SAndroid Build Coastguard Worker {
6*c9945492SAndroid Build Coastguard Worker 	const unsigned char *l=(void *)_l, *r=(void *)_r;
7*c9945492SAndroid Build Coastguard Worker 	if (!n--) return 0;
8*c9945492SAndroid Build Coastguard Worker 	for (; *l && *r && n && (*l == *r || tolower(*l) == tolower(*r)); l++, r++, n--);
9*c9945492SAndroid Build Coastguard Worker 	return tolower(*l) - tolower(*r);
10*c9945492SAndroid Build Coastguard Worker }
11*c9945492SAndroid Build Coastguard Worker 
__strncasecmp_l(const char * l,const char * r,size_t n,locale_t loc)12*c9945492SAndroid Build Coastguard Worker int __strncasecmp_l(const char *l, const char *r, size_t n, locale_t loc)
13*c9945492SAndroid Build Coastguard Worker {
14*c9945492SAndroid Build Coastguard Worker 	return strncasecmp(l, r, n);
15*c9945492SAndroid Build Coastguard Worker }
16*c9945492SAndroid Build Coastguard Worker 
17*c9945492SAndroid Build Coastguard Worker weak_alias(__strncasecmp_l, strncasecmp_l);
18