Mercurial > vim
diff src/regexp_nfa.c @ 11469:0ade9dd85156 v8.0.0618
patch 8.0.0618: NFA regex engine handles [0-z] incorrectly
commit https://github.com/vim/vim/commit/bb7943b7920ef2f88cb9b6f46c34c7946c370819
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jun 5 13:30:06 2017 +0200
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 https://github.com/vim/vim/issues/1703)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 05 Jun 2017 13:45:04 +0200 |
parents | 121d29004998 |
children | 99ce30ac4226 |
line wrap: on
line diff
--- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -628,37 +628,39 @@ nfa_recognize_char_class(char_u *start, 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; }