diff options
Diffstat (limited to 'libcharconv_mirrored.c')
| -rw-r--r-- | libcharconv_mirrored.c | 45 |
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) { |
