lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
len = epos->col - spos->col;
if (*p_sel != 'e')
- len += MB_PTR2LEN(lbuf + epos->col);
+ len += mb_ptr2len(lbuf + epos->col);
lbuf = vim_strnsave(lbuf + spos->col, len);
lnum = spos->lnum;
col = spos->col;
// xdiff doesn't support ignoring case, fold-case the text.
c = PTR2CHAR(s);
c = enc_utf8 ? utf_fold(c) : MB_TOLOWER(c);
- orig_len = MB_PTR2LEN(s);
+ orig_len = mb_ptr2len(s);
if (mb_char2bytes(c, cbuf) != orig_len)
// TODO: handle byte length difference
mch_memmove(ptr + len, s, orig_len);
if (zero_width == regmatch.startp[0])
{
/* avoid getting stuck on a match with an empty string */
- i = MB_PTR2LEN(tail);
+ i = mb_ptr2len(tail);
mch_memmove((char_u *)ga.ga_data + ga.ga_len, tail,
(size_t)i);
ga.ga_len += i;
}
else
set_last_csearch(PTR2CHAR(csearch),
- csearch, MB_PTR2LEN(csearch));
+ csearch, mb_ptr2len(csearch));
}
di = dict_find(d, (char_u *)"forward", -1);
}
else
{
- len = MB_PTR2LEN(p);
+ len = mb_ptr2len(p);
msg_outtrans_len(p, len);
vcol += ptr2cells(p);
p += len;
&& !(cx == '/' && cy == '\\')
&& !(cx == '\\' && cy == '/')))
break;
- len -= MB_PTR2LEN(px);
- px += MB_PTR2LEN(px);
- py += MB_PTR2LEN(py);
+ len -= mb_ptr2len(px);
+ px += mb_ptr2len(px);
+ py += mb_ptr2len(py);
}
if (len == 0)
return 0;
: c1 - c2; // no match
}
- i += MB_PTR2LEN((char_u *)p + i);
- j += MB_PTR2LEN((char_u *)q + j);
+ i += mb_ptr2len((char_u *)p + i);
+ j += mb_ptr2len((char_u *)q + j);
}
if (s == NULL) // "i" or "j" ran into "maxlen"
return 0;
c1 = PTR2CHAR((char_u *)s + i);
- c2 = PTR2CHAR((char_u *)s + i + MB_PTR2LEN((char_u *)s + i));
+ c2 = PTR2CHAR((char_u *)s + i + mb_ptr2len((char_u *)s + i));
// ignore a trailing slash, but not "//" or ":/"
if (c2 == NUL
&& i > 0
prev2 = prev1;
prev1 = c1;
- i += MB_PTR2LEN(s1 + i);
- j += MB_PTR2LEN(s2 + j);
+ i += mb_ptr2len(s1 + i);
+ j += mb_ptr2len(s2 + j);
}
return s1[i] == s2[j];
}
char_u *p2 = mb_unescape(&p1);
if (has_mbyte && p2 != NULL
- && MB_BYTE2LEN(tb_c1) > MB_PTR2LEN(p2))
+ && MB_BYTE2LEN(tb_c1) > mb_ptr2len(p2))
mlen = 0;
}
&& col >= shl->startcol
&& col < shl->endcol)
{
- int next_col = col + MB_PTR2LEN(*line + col);
+ int next_col = col + mb_ptr2len(*line + col);
if (shl->endcol < next_col)
shl->endcol = next_col;
* MB_COPY_CHAR(f, t): copy one char from "f" to "t" and advance the pointers.
* PTR2CHAR(): get character from pointer.
*/
-/* Get the length of the character p points to, including composing chars */
-#define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1))
/* Advance multi-byte pointer, skip over composing chars. */
-#define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1)
+#define MB_PTR_ADV(p) p += (*mb_ptr2len)(p)
/* Advance multi-byte pointer, do not skip over composing chars. */
-#define MB_CPTR_ADV(p) p += enc_utf8 ? utf_ptr2len(p) : has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1)
+#define MB_CPTR_ADV(p) p += enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p)
/* Backup multi-byte pointer. Only use with "p" > "s" ! */
#define MB_PTR_BACK(s, p) p -= has_mbyte ? ((*mb_head_off)(s, p - 1) + 1) : 1
/* get length of multi-byte char, not including composing chars */
while (ptr[col] != NUL
&& !vim_isdigit(ptr[col])
&& !(doalp && ASCII_ISALPHA(ptr[col])))
- col += MB_PTR2LEN(ptr + col);
+ col += mb_ptr2len(ptr + col);
while (col > 0
&& vim_isdigit(ptr[col - 1])
&& !vim_isdigit(ptr[col])
&& !(doalp && ASCII_ISALPHA(ptr[col])))
{
- int mb_len = MB_PTR2LEN(ptr + col);
+ int mb_len = mb_ptr2len(ptr + col);
col += mb_len;
length -= mb_len;
/* This is wrong when printing spaces for a TAB. */
if (p[len] != NUL)
{
- wlen = MB_PTR2LEN(p + len);
+ wlen = mb_ptr2len(p + len);
wp = enc_to_utf16(p + len, &wlen);
if (wp != NULL)
{
}
}
item->cells += ptr2cells(p);
- p += MB_PTR2LEN(p);
+ p += mb_ptr2len(p);
}
item->bytelen = p - item->start;
if (item->cells > max_cells)
{
cells = item->indent * 2;
for (p = item->start + skip; p < item->start + item->bytelen;
- p += MB_PTR2LEN(p))
+ p += mb_ptr2len(p))
if ((cells += ptr2cells(p)) > BALLOON_MIN_WIDTH)
break;
thislen = p - (item->start + skip);
find_mps_values(&initc, &findc, &backwards, FALSE);
if (findc)
break;
- pos.col += MB_PTR2LEN(linep + pos.col);
+ pos.col += mb_ptr2len(linep + pos.col);
}
if (!findc)
{
if (PTR2CHAR(p) == c && (curwin->w_p_rl ^ p_ri))
break;
#endif
- p += MB_PTR2LEN(p) + 1;
+ p += mb_ptr2len(p) + 1;
if (PTR2CHAR(p) == c
#ifdef FEAT_RIGHTLEFT
&& !(curwin->w_p_rl ^ p_ri)
#endif
)
break;
- p += MB_PTR2LEN(p);
+ p += mb_ptr2len(p);
if (*p == NUL)
return;
}
&& action == ACTION_EXPAND
&& !(compl_cont_status & CONT_SOL)
&& *startp != NUL
- && *(p = startp + MB_PTR2LEN(startp)) != NUL)
+ && *(p = startp + mb_ptr2len(startp)) != NUL)
goto search_line;
}
line_breakcheck();
if (has_mbyte)
{
- l = MB_PTR2LEN(p);
+ l = mb_ptr2len(p);
s = p;
if (l == 1)
{
{
int l;
- l = MB_PTR2LEN(fword + sp->ts_fidx);
+ l = mb_ptr2len(fword + sp->ts_fidx);
if (fword_ends)
{
// Copy the skipped character to preword.
// Correct ts_fidx for the byte length of the
// character (we didn't check that before).
sp->ts_fidx = sp->ts_fcharstart
- + MB_PTR2LEN(
+ + mb_ptr2len(
fword + sp->ts_fcharstart);
// For changing a composing character adjust
// the score from SCORE_SUBST to
if (has_mbyte)
{
c = mb_ptr2char(fword + sp->ts_fidx);
- stack[depth].ts_fidx += MB_PTR2LEN(fword + sp->ts_fidx);
+ stack[depth].ts_fidx += mb_ptr2len(fword + sp->ts_fidx);
if (enc_utf8 && utf_iscomposing(c))
stack[depth].ts_score -= SCORE_DEL - SCORE_DELCOMP;
else if (c == mb_ptr2char(fword + stack[depth].ts_fidx))
p = fword + sp->ts_fidx;
if (has_mbyte)
{
- n = MB_PTR2LEN(p);
+ n = mb_ptr2len(p);
c = mb_ptr2char(p + n);
- mch_memmove(p + MB_PTR2LEN(p + n), p, n);
+ mch_memmove(p + mb_ptr2len(p + n), p, n);
mb_char2bytes(c, p);
}
else
p = fword + sp->ts_fidx;
if (has_mbyte)
{
- n = MB_PTR2LEN(p);
+ n = mb_ptr2len(p);
c2 = mb_ptr2char(p + n);
- fl = MB_PTR2LEN(p + n);
+ fl = mb_ptr2len(p + n);
c = mb_ptr2char(p + n + fl);
- tl = MB_PTR2LEN(p + n + fl);
+ tl = mb_ptr2len(p + n + fl);
mch_memmove(p + fl + tl, p, n);
mb_char2bytes(c, p);
mb_char2bytes(c2, p + tl);
p = fword + sp->ts_fidx;
if (has_mbyte)
{
- n = MB_PTR2LEN(p);
- n += MB_PTR2LEN(p + n);
+ n = mb_ptr2len(p);
+ n += mb_ptr2len(p + n);
c = mb_ptr2char(p + n);
- tl = MB_PTR2LEN(p + n);
+ tl = mb_ptr2len(p + n);
mch_memmove(p + tl, p, n);
mb_char2bytes(c, p);
}
if (has_mbyte)
{
c = mb_ptr2char(p);
- tl = MB_PTR2LEN(p);
- n = MB_PTR2LEN(p + tl);
- n += MB_PTR2LEN(p + tl + n);
+ tl = mb_ptr2len(p);
+ n = mb_ptr2len(p + tl);
+ n += mb_ptr2len(p + tl + n);
mch_memmove(p, p + tl, n);
mb_char2bytes(c, p + n);
}
attrs = cellattr->attrs;
fg = cellattr->fg;
bg = cellattr->bg;
- len = MB_PTR2LEN(p);
+ len = mb_ptr2len(p);
mch_memmove(mbs, p, len);
mbs[len] = NUL;
p += len;
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2120,
/**/
2119,
/**/