lib: add function u16_strcasecmp()
Provide a function for comparing UTF-16 strings in a case insensitive manner. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
d7ddeb66a6
commit
7a9b366cd9
@ -173,6 +173,19 @@ s32 utf_to_lower(const s32 code);
|
|||||||
*/
|
*/
|
||||||
s32 utf_to_upper(const s32 code);
|
s32 utf_to_upper(const s32 code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* u16_strcasecmp() - compare two u16 strings case insensitively
|
||||||
|
*
|
||||||
|
* @s1: first string to compare
|
||||||
|
* @s2: second string to compare
|
||||||
|
* @n: maximum number of u16 to compare
|
||||||
|
* Return: 0 if the first n u16 are the same in s1 and s2
|
||||||
|
* < 0 if the first different u16 in s1 is less than the
|
||||||
|
* corresponding u16 in s2
|
||||||
|
* > 0 if the first different u16 in s1 is greater than the
|
||||||
|
*/
|
||||||
|
int u16_strcasecmp(const u16 *s1, const u16 *s2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* u16_strncmp() - compare two u16 string
|
* u16_strncmp() - compare two u16 string
|
||||||
*
|
*
|
||||||
|
@ -350,6 +350,32 @@ s32 utf_to_upper(const s32 code)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* u16_strcasecmp() - compare two u16 strings case insensitively
|
||||||
|
*
|
||||||
|
* @s1: first string to compare
|
||||||
|
* @s2: second string to compare
|
||||||
|
* @n: maximum number of u16 to compare
|
||||||
|
* Return: 0 if the first n u16 are the same in s1 and s2
|
||||||
|
* < 0 if the first different u16 in s1 is less than the
|
||||||
|
* corresponding u16 in s2
|
||||||
|
* > 0 if the first different u16 in s1 is greater than the
|
||||||
|
*/
|
||||||
|
int u16_strcasecmp(const u16 *s1, const u16 *s2)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
s32 c1, c2;
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
c1 = utf_to_upper(utf16_get(&s1));
|
||||||
|
c2 = utf_to_upper(utf16_get(&s2));
|
||||||
|
ret = c1 - c2;
|
||||||
|
if (ret || !c1 || c1 == -1 || c2 == -1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* u16_strncmp() - compare two u16 string
|
* u16_strncmp() - compare two u16 string
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user