diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-06-05 08:43:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-05 08:43:01 +0200 |
commit | ae927a49f7e3db3b1a2ba7e8e07736695594028d (patch) | |
tree | 68d30d9933358c04c549380421b92bbfdcc74f49 /src/nvim/regexp.c | |
parent | b2633bba732a4ddd8f847b2bd445e53f93fa5d60 (diff) | |
parent | 2ab7165214e82fb6f509663929243b13d0ef163a (diff) | |
download | rneovim-ae927a49f7e3db3b1a2ba7e8e07736695594028d.tar.gz rneovim-ae927a49f7e3db3b1a2ba7e8e07736695594028d.tar.bz2 rneovim-ae927a49f7e3db3b1a2ba7e8e07736695594028d.zip |
Merge #8479 from janlazo/vim-8.0.0529
Diffstat (limited to 'src/nvim/regexp.c')
-rw-r--r-- | src/nvim/regexp.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index ee7d6d8500..c4af7d9e4a 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -479,6 +479,8 @@ static char_u *regprop(char_u *); #endif static char_u e_missingbracket[] = N_("E769: Missing ] after %s["); +static char_u e_reverse_range[] = N_("E944: Reverse range in character class"); +static char_u e_large_class[] = N_("E945: Range too large in character class"); static char_u e_unmatchedpp[] = N_("E53: Unmatched %s%%("); static char_u e_unmatchedp[] = N_("E54: Unmatched %s("); static char_u e_unmatchedpar[] = N_("E55: Unmatched %s)"); @@ -2232,15 +2234,18 @@ collection: if (endc == '\\' && !reg_cpo_lit) endc = coll_get_char(); - if (startc > endc) - EMSG_RET_NULL(_(e_invrange)); + if (startc > endc) { + EMSG_RET_NULL(_(e_reverse_range)); + } if (has_mbyte && ((*mb_char2len)(startc) > 1 || (*mb_char2len)(endc) > 1)) { - /* Limit to a range of 256 chars */ - if (endc > startc + 256) - EMSG_RET_NULL(_(e_invrange)); - while (++startc <= endc) + // Limit to a range of 256 chars + if (endc > startc + 256) { + EMSG_RET_NULL(_(e_large_class)); + } + while (++startc <= endc) { regmbc(startc); + } } else { while (++startc <= endc) regc(startc); |