patch 8.2.4402: missing parenthesis may cause unexpected problems
Problem: Missing parenthesis may cause unexpected problems.
Solution: Add more parenthesis is macros. (closes #9788)
diff --git a/src/regexp.c b/src/regexp.c
index 81ca514..110d76d 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -247,15 +247,15 @@
done = TRUE;
}
-#define ri_digit(c) (c < 0x100 && (class_tab[c] & RI_DIGIT))
-#define ri_hex(c) (c < 0x100 && (class_tab[c] & RI_HEX))
-#define ri_octal(c) (c < 0x100 && (class_tab[c] & RI_OCTAL))
-#define ri_word(c) (c < 0x100 && (class_tab[c] & RI_WORD))
-#define ri_head(c) (c < 0x100 && (class_tab[c] & RI_HEAD))
-#define ri_alpha(c) (c < 0x100 && (class_tab[c] & RI_ALPHA))
-#define ri_lower(c) (c < 0x100 && (class_tab[c] & RI_LOWER))
-#define ri_upper(c) (c < 0x100 && (class_tab[c] & RI_UPPER))
-#define ri_white(c) (c < 0x100 && (class_tab[c] & RI_WHITE))
+#define ri_digit(c) ((c) < 0x100 && (class_tab[c] & RI_DIGIT))
+#define ri_hex(c) ((c) < 0x100 && (class_tab[c] & RI_HEX))
+#define ri_octal(c) ((c) < 0x100 && (class_tab[c] & RI_OCTAL))
+#define ri_word(c) ((c) < 0x100 && (class_tab[c] & RI_WORD))
+#define ri_head(c) ((c) < 0x100 && (class_tab[c] & RI_HEAD))
+#define ri_alpha(c) ((c) < 0x100 && (class_tab[c] & RI_ALPHA))
+#define ri_lower(c) ((c) < 0x100 && (class_tab[c] & RI_LOWER))
+#define ri_upper(c) ((c) < 0x100 && (class_tab[c] & RI_UPPER))
+#define ri_white(c) ((c) < 0x100 && (class_tab[c] & RI_WHITE))
// flags for regflags
#define RF_ICASE 1 // ignore case