aboutsummaryrefslogtreecommitdiffstats
path: root/libcharconv_mirrored.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcharconv_mirrored.c')
-rw-r--r--libcharconv_mirrored.c45
1 files changed, 44 insertions, 1 deletions
diff --git a/libcharconv_mirrored.c b/libcharconv_mirrored.c
index 4c13c43..dc75fb7 100644
--- a/libcharconv_mirrored.c
+++ b/libcharconv_mirrored.c
@@ -21,7 +21,47 @@ static struct {
{UINT32_C(0x230C), UINT32_C(0x230D)},
{UINT32_C(0x230E), UINT32_C(0x230F)},
{UINT32_C(0x23BE), UINT32_C(0x23CB)},
- {UINT32_C(0x23BF), UINT32_C(0x23CC)}
+ {UINT32_C(0x23BF), UINT32_C(0x23CC)},
+ {UINT32_C(0x169B), UINT32_C(0x169C)},
+ {UINT32_C(0x2571), UINT32_C(0x2572)},
+ {UINT32_C(0x250C), UINT32_C(0x2510)},
+ {UINT32_C(0x250D), UINT32_C(0x2511)},
+ {UINT32_C(0x250E), UINT32_C(0x2512)},
+ {UINT32_C(0x250F), UINT32_C(0x2513)},
+ {UINT32_C(0x2514), UINT32_C(0x2518)},
+ {UINT32_C(0x2515), UINT32_C(0x2519)},
+ {UINT32_C(0x2516), UINT32_C(0x251A)},
+ {UINT32_C(0x2517), UINT32_C(0x251B)},
+ {UINT32_C(0x251C), UINT32_C(0x2524)},
+ {UINT32_C(0x251D), UINT32_C(0x2525)},
+ {UINT32_C(0x251E), UINT32_C(0x2526)},
+ {UINT32_C(0x251F), UINT32_C(0x2527)},
+ {UINT32_C(0x2520), UINT32_C(0x2528)},
+ {UINT32_C(0x2521), UINT32_C(0x2529)},
+ {UINT32_C(0x2522), UINT32_C(0x252A)},
+ {UINT32_C(0x2523), UINT32_C(0x252B)},
+ {UINT32_C(0x252E), UINT32_C(0x252D)},
+ {UINT32_C(0x2532), UINT32_C(0x2531)},
+ {UINT32_C(0x2536), UINT32_C(0x2535)},
+ {UINT32_C(0x253A), UINT32_C(0x2539)},
+ {UINT32_C(0x253E), UINT32_C(0x253D)},
+ {UINT32_C(0x2544), UINT32_C(0x2543)},
+ {UINT32_C(0x2546), UINT32_C(0x2545)},
+ {UINT32_C(0x254A), UINT32_C(0x2549)},
+ {UINT32_C(0x2552), UINT32_C(0x2555)},
+ {UINT32_C(0x2553), UINT32_C(0x2556)},
+ {UINT32_C(0x2554), UINT32_C(0x2557)},
+ {UINT32_C(0x2558), UINT32_C(0x255B)},
+ {UINT32_C(0x2559), UINT32_C(0x255C)},
+ {UINT32_C(0x255A), UINT32_C(0x255D)},
+ {UINT32_C(0x255E), UINT32_C(0x2561)},
+ {UINT32_C(0x255F), UINT32_C(0x2562)},
+ {UINT32_C(0x2560), UINT32_C(0x2563)},
+ {UINT32_C(0x256D), UINT32_C(0x256E)},
+ {UINT32_C(0x2570), UINT32_C(0x256F)},
+ {UINT32_C(0x2574), UINT32_C(0x2576)},
+ {UINT32_C(0x2578), UINT32_C(0x257A)},
+ {UINT32_C(0x257C), UINT32_C(0x257E)},
};
@@ -55,6 +95,9 @@ libcharconv_mirrored(const char *s, size_t slen, size_t *n, uint_least32_t *cp,
| ((c & 0x40u) << 1) | ((c & 0x80u) >> 1)
| UINT32_C(0x2800);
goto conv;
+ } else if (UINT32_C(0x1FBA0) <= c && c <= UINT32_C(0x1FBAD)) {
+ c ^= 1u;
+ goto conv;
} else {
for (i = 0u; i < sizeof(pairs) / sizeof(*pairs); i++) {
if (c == pairs[i].a) {