diff --git a/ChangeLog b/ChangeLog index d1aeea9b..d4a04190 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ an invalid escape sequence, and when entering a verbatim keystroke. Leave the cursor off during Unicode input, for extra feedback. * src/browser.c (do_browser): Improve the wording of a message. + * src/chars.c (is_valid_unicode): Speed up Unicode validation. 2016-03-28 Benno Schulenberg * src/winio.c (statusbar): Don't bother putting back the cursor in diff --git a/src/chars.c b/src/chars.c index 113ae2e4..ed598309 100644 --- a/src/chars.c +++ b/src/chars.c @@ -955,9 +955,10 @@ bool has_blank_mbchars(const char *s) /* Return TRUE if wc is valid Unicode, and FALSE otherwise. */ bool is_valid_unicode(wchar_t wc) { - return ((0 <= wc && wc <= 0x10FFFF) && (wc <= 0xD7FF || 0xE000 <= - wc) && (wc <= 0xFDCF || 0xFDF0 <= wc) && ((wc & 0xFFFF) <= - 0xFFFD)); + return ((0 <= wc && wc <= 0xD7FF) || + (0xE000 <= wc && wc <= 0xFDCF) || + (0xFDF0 <= wc && wc <= 0xFFFD) || + (0xFFFF < wc && wc <= 0x10FFFF && (wc & 0xFFFF) <= 0xFFFD)); } #endif