# HG changeset patch # User Bram Moolenaar # Date 1371039026 -7200 # Node ID fc7f985df53745d157182585b01ee5dadb722a62 # Parent 6b2dcf5305399c1e808e9f7e1895cf7ee7a4873e updated for version 7.3.1171 Problem: Check for digits and ascii letters can be faster. Solution: Use a trick with one comparison. (Dominique Pelle) diff --git a/src/macros.h b/src/macros.h --- a/src/macros.h +++ b/src/macros.h @@ -109,15 +109,14 @@ #else # define ASCII_ISALPHA(c) ((c) < 0x7f && isalpha(c)) # define ASCII_ISALNUM(c) ((c) < 0x7f && isalnum(c)) -# define ASCII_ISLOWER(c) ((c) < 0x7f && islower(c)) -# define ASCII_ISUPPER(c) ((c) < 0x7f && isupper(c)) +# define ASCII_ISLOWER(c) ((unsigned)(c) - 'a' < 26) +# define ASCII_ISUPPER(c) ((unsigned)(c) - 'A' < 26) #endif /* Use our own isdigit() replacement, because on MS-Windows isdigit() returns * non-zero for superscript 1. Also avoids that isdigit() crashes for numbers - * below 0 and above 255. For complicated arguments and in/decrement use - * vim_isdigit() instead. */ -#define VIM_ISDIGIT(c) ((c) >= '0' && (c) <= '9') + * below 0 and above 255. */ +#define VIM_ISDIGIT(c) ((unsigned)(c) - '0' < 10) /* macro version of chartab(). * Only works with values 0-255! diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1171, +/**/ 1170, /**/ 1169,