diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-04-24 14:40:12 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-04-24 14:40:12 +0200 |
commit | af98a49dd0ef1661b4998f118151fddbf6e4df75 (patch) | |
tree | 471ad9685408d9f1035e24f1ad02fa522fe46c30 /src/regexp.c | |
parent | fca66003053f8c0da5161d1fe4b75b3a389934b5 (diff) | |
download | vim-git-af98a49dd0ef1661b4998f118151fddbf6e4df75.tar.gz |
patch 7.4.1783v7.4.1783
Problem: The old regexp engine doesn't handle character classes correctly.
(Manuel Ortega)
Solution: Use regmbc() instead of regc(). Add a test.
Diffstat (limited to 'src/regexp.c')
-rw-r--r-- | src/regexp.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/regexp.c b/src/regexp.c index fada9fe95..733d56425 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -2544,12 +2544,12 @@ collection: case CLASS_ALNUM: for (cu = 1; cu <= 255; cu++) if (isalnum(cu)) - regc(cu); + regmbc(cu); break; case CLASS_ALPHA: for (cu = 1; cu <= 255; cu++) if (isalpha(cu)) - regc(cu); + regmbc(cu); break; case CLASS_BLANK: regc(' '); @@ -2558,32 +2558,32 @@ collection: case CLASS_CNTRL: for (cu = 1; cu <= 255; cu++) if (iscntrl(cu)) - regc(cu); + regmbc(cu); break; case CLASS_DIGIT: for (cu = 1; cu <= 255; cu++) if (VIM_ISDIGIT(cu)) - regc(cu); + regmbc(cu); break; case CLASS_GRAPH: for (cu = 1; cu <= 255; cu++) if (isgraph(cu)) - regc(cu); + regmbc(cu); break; case CLASS_LOWER: for (cu = 1; cu <= 255; cu++) if (MB_ISLOWER(cu)) - regc(cu); + regmbc(cu); break; case CLASS_PRINT: for (cu = 1; cu <= 255; cu++) if (vim_isprintc(cu)) - regc(cu); + regmbc(cu); break; case CLASS_PUNCT: for (cu = 1; cu <= 255; cu++) if (ispunct(cu)) - regc(cu); + regmbc(cu); break; case CLASS_SPACE: for (cu = 9; cu <= 13; cu++) @@ -2593,12 +2593,12 @@ collection: case CLASS_UPPER: for (cu = 1; cu <= 255; cu++) if (MB_ISUPPER(cu)) - regc(cu); + regmbc(cu); break; case CLASS_XDIGIT: for (cu = 1; cu <= 255; cu++) if (vim_isxdigit(cu)) - regc(cu); + regmbc(cu); break; case CLASS_TAB: regc('\t'); |