diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-12-19 22:46:22 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-12-19 22:46:22 +0000 |
commit | 1cd871b5341bf43ee99e136844e3131014880f92 (patch) | |
tree | 6bd9573dbc14de3c4ec85e424cbec9c8d1ee0ed8 /src/regexp.c | |
parent | 46c9c73de8def79baf8f0a34a12549f6c14944f3 (diff) | |
download | vim-git-1cd871b5341bf43ee99e136844e3131014880f92.tar.gz |
updated for version 7.0023v7.0023
Diffstat (limited to 'src/regexp.c')
-rw-r--r-- | src/regexp.c | 72 |
1 files changed, 13 insertions, 59 deletions
diff --git a/src/regexp.c b/src/regexp.c index 23e31af22..2e828541a 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -497,14 +497,7 @@ skip_anyof(p) { ++p; if (*p != ']' && *p != NUL) - { -#ifdef FEAT_MBYTE - if (has_mbyte) - p += (*mb_ptr2len_check)(p); - else -#endif - ++p; - } + mb_ptr_adv(p); } else if (*p == '\\' && (vim_strchr(REGEXP_INRANGE, p[1]) != NULL @@ -755,7 +748,7 @@ skip_regexp(startp, dirc, magic, newp) else mymagic = MAGIC_OFF; - for (; p[0] != NUL; ++p) + for (; p[0] != NUL; mb_ptr_adv(p)) { if (p[0] == dirc) /* found end of regexp */ break; @@ -789,10 +782,6 @@ skip_regexp(startp, dirc, magic, newp) else if (*p == 'V') mymagic = MAGIC_NONE; } -#ifdef FEAT_MBYTE - else if (has_mbyte) - p += (*mb_ptr2len_check)(p) - 1; -#endif } return p; } @@ -2935,7 +2924,8 @@ vim_regexec(rmp, line, col) return (vim_regexec_both(line, col) != 0); } -#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO) +#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \ + || defined(FIND_REPLACE_DIALOG) || defined(PROTO) /* * Like vim_regexec(), but consider a "\n" in "line" to be a line break. */ @@ -3105,12 +3095,7 @@ vim_regexec_both(line, col) { if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) break; /* Found it. */ -#ifdef FEAT_MBYTE - if (has_mbyte) - s += (*mb_ptr2len_check)(s); - else -#endif - ++s; + mb_ptr_adv(s); } if (s == NULL) /* Not present. */ goto theend; @@ -3338,21 +3323,8 @@ regtry(prog, col) } #ifdef FEAT_MBYTE -/* multi-byte: advance reginput with a function */ -# define ADVANCE_REGINPUT() advance_reginput() - -static void advance_reginput __ARGS((void)); static int reg_prev_class __ARGS((void)); - static void -advance_reginput() -{ - if (has_mbyte) - reginput += (*mb_ptr2len_check)(reginput); - else - ++reginput; -} - /* * Get class of previous character. */ @@ -3365,10 +3337,8 @@ reg_prev_class() return -1; } -#else -/* No multi-byte: It's too simple to make a function for. */ -# define ADVANCE_REGINPUT() ++reginput #endif +#define ADVANCE_REGINPUT() mb_ptr_adv(reginput) /* * The arguments from BRACE_LIMITS are stored here. They are actually local @@ -4270,13 +4240,7 @@ regmatch(scan) return FALSE; } else - { - --reginput; -#ifdef FEAT_MBYTE - if (has_mbyte) - reginput -= (*mb_head_off)(regline, reginput); -#endif - } + mb_ptr_back(regline, reginput); } } else @@ -4466,12 +4430,6 @@ regmatch(scan) return FALSE; } -#ifdef FEAT_MBYTE -# define ADVANCE_P(x) if (has_mbyte) x += (*mb_ptr2len_check)(x); else ++x -#else -# define ADVANCE_P(x) ++x -#endif - /* * regrepeat - repeatedly match something simple, return how many. * Advances reginput (and reglnum) to just after the matched chars. @@ -4500,7 +4458,7 @@ regrepeat(p, maxcount) while (*scan != NUL && count < maxcount) { ++count; - ADVANCE_P(scan); + mb_ptr_adv(scan); } if (!WITH_NL(OP(p)) || reglnum == reg_maxline || count == maxcount) break; @@ -4522,7 +4480,7 @@ regrepeat(p, maxcount) { if (vim_isIDc(*scan) && (testval || !VIM_ISDIGIT(*scan))) { - ADVANCE_P(scan); + mb_ptr_adv(scan); } else if (*scan == NUL) { @@ -4551,7 +4509,7 @@ regrepeat(p, maxcount) { if (vim_iswordp(scan) && (testval || !VIM_ISDIGIT(*scan))) { - ADVANCE_P(scan); + mb_ptr_adv(scan); } else if (*scan == NUL) { @@ -4580,7 +4538,7 @@ regrepeat(p, maxcount) { if (vim_isfilec(*scan) && (testval || !VIM_ISDIGIT(*scan))) { - ADVANCE_P(scan); + mb_ptr_adv(scan); } else if (*scan == NUL) { @@ -4618,7 +4576,7 @@ regrepeat(p, maxcount) } else if (ptr2cells(scan) == 1 && (testval || !VIM_ISDIGIT(*scan))) { - ADVANCE_P(scan); + mb_ptr_adv(scan); } else if (reg_line_lbr && *scan == '\n' && WITH_NL(OP(p))) ++scan; @@ -5975,7 +5933,7 @@ vim_regsub_both(source, dest, copy, magic, backslash) eval_result = eval_to_string(source + 2, NULL); if (eval_result != NULL) { - for (s = eval_result; *s != NUL; ++s) + for (s = eval_result; *s != NUL; mb_ptr_adv(s)) { /* Change NL to CR, so that it becomes a line break. * Skip over a backslashed character. */ @@ -5983,10 +5941,6 @@ vim_regsub_both(source, dest, copy, magic, backslash) *s = CAR; else if (*s == '\\' && s[1] != NUL) ++s; -#ifdef FEAT_MBYTE - if (has_mbyte) - s += (*mb_ptr2len_check)(s) - 1; -#endif } dst += STRLEN(eval_result); |