From f9d6aa9ba3295ebddc91f9f111280291d82b39b9 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 29 Mar 2016 14:46:53 +0000 Subject: [PATCH] Speeding up Unicode validation. (The measurable effect (during long searches, for example) is zero, though.) git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5773 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 1 + src/chars.c | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) 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 -- 2.39.5