aboutsummaryrefslogtreecommitdiffstats
path: root/libcharconv_negative.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcharconv_negative.c')
-rw-r--r--libcharconv_negative.c40
1 files changed, 38 insertions, 2 deletions
diff --git a/libcharconv_negative.c b/libcharconv_negative.c
index dfdc353..3bbbccb 100644
--- a/libcharconv_negative.c
+++ b/libcharconv_negative.c
@@ -17,7 +17,13 @@ static struct {
{UINT32_C(0x2616), UINT32_C(0x26C9)},
{UINT32_C(0x2617), UINT32_C(0x26CA)},
{UINT32_C(0x26C0), UINT32_C(0x26C2)},
- {UINT32_C(0x26C1), UINT32_C(0x26C3)}
+ {UINT32_C(0x26C1), UINT32_C(0x26C3)},
+ {UINT32_C(0x1FA06), UINT32_C(0x1FA07)},
+ {UINT32_C(0x1FA1B), UINT32_C(0x1FA1C)},
+ {UINT32_C(0x1FA30), UINT32_C(0x1FA31)},
+ {UINT32_C(0x1FA45), UINT32_C(0x1FA46)},
+ {UINT32_C(0x1FA48), UINT32_C(0x1FA49)},
+ {UINT32_C(0x1FA4B), UINT32_C(0x1FA4C)}
};
@@ -41,12 +47,42 @@ libcharconv_negative(const char *s, size_t slen, size_t *n, uint_least32_t *cp,
continue;
}
- if (UINT32_C(0x1FA60) <= c && c <= UINT32_C(0x1FA66)) {
+ if (UINT32_C(0x2654) <= c && c <= UINT32_C(0x2659)) {
+ c += 6u;
+ goto conv;
+ } else if (UINT32_C(0x265A) <= c && c <= UINT32_C(0x265F)) {
+ c -= 6u;
+ goto conv;
+ } else if (UINT32_C(0x1FA60) <= c && c <= UINT32_C(0x1FA66)) {
c += 7u;
goto conv;
} else if (UINT32_C(0x1FA67) <= c && c <= UINT32_C(0x1FA6D)) {
c -= 7u;
goto conv;
+ } else if (UINT32_C(0x1FA09) <= c && c <= UINT32_C(0x1FA0E)) {
+ c += UINT32_C(0x1FA0F) - UINT32_C(0x1FA09);
+ goto conv;
+ } else if (UINT32_C(0x1FA0F) <= c && c <= UINT32_C(0x1FA14)) {
+ c -= UINT32_C(0x1FA0F) - UINT32_C(0x1FA09);
+ goto conv;
+ } else if (UINT32_C(0x1FA1E) <= c && c <= UINT32_C(0x1FA23)) {
+ c += UINT32_C(0x1FA24) - UINT32_C(0x1FA1E);
+ goto conv;
+ } else if (UINT32_C(0x1FA24) <= c && c <= UINT32_C(0x1FA29)) {
+ c -= UINT32_C(0x1FA24) - UINT32_C(0x1FA1E);
+ goto conv;
+ } else if (UINT32_C(0x1FA33) <= c && c <= UINT32_C(0x1FA38)) {
+ c += UINT32_C(0x1FA39) - UINT32_C(0x1FA33);
+ goto conv;
+ } else if (UINT32_C(0x1FA39) <= c && c <= UINT32_C(0x1FA3E)) {
+ c -= UINT32_C(0x1FA39) - UINT32_C(0x1FA33);
+ goto conv;
+ } else if (UINT32_C(0x1FA4E) <= c && c <= UINT32_C(0x1FA50)) {
+ c += UINT32_C(0x1FA51) - UINT32_C(0x1FA4E);
+ goto conv;
+ } else if (UINT32_C(0x1FA51) <= c && c <= UINT32_C(0x1FA53)) {
+ c -= UINT32_C(0x1FA51) - UINT32_C(0x1FA4E);
+ goto conv;
} else {
for (i = 0u; i < sizeof(pairs) / sizeof(*pairs); i++) {
if (c == pairs[i].a) {