diff options
Diffstat (limited to '')
| -rw-r--r-- | libcharconv_bold.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/libcharconv_bold.c b/libcharconv_bold.c index 9e1bd6e..9da001c 100644 --- a/libcharconv_bold.c +++ b/libcharconv_bold.c @@ -7,19 +7,10 @@ libcharconv_bold(const char *s, size_t slen, size_t *n, uint_least32_t *cp, size { uint_least32_t c; *n = 0; - for (; slen--; s++) { - if ('A' <= *s && *s <= 'Z') { - c = (uint_least32_t)(UINT32_C(0x1D400) + (unsigned)(*s - 'A')); - goto conv; - } else if ('a' <= *s && *s <= 'z') { - c = (uint_least32_t)(UINT32_C(0x1D41A) + (unsigned)(*s - 'a')); - goto conv; - } else if ('0' <= *s && *s <= '9') { - c = (uint_least32_t)(UINT32_C(0x1D7CE) + (unsigned)(*s - '0')); - goto conv; - } else { - *n += 1u; - } + for (; slen--; s++, ++*n) { + PLAIN_RANGE('A', 'Z', 0x1D400); + PLAIN_RANGE('a', 'z', 0x1D41A); + PLAIN_RANGE('0', '9', 0x1D7CE); } no_conv: return LIBCHARCONV_NO_CONVERT; |
