[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24020: [PATCH] Fix ‘is multibyte’ test regex.c’s mutually_exclusive_

From: Michal Nazarewicz
Subject: bug#24020: [PATCH] Fix ‘is multibyte’ test regex.c’s mutually_exclusive_p (bug#24020)
Date: Wed, 27 Jul 2016 18:22:17 +0200

* 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.
 src/regex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

 FYI, I’ve just submitted this patch.  The bug has been caught by
 tests from dima_regex_embedded_modifiers branch which I’m working on
 pulling into master branch so they will come in another commits.

diff --git a/src/regex.c b/src/regex.c
index 297bf71..1f2a1f08 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;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]