unicode: fix handling of short 1-4 char tables
No binary (build failed)
—
(log yok)
| @@ -250,7 +250,6 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp) | |
| #if ENABLE_MONOTONIC_SYSCALL | |
| - | #include <sys/syscall.h> |
| /* Old glibc (< 2.3.4) does not provide this constant. We use syscall | |
| * directly so this definition is safe. */ | |
| #ifndef CLOCK_MONOTONIC | |
| @@ -306,8 +306,10 @@ static int in_uint16_table(unsigned ucs, const uint16_t *table, unsigned max) | |
| unsigned first, last; | |
| first = table[0] >> 2; | |
| - | last = first + (table[0] & 3); |
| - | if (ucs < first || ucs > last) |
| + | if (ucs < first) |
| + | return 0; |
| + | last = (table[max] >> 2) + (table[max] & 3); |
| + | if (ucs > last) |
| return 0; | |
| min = 0; | |