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'); | 
