ddnet/src/base/unicode/tolower.cpp

25 lines
510 B
C++
Raw Normal View History

#include <stdlib.h>
#include "tolower_data.h"
static int compul(const void *a, const void *b)
{
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;
}
2021-06-15 01:24:23 +00:00
extern "C" {
int str_utf8_tolower(int code)
{
struct UPPER_LOWER key;
struct UPPER_LOWER *res;
key.upper = code;
2021-06-15 01:24:23 +00:00
res = (UPPER_LOWER *)bsearch(&key, tolower, NUM_TOLOWER, sizeof(struct UPPER_LOWER), compul);
if(res == NULL)
return code;
return res->lower;
}
2021-06-15 01:24:23 +00:00
}