# HG changeset patch # User Karl Heuer # Date 790462056 0 # Node ID 066ee41f8e9730b46f2e3e4d9863a58551d341c1 # Parent 2f5dae439e46c732cce533096369c7f81bc85a28 [!emacs] (SWITCH_ENUM_CAST): New macro, from emacs/lisp.h (re_compile_fastmap, re_match_2_internal): Use that macro instead of testing SWITCH_ENUM_BUG. diff --git a/regex.c b/regex.c --- a/regex.c +++ b/regex.c @@ -86,6 +86,12 @@ #define Sword 1 #endif +#ifdef SWITCH_ENUM_BUG +#define SWITCH_ENUM_CAST(x) ((int)(x)) +#else +#define SWITCH_ENUM_CAST(x) (x) +#endif + #ifdef SYNTAX_TABLE extern char *re_syntax_table; @@ -2813,11 +2819,7 @@ /* We should never be about to go beyond the end of the pattern. */ assert (p < pend); -#ifdef SWITCH_ENUM_BUG - switch ((int) ((re_opcode_t) *p++)) -#else - switch ((re_opcode_t) *p++) -#endif + switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) { /* I guess the idea here is to simply not bother with a fastmap @@ -3770,11 +3772,7 @@ } /* Otherwise match next pattern command. */ -#ifdef SWITCH_ENUM_BUG - switch ((int) ((re_opcode_t) *p++)) -#else - switch ((re_opcode_t) *p++) -#endif + switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) { /* Ignore these. Used to ignore the n of succeed_n's which currently have n == 0. */