mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-15 13:19:23 +00:00
44 lines
1.5 KiB
C++
44 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "kmcompx.h"
|
|
|
|
namespace km {
|
|
namespace kbp {
|
|
namespace kmx {
|
|
|
|
#define Uni_IsSurrogate1(ch) ((ch) >= 0xD800 && (ch) <= 0xDBFF)
|
|
#define Uni_IsSurrogate2(ch) ((ch) >= 0xDC00 && (ch) <= 0xDFFF)
|
|
#define Uni_IsSMP(ch) ((ch) >= 0x10000)
|
|
|
|
#define Uni_SurrogateToUTF32(ch, cl) (((ch) - 0xD800) * 0x400 + ((cl) - 0xDC00) + 0x10000)
|
|
|
|
#define Uni_UTF32ToSurrogate1(ch) (((ch) - 0x10000) / 0x400 + 0xD800)
|
|
#define Uni_UTF32ToSurrogate2(ch) (((ch) - 0x10000) % 0x400 + 0xDC00)
|
|
|
|
//PKMX_WCHAR incxstr(PKMX_WCHAR p);
|
|
//PKMX_WCHAR decxstr(PKMX_WCHAR p, PKMX_WCHAR pStart);
|
|
//int xstrlen(PKMX_WCHAR p);
|
|
/* ---- old -> don`t I need new versions here ????
|
|
|
|
int xstrlen_ignoreifopt(PKMX_WCHAR p);
|
|
int xstrpos(PKMX_WCHAR p1, PKMX_WCHAR p);
|
|
PKMX_WCHAR xstrchr(PKMX_WCHAR buf, PKMX_WCHAR chr);
|
|
int xchrcmp(PKMX_WCHAR ch1, PKMX_WCHAR ch2);
|
|
PKMX_CHAR wstrtostr(PKMX_WCHAR in);
|
|
PKMX_WCHAR strtowstr(PKMX_CHAR in);
|
|
*/
|
|
|
|
//const km_kbp_cp *u16chr(const km_kbp_cp *p, km_kbp_cp ch);
|
|
//const km_kbp_cp *u16cpy(km_kbp_cp *dst, const km_kbp_cp *src); // TODO: deprecate all usages Ursprung
|
|
|
|
//const km_kbp_cp *u16ncpy(km_kbp_cp *dst, const km_kbp_cp *src, size_t max);
|
|
//size_t u16len(const km_kbp_cp *p);
|
|
//int u16cmp(const km_kbp_cp *p, const km_kbp_cp *q);
|
|
//int u16icmp(const km_kbp_cp *p, const km_kbp_cp *q);
|
|
//int u16ncmp(const km_kbp_cp *p, const km_kbp_cp *q, size_t count);
|
|
//km_kbp_cp *u16tok(km_kbp_cp *p, km_kbp_cp ch, km_kbp_cp **ctx); //not used _S2
|
|
|
|
|
|
} // namespace kmx
|
|
} // namespace kbp
|
|
} // namespace km
|