diff options
Diffstat (limited to 'src/nvim/regexp.c')
-rw-r--r-- | src/nvim/regexp.c | 80 |
1 files changed, 50 insertions, 30 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index 64a70c295a..6613d284d7 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -2309,48 +2309,64 @@ collection: } break; case CLASS_ALNUM: - for (cu = 1; cu <= 255; cu++) - if (isalnum(cu)) - regc(cu); + for (cu = 1; cu < 128; cu++) { + if (isalnum(cu)) { + regmbc(cu); + } + } break; case CLASS_ALPHA: - for (cu = 1; cu <= 255; cu++) - if (isalpha(cu)) - regc(cu); + for (cu = 1; cu < 128; cu++) { + if (isalpha(cu)) { + regmbc(cu); + } + } break; case CLASS_BLANK: regc(' '); regc('\t'); break; case CLASS_CNTRL: - for (cu = 1; cu <= 255; cu++) - if (iscntrl(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (iscntrl(cu)) { + regmbc(cu); + } + } break; case CLASS_DIGIT: - for (cu = 1; cu <= 255; cu++) - if (ascii_isdigit(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (ascii_isdigit(cu)) { + regmbc(cu); + } + } break; case CLASS_GRAPH: - for (cu = 1; cu <= 255; cu++) - if (isgraph(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (isgraph(cu)) { + regmbc(cu); + } + } break; case CLASS_LOWER: - for (cu = 1; cu <= 255; cu++) - if (vim_islower(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (vim_islower(cu) && cu != 170 && cu != 186) { + regmbc(cu); + } + } break; case CLASS_PRINT: - for (cu = 1; cu <= 255; cu++) - if (vim_isprintc(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (vim_isprintc(cu)) { + regmbc(cu); + } + } break; case CLASS_PUNCT: - for (cu = 1; cu <= 255; cu++) - if (ispunct(cu)) - regc(cu); + for (cu = 1; cu < 128; cu++) { + if (ispunct(cu)) { + regmbc(cu); + } + } break; case CLASS_SPACE: for (cu = 9; cu <= 13; cu++) @@ -2358,14 +2374,18 @@ collection: regc(' '); break; case CLASS_UPPER: - for (cu = 1; cu <= 255; cu++) - if (vim_isupper(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (vim_isupper(cu)) { + regmbc(cu); + } + } break; case CLASS_XDIGIT: - for (cu = 1; cu <= 255; cu++) - if (ascii_isxdigit(cu)) - regc(cu); + for (cu = 1; cu <= 255; cu++) { + if (ascii_isxdigit(cu)) { + regmbc(cu); + } + } break; case CLASS_TAB: regc('\t'); |