diff options
| author | Mattias Andrée <m@maandree.se> | 2026-01-28 22:03:48 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-01-28 22:03:48 +0100 |
| commit | 40bf70fb8f23e5ff7212b568c69e0725372e5b57 (patch) | |
| tree | 0d4be706d0182ddeafd4eaafd073e12c2fa2a9e8 /libcharconv_rotated_90deg_ccw.c | |
| parent | Misc stuff (diff) | |
| download | charconv-40bf70fb8f23e5ff7212b568c69e0725372e5b57.tar.gz charconv-40bf70fb8f23e5ff7212b568c69e0725372e5b57.tar.bz2 charconv-40bf70fb8f23e5ff7212b568c69e0725372e5b57.tar.xz | |
Clean up
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'libcharconv_rotated_90deg_ccw.c')
| -rw-r--r-- | libcharconv_rotated_90deg_ccw.c | 150 |
1 files changed, 2 insertions, 148 deletions
diff --git a/libcharconv_rotated_90deg_ccw.c b/libcharconv_rotated_90deg_ccw.c index 3d245bf..bd3baeb 100644 --- a/libcharconv_rotated_90deg_ccw.c +++ b/libcharconv_rotated_90deg_ccw.c @@ -1,149 +1,3 @@ /* See LICENSE file for copyright and license details. */ -#include "lib-common.h" - - -static struct { - uint_least32_t to; - uint_least32_t from; -} pairs[] = { - {UINT32_C(0x230E), UINT32_C(0x230C)}, - {UINT32_C(0x230C), UINT32_C(0x230D)}, - {UINT32_C(0x230D), UINT32_C(0x230F)}, - {UINT32_C(0x230F), UINT32_C(0x230E)}, - {UINT32_C(0x1FA04), UINT32_C(0x1FA19)}, - {UINT32_C(0x1FA19), UINT32_C(0x1FA2E)}, - {UINT32_C(0x1FA2E), UINT32_C(0x1FA43)}, - {UINT32_C(0x1FA43), UINT32_C(0x1FA04)}, - {UINT32_C(0x02658), UINT32_C(0x1FA0D)}, - {UINT32_C(0x1FA0D), UINT32_C(0x1FA22)}, - {UINT32_C(0x1FA22), UINT32_C(0x1FA37)}, - {UINT32_C(0x1FA37), UINT32_C(0x02658)}, - {UINT32_C(0x0265E), UINT32_C(0x1FA13)}, - {UINT32_C(0x1FA13), UINT32_C(0x1FA28)}, - {UINT32_C(0x1FA28), UINT32_C(0x1FA3D)}, - {UINT32_C(0x1FA3D), UINT32_C(0x0265E)}, - {UINT32_C(0x1FA08), UINT32_C(0x1FA1D)}, - {UINT32_C(0x1FA1D), UINT32_C(0x1FA32)}, - {UINT32_C(0x1FA32), UINT32_C(0x1FA47)}, - {UINT32_C(0x1FA47), UINT32_C(0x1FA08)}, - {UINT32_C(0x1FA06), UINT32_C(0x1FA1B)}, - {UINT32_C(0x1FA1B), UINT32_C(0x1FA30)}, - {UINT32_C(0x1FA30), UINT32_C(0x1FA45)}, - {UINT32_C(0x1FA45), UINT32_C(0x1FA06)}, - {UINT32_C(0x1FA07), UINT32_C(0x1FA1C)}, - {UINT32_C(0x1FA1C), UINT32_C(0x1FA31)}, - {UINT32_C(0x1FA31), UINT32_C(0x1FA46)}, - {UINT32_C(0x1FA46), UINT32_C(0x1FA07)}, - {UINT32_C(0x1FA48), UINT32_C(0x1FA4B)}, - {UINT32_C(0x1FA49), UINT32_C(0x1FA4C)}, - {UINT32_C(0x1FA4A), UINT32_C(0x1FA4D)}, - {UINT32_C(0x1FA4B), UINT32_C(0x1FA48)}, - {UINT32_C(0x1FA4C), UINT32_C(0x1FA49)}, - {UINT32_C(0x1FA4D), UINT32_C(0x1FA4A)}, - {UINT32_C(0x1FA00), UINT32_C(0x1FA15)}, - {UINT32_C(0x1FA15), UINT32_C(0x1FA2A)}, - {UINT32_C(0x1FA2A), UINT32_C(0x1FA3F)}, - {UINT32_C(0x1FA3F), UINT32_C(0x1FA00)}, - {UINT32_C(0x1FA01), UINT32_C(0x1FA16)}, - {UINT32_C(0x1FA16), UINT32_C(0x1FA2B)}, - {UINT32_C(0x1FA2B), UINT32_C(0x1FA40)}, - {UINT32_C(0x1FA40), UINT32_C(0x1FA01)}, - {UINT32_C(0x1FA02), UINT32_C(0x1FA17)}, - {UINT32_C(0x1FA17), UINT32_C(0x1FA2C)}, - {UINT32_C(0x1FA2C), UINT32_C(0x1FA41)}, - {UINT32_C(0x1FA41), UINT32_C(0x1FA02)}, - {UINT32_C(0x1FA03), UINT32_C(0x1FA18)}, - {UINT32_C(0x1FA18), UINT32_C(0x1FA2D)}, - {UINT32_C(0x1FA2D), UINT32_C(0x1FA42)}, - {UINT32_C(0x1FA42), UINT32_C(0x1FA03)}, - {UINT32_C(0x1FA05), UINT32_C(0x1FA1A)}, - {UINT32_C(0x1FA1A), UINT32_C(0x1FA2F)}, - {UINT32_C(0x1FA2F), UINT32_C(0x1FA44)}, - {UINT32_C(0x1FA44), UINT32_C(0x1FA05)}, - {UINT32_C(0x2654), UINT32_C(0x1FA09)}, - {UINT32_C(0x1FA09), UINT32_C(0x1FA1E)}, - {UINT32_C(0x1FA1E), UINT32_C(0x1FA33)}, - {UINT32_C(0x1FA33), UINT32_C(0x2654)}, - {UINT32_C(0x2655), UINT32_C(0x1FA0A)}, - {UINT32_C(0x1FA0A), UINT32_C(0x1FA1F)}, - {UINT32_C(0x1FA1F), UINT32_C(0x1FA34)}, - {UINT32_C(0x1FA34), UINT32_C(0x2655)}, - {UINT32_C(0x2656), UINT32_C(0x1FA0B)}, - {UINT32_C(0x1FA0B), UINT32_C(0x1FA20)}, - {UINT32_C(0x1FA20), UINT32_C(0x1FA35)}, - {UINT32_C(0x1FA35), UINT32_C(0x2656)}, - {UINT32_C(0x2657), UINT32_C(0x1FA0C)}, - {UINT32_C(0x1FA0C), UINT32_C(0x1FA21)}, - {UINT32_C(0x1FA21), UINT32_C(0x1FA36)}, - {UINT32_C(0x1FA36), UINT32_C(0x2657)}, - {UINT32_C(0x2659), UINT32_C(0x1FA0E)}, - {UINT32_C(0x1FA0E), UINT32_C(0x1FA23)}, - {UINT32_C(0x1FA23), UINT32_C(0x1FA38)}, - {UINT32_C(0x1FA38), UINT32_C(0x2659)}, - {UINT32_C(0x265A), UINT32_C(0x1FA0F)}, - {UINT32_C(0x1FA0F), UINT32_C(0x1FA24)}, - {UINT32_C(0x1FA24), UINT32_C(0x1FA39)}, - {UINT32_C(0x1FA39), UINT32_C(0x265A)}, - {UINT32_C(0x265B), UINT32_C(0x1FA10)}, - {UINT32_C(0x1FA10), UINT32_C(0x1FA25)}, - {UINT32_C(0x1FA25), UINT32_C(0x1FA3A)}, - {UINT32_C(0x1FA3A), UINT32_C(0x265B)}, - {UINT32_C(0x265C), UINT32_C(0x1FA11)}, - {UINT32_C(0x1FA11), UINT32_C(0x1FA26)}, - {UINT32_C(0x1FA26), UINT32_C(0x1FA3B)}, - {UINT32_C(0x1FA3B), UINT32_C(0x265C)}, - {UINT32_C(0x265D), UINT32_C(0x1FA12)}, - {UINT32_C(0x1FA12), UINT32_C(0x1FA27)}, - {UINT32_C(0x1FA27), UINT32_C(0x1FA3C)}, - {UINT32_C(0x1FA3C), UINT32_C(0x265D)}, - {UINT32_C(0x265F), UINT32_C(0x1FA14)}, - {UINT32_C(0x1FA14), UINT32_C(0x1FA29)}, - {UINT32_C(0x1FA29), UINT32_C(0x1FA3E)}, - {UINT32_C(0x1FA3E), UINT32_C(0x265F)}, - {UINT32_C(0x213A), (uint_least32_t)'Q'} -}; - - -enum libcharconv_result -libcharconv_rotated_90deg_ccw(const char *s, size_t slen, size_t *n, uint_least32_t *cp, size_t *ncp) -{ - uint_least32_t c; - size_t i, clen; - *n = 0; - while (slen) { - clen = libcharconv_decode_utf8_(s, slen, &c); - if (clen > slen) { - if (*n) - goto no_conv; - return LIBCHARCONV_INDETERMINATE; - } - if (!clen) { - *n += 1u; - slen -= 1u; - s = &s[1]; - continue; - } - - for (i = 0u; i < sizeof(pairs) / sizeof(*pairs); i++) { - if (c == pairs[i].from) { - c = pairs[i].to; - goto conv; - } - } - - *n += clen; - s = &s[clen]; - slen -= clen; - } -no_conv: - return LIBCHARCONV_NO_CONVERT; - -conv: - if (*n) - goto no_conv; - if (*ncp) - *cp = c; - *n += clen; - *ncp = 1u; - return LIBCHARCONV_CONVERTED; -} +#define REVERSED +#include "libcharconv_rotated_90deg_cw.c" |
