From: Michal Nazarewicz Date: Wed, 27 Jul 2016 16:14:57 +0000 (+0200) Subject: Fix ‘is multibyte’ test regex.c’s mutually_exclusive_p (bug#24020) X-Git-Tag: emacs-26.0.90~1840^2~2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=74f9c1a8cdfaac948cf14a212cb5a51c49ddefa8;p=emacs.git Fix ‘is multibyte’ test regex.c’s mutually_exclusive_p (bug#24020) * src/regex.c (mutually_exclusive_p): Fix how whether character is unibyte is tested when calling execute_charset function. This bug has been introduced by [6dc6b00: Fix ‘[[:cc:]]*literal’ regex failing to match ‘literal’] which dropped a call to IS_REAL_ASCII (c) macro. Reinstitute it. --- diff --git a/src/regex.c b/src/regex.c index 297bf718848..1f2a1f086de 100644 --- a/src/regex.c +++ b/src/regex.c @@ -4767,7 +4767,7 @@ mutually_exclusive_p (struct re_pattern_buffer *bufp, const_re_char *p1, else if ((re_opcode_t) *p1 == charset || (re_opcode_t) *p1 == charset_not) { - if (!execute_charset (&p1, c, c, !multibyte)) + if (!execute_charset (&p1, c, c, !multibyte || IS_REAL_ASCII (c))) { DEBUG_PRINT (" No match => fast loop.\n"); return 1;