aboutsummaryrefslogtreecommitdiffstats
path: root/libcharconv_mirrored.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcharconv_mirrored.c')
-rw-r--r--libcharconv_mirrored.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libcharconv_mirrored.c b/libcharconv_mirrored.c
index a71e480..4c13c43 100644
--- a/libcharconv_mirrored.c
+++ b/libcharconv_mirrored.c
@@ -50,6 +50,11 @@ libcharconv_mirrored(const char *s, size_t slen, size_t *n, uint_least32_t *cp,
c = c % 7u * 7u + c / 7u;
c += UINT32_C(0x1F031);
goto conv;
+ } else if (UINT32_C(0x2800) <= c && c <= UINT32_C(0x28FF)) {
+ c = ((c & 0x07u) << 3) | ((c & 0x38u) >> 3)
+ | ((c & 0x40u) << 1) | ((c & 0x80u) >> 1)
+ | UINT32_C(0x2800);
+ goto conv;
} else {
for (i = 0u; i < sizeof(pairs) / sizeof(*pairs); i++) {
if (c == pairs[i].a) {