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