X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Futf16.c;h=1101fb46eaa96bdbd4f738d319fa9b36852e11de;hb=f829eb1731bb6e0b9f29d285603731cb36edaeb3;hp=514fc7cb3dfe87b84933540e5f450e6f8d71fde1;hpb=d0607dd9d43829284ebfe4909cc627bb1edf1ce8;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/utf16.c b/KernelLand/Kernel/utf16.c index 514fc7cb..1101fb46 100644 --- a/KernelLand/Kernel/utf16.c +++ b/KernelLand/Kernel/utf16.c @@ -5,9 +5,10 @@ * utf16.c * - UTF-16 Translation/Manipulation */ -#define DEBUG 1 +#define DEBUG 0 #include #include +#include int ReadUTF16(const Uint16 *Str16, Uint32 *Codepoint) { @@ -48,7 +49,7 @@ size_t UTF16_ConvertToUTF8(size_t DestLen, char *Dest, size_t SrcLen, const Uint return len; } -int UTF16_CompareWithUTF8(size_t Str16Len, const Uint16 *Str16, const char *Str8) +int UTF16_CompareWithUTF8Ex(size_t Str16Len, const Uint16 *Str16, const char *Str8, int bCaseInsensitive) { int pos16 = 0, pos8 = 0; const Uint8 *str8 = (const Uint8 *)Str8; @@ -58,6 +59,10 @@ int UTF16_CompareWithUTF8(size_t Str16Len, const Uint16 *Str16, const char *Str8 Uint32 cp8, cp16; pos16 += ReadUTF16(Str16+pos16, &cp16); pos8 += ReadUTF8(str8 + pos8, &cp8); + if( bCaseInsensitive ) { + cp16 = toupper(cp16); + cp8 = toupper(cp8); + } LOG("cp16 = %x, cp8 = %x", cp16, cp8); if(cp16 == cp8) continue ; @@ -77,3 +82,13 @@ int UTF16_CompareWithUTF8(size_t Str16Len, const Uint16 *Str16, const char *Str8 return -1; } +int UTF16_CompareWithUTF8(size_t Str16Len, const Uint16 *Str16, const char *Str8) +{ + return UTF16_CompareWithUTF8Ex(Str16Len, Str16, Str8, 0); +} + +int UTF16_CompareWithUTF8CI(size_t Str16Len, const Uint16 *Str16, const char *Str8) +{ + return UTF16_CompareWithUTF8Ex(Str16Len, Str16, Str8, 1); +} +