summaryrefslogtreecommitdiff
path: root/src/regexp_nfa.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-06-05 13:30:06 +0200
committerBram Moolenaar <Bram@vim.org>2017-06-05 13:30:06 +0200
commitbb7943b7920ef2f88cb9b6f46c34c7946c370819 (patch)
tree6b646bc455347b774411c0fe6d6a39f0daaa640d /src/regexp_nfa.c
parent763209c57bf50ae777f9c2929eeea01eff7ae6ee (diff)
downloadvim-bb7943b7920ef2f88cb9b6f46c34c7946c370819.zip
patch 8.0.0618: NFA regex engine handles [0-z] incorrectly
Problem: NFA regex engine handles [0-z] incorrectly. Solution: Return at the right point. (James McCoy, closes #1703)
Diffstat (limited to 'src/regexp_nfa.c')
-rw-r--r--src/regexp_nfa.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 120861a46..c490acb71 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -628,37 +628,39 @@ nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
config |= CLASS_o9;
break;
}
- else
if (*(p + 2) == '7')
{
config |= CLASS_o7;
break;
}
+ return FAIL;
+
case 'a':
if (*(p + 2) == 'z')
{
config |= CLASS_az;
break;
}
- else
if (*(p + 2) == 'f')
{
config |= CLASS_af;
break;
}
+ return FAIL;
+
case 'A':
if (*(p + 2) == 'Z')
{
config |= CLASS_AZ;
break;
}
- else
if (*(p + 2) == 'F')
{
config |= CLASS_AF;
break;
}
- /* FALLTHROUGH */
+ return FAIL;
+
default:
return FAIL;
}