diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-03-29 17:30:27 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-03-29 17:30:27 +0200 |
commit | ace95989ed81929a84e205b26d0972cb9d6b4b19 (patch) | |
tree | e6d6813abe2e2671741c7ca27864d85969ec601b | |
parent | 0c078fc7db2902d4ccba04506db082ddbef45a8c (diff) |
patch 8.0.0520: using a function pointer while the function is knownv8.0.0520
Problem: Using a function pointer instead of the actual function, which we
know.
Solution: Change mb_ functions to utf_ functions when already checked for
Unicode. (Dominique Pelle, closes #1582)
-rw-r--r-- | src/message.c | 2 | ||||
-rw-r--r-- | src/misc2.c | 2 | ||||
-rw-r--r-- | src/regexp.c | 6 | ||||
-rw-r--r-- | src/regexp_nfa.c | 2 | ||||
-rw-r--r-- | src/screen.c | 20 | ||||
-rw-r--r-- | src/spell.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
7 files changed, 21 insertions, 19 deletions
diff --git a/src/message.c b/src/message.c index a4dd746d0a..a9a66698d2 100644 --- a/src/message.c +++ b/src/message.c @@ -315,7 +315,7 @@ trunc_string( for (;;) { do - half = half - (*mb_head_off)(s, s + half - 1) - 1; + half = half - utf_head_off(s, s + half - 1) - 1; while (half > 0 && utf_iscomposing(utf_ptr2char(s + half))); n = ptr2cells(s + half); if (len + n > room || half == 0) diff --git a/src/misc2.c b/src/misc2.c index 2ded997de1..2f9fed57a4 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -1874,7 +1874,7 @@ vim_strchr(char_u *string, int c) { while (*p != NUL) { - int l = (*mb_ptr2len)(p); + int l = utfc_ptr2len(p); /* Avoid matching an illegal byte here. */ if (utf_ptr2char(p) == c && l > 1) diff --git a/src/regexp.c b/src/regexp.c index b4fe7d7ebf..e1f6484c00 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -4732,7 +4732,7 @@ regmatch( break; } if (enc_utf8) - opndc = mb_ptr2char(opnd); + opndc = utf_ptr2char(opnd); if (enc_utf8 && utf_iscomposing(opndc)) { /* When only a composing char is given match at any @@ -4741,7 +4741,7 @@ regmatch( for (i = 0; reginput[i] != NUL; i += utf_ptr2len(reginput + i)) { - inpc = mb_ptr2char(reginput + i); + inpc = utf_ptr2char(reginput + i); if (!utf_iscomposing(inpc)) { if (i > 0) @@ -4750,7 +4750,7 @@ regmatch( else if (opndc == inpc) { /* Include all following composing chars. */ - len = i + mb_ptr2len(reginput + i); + len = i + utfc_ptr2len(reginput + i); status = RA_MATCH; break; } diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index e6d8255e9c..120861a46b 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -1974,7 +1974,7 @@ collection: nfa_do_multibyte: /* plen is length of current char with composing chars */ if (enc_utf8 && ((*mb_char2len)(c) - != (plen = (*mb_ptr2len)(old_regparse)) + != (plen = utfc_ptr2len(old_regparse)) || utf_iscomposing(c))) { int i = 0; diff --git a/src/screen.c b/src/screen.c index 6a7284bb46..ceb30e337d 100644 --- a/src/screen.c +++ b/src/screen.c @@ -4119,7 +4119,7 @@ win_line( c = c_extra; #ifdef FEAT_MBYTE mb_c = c; /* doesn't handle non-utf-8 multi-byte! */ - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -4140,7 +4140,7 @@ win_line( { /* If the UTF-8 character is more than one byte: * Decode it into "mb_c". */ - mb_l = (*mb_ptr2len)(p_extra); + mb_l = utfc_ptr2len(p_extra); mb_utf8 = FALSE; if (mb_l > n_extra) mb_l = 1; @@ -4219,7 +4219,7 @@ win_line( { /* If the UTF-8 character is more than one byte: Decode it * into "mb_c". */ - mb_l = (*mb_ptr2len)(ptr); + mb_l = utfc_ptr2len(ptr); mb_utf8 = FALSE; if (mb_l > 1) { @@ -4612,7 +4612,7 @@ win_line( } #ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -4634,7 +4634,7 @@ win_line( } #ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -4765,7 +4765,7 @@ win_line( saved_attr2 = char_attr; /* save current attr */ #ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -4839,7 +4839,7 @@ win_line( } #ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -5003,7 +5003,7 @@ win_line( } # ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -5110,7 +5110,7 @@ win_line( extra_attr = HL_ATTR(HLF_AT); } mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; @@ -5383,7 +5383,7 @@ win_line( char_attr = HL_ATTR(HLF_AT); #ifdef FEAT_MBYTE mb_c = c; - if (enc_utf8 && (*mb_char2len)(c) > 1) + if (enc_utf8 && utf_char2len(c) > 1) { mb_utf8 = TRUE; u8cc[0] = 0; diff --git a/src/spell.c b/src/spell.c index 1700bba0e4..ed0db8c8aa 100644 --- a/src/spell.c +++ b/src/spell.c @@ -1208,7 +1208,7 @@ can_compound(slang_T *slang, char_u *word, char_u *flags) /* Need to convert the single byte flags to utf8 characters. */ p = uflags; for (i = 0; flags[i] != NUL; ++i) - p += mb_char2bytes(flags[i], p); + p += utf_char2bytes(flags[i], p); *p = NUL; p = uflags; } @@ -5117,11 +5117,11 @@ suggest_trie_walk( * SCORE_SUBCOMP. */ if (enc_utf8 && utf_iscomposing( - mb_ptr2char(tword + utf_ptr2char(tword + sp->ts_twordlen - sp->ts_tcharlen)) && utf_iscomposing( - mb_ptr2char(fword + utf_ptr2char(fword + sp->ts_fcharstart))) sp->ts_score -= SCORE_SUBST - SCORE_SUBCOMP; diff --git a/src/version.c b/src/version.c index 36adf25a54..5705d98374 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 520, +/**/ 519, /**/ 518, |