aboutsummaryrefslogtreecommitdiffstats
path: root/libcharconv_latin.c
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-01-25 10:48:36 +0100
committerMattias Andrée <m@maandree.se>2026-01-25 10:48:36 +0100
commit931bbb77e11f0403f51fe1e9c18ef4f5e16a3fcf (patch)
tree24e2ecb39218678ecf577108af9938962985151a /libcharconv_latin.c
parentAdd braille (diff)
downloadcharconv-931bbb77e11f0403f51fe1e9c18ef4f5e16a3fcf.tar.gz
charconv-931bbb77e11f0403f51fe1e9c18ef4f5e16a3fcf.tar.bz2
charconv-931bbb77e11f0403f51fe1e9c18ef4f5e16a3fcf.tar.xz
Add lisu
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'libcharconv_latin.c')
-rw-r--r--libcharconv_latin.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libcharconv_latin.c b/libcharconv_latin.c
index 5124c53..9dc81cf 100644
--- a/libcharconv_latin.c
+++ b/libcharconv_latin.c
@@ -382,7 +382,15 @@ libcharconv_latin(const char *s, size_t slen, size_t *n, uint_least32_t *cp, siz
*ncp = i;
return ret;
+ } else if (UINT32_C(0xA4D0) <= c && c <= UINT32_C(0xA4FF)) {
+ /* lisu */
+ c1 = "bpPdtYgkKjcCzfFmnlsrRVvhGJwxyBaAeEiouULD., ;:-="[c - UINT32_C(0xA4D0)];
+ if (c1 == ' ')
+ goto use_switch;
+ goto conv1;
+
} else {
+ use_switch:
switch (c) {
/* shogi */
case UINT32_C(0x2616): c = (uint_least32_t)'w'; goto conv;
@@ -529,6 +537,11 @@ libcharconv_latin(const char *s, size_t slen, size_t *n, uint_least32_t *cp, siz
case UINT32_C(0x230E): c1 = '|'; c2 = '_'; goto conv2;
case UINT32_C(0x230F): c1 = '_'; c2 = '|'; goto conv2;
+ /* lisu */
+ case UINT32_C(0xA4FB): c1 = '.'; c2 = ','; goto conv2;
+ case UINT32_C(0xA4FA): c1 = '.'; c2 = '.'; goto conv2;
+ case UINT32_C(0x11FB0): c1 = 'Y'; goto conv1;
+
default:
no_match:
*n += clen;