2019-01-07 22:49:20 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
#include "tolower_data.h"
|
|
|
|
|
|
|
|
static int compul(const void *a, const void *b)
|
|
|
|
{
|
2020-09-26 19:41:58 +00:00
|
|
|
struct UPPER_LOWER *ul_a = (struct UPPER_LOWER *)a;
|
|
|
|
struct UPPER_LOWER *ul_b = (struct UPPER_LOWER *)b;
|
|
|
|
return ul_a->upper - ul_b->upper;
|
2019-01-07 22:49:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int str_utf8_tolower(int code)
|
|
|
|
{
|
2020-09-26 19:41:58 +00:00
|
|
|
struct UPPER_LOWER key;
|
|
|
|
struct UPPER_LOWER *res;
|
|
|
|
key.upper = code;
|
|
|
|
res = bsearch(&key, tolower, NUM_TOLOWER, sizeof(struct UPPER_LOWER), compul);
|
2019-01-07 22:49:20 +00:00
|
|
|
|
2020-09-26 19:41:58 +00:00
|
|
|
if(res == NULL)
|
|
|
|
return code;
|
|
|
|
return res->lower;
|
2019-01-07 22:49:20 +00:00
|
|
|
}
|