aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZviRackover <zvirack@gmail.com>2018-08-15 22:46:48 +0300
committerZviRackover <zvirack@gmail.com>2018-08-16 06:03:49 +0300
commit30392b635689a5f25421c17ead79e521863c8b57 (patch)
treedcfc160cd10b09de6a7ededd4d241196b24ac122
parent2bddc4ca54e31a14b7e9799beda134217ae867e7 (diff)
downloadrneovim-30392b635689a5f25421c17ead79e521863c8b57.tar.gz
rneovim-30392b635689a5f25421c17ead79e521863c8b57.tar.bz2
rneovim-30392b635689a5f25421c17ead79e521863c8b57.zip
Remove has_mbyte from lines near changes in parent commit
-rw-r--r--src/nvim/diff.c10
-rw-r--r--src/nvim/edit.c34
-rw-r--r--src/nvim/ex_getln.c31
-rw-r--r--src/nvim/getchar.c2
-rw-r--r--src/nvim/memline.c14
-rw-r--r--src/nvim/misc1.c4
-rw-r--r--src/nvim/normal.c56
-rw-r--r--src/nvim/ops.c2
-rw-r--r--src/nvim/path.c2
-rw-r--r--src/nvim/regexp_nfa.c3
-rw-r--r--src/nvim/screen.c2
-rw-r--r--src/nvim/search.c22
-rw-r--r--src/nvim/syntax.c4
-rw-r--r--src/nvim/window.c2
14 files changed, 66 insertions, 122 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index cd0aa40ecd..4bfe67c9d3 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -1962,12 +1962,10 @@ bool diff_find_change(win_T *wp, linenr_T lnum, int *startp, int *endp)
}
}
- if (has_mbyte) {
- // Move back to first byte of character in both lines (may
- // have "nn^" in line_org and "n^ in line_new).
- si_org -= utf_head_off(line_org, line_org + si_org);
- si_new -= utf_head_off(line_new, line_new + si_new);
- }
+ // Move back to first byte of character in both lines (may
+ // have "nn^" in line_org and "n^ in line_new).
+ si_org -= utf_head_off(line_org, line_org + si_org);
+ si_new -= utf_head_off(line_new, line_new + si_new);
if (*startp > si_org) {
*startp = si_org;
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 82c74a00c5..c60f85ed4c 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -1556,13 +1556,10 @@ void display_dollar(colnr_T col)
save_col = curwin->w_cursor.col;
curwin->w_cursor.col = col;
- if (has_mbyte) {
- char_u *p;
- /* If on the last byte of a multi-byte move to the first byte. */
- p = get_cursor_line_ptr();
- curwin->w_cursor.col -= utf_head_off(p, p + col);
- }
+ /* If on the last byte of a multi-byte move to the first byte. */
+ char_u *p = get_cursor_line_ptr();
+ curwin->w_cursor.col -= utf_head_off(p, p + col);
curs_columns(FALSE); /* recompute w_wrow and w_wcol */
if (curwin->w_wcol < curwin->w_width) {
edit_putchar('$', FALSE);
@@ -4589,22 +4586,15 @@ static int ins_complete(int c, bool enable_pum)
} else {
/* Search the point of change class of multibyte character
* or not a word single byte character backward. */
- if (has_mbyte) {
- int base_class;
- int head_off;
-
- startcol -= utf_head_off(line, line + startcol);
- base_class = mb_get_class(line + startcol);
- while (--startcol >= 0) {
- head_off = utf_head_off(line, line + startcol);
- if (base_class != mb_get_class(line + startcol
- - head_off))
- break;
- startcol -= head_off;
- }
- } else
- while (--startcol >= 0 && vim_iswordc(line[startcol]))
- ;
+ startcol -= utf_head_off(line, line + startcol);
+ int base_class = mb_get_class(line + startcol);
+ while (--startcol >= 0) {
+ int head_off = utf_head_off(line, line + startcol);
+ if (base_class != mb_get_class(line + startcol
+ - head_off))
+ break;
+ startcol -= head_off;
+ }
compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
if (compl_length == 1) {
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 4d3a3c3e96..b15dea00fe 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -725,9 +725,7 @@ static int command_line_execute(VimState *state, int key)
s->j = ccline.cmdpos;
s->i = (int)(s->xpc.xp_pattern - ccline.cmdbuff);
while (--s->j > s->i) {
- if (has_mbyte) {
- s->j -= utf_head_off(ccline.cmdbuff, ccline.cmdbuff + s->j);
- }
+ s->j -= utf_head_off(ccline.cmdbuff, ccline.cmdbuff + s->j);
if (vim_ispathsep(ccline.cmdbuff[s->j])) {
found = true;
break;
@@ -747,9 +745,7 @@ static int command_line_execute(VimState *state, int key)
s->j = ccline.cmdpos - 1;
s->i = (int)(s->xpc.xp_pattern - ccline.cmdbuff);
while (--s->j > s->i) {
- if (has_mbyte) {
- s->j -= utf_head_off(ccline.cmdbuff, ccline.cmdbuff + s->j);
- }
+ s->j -= utf_head_off(ccline.cmdbuff, ccline.cmdbuff + s->j);
if (vim_ispathsep(ccline.cmdbuff[s->j])
#ifdef BACKSLASH_IN_FILENAME
&& vim_strchr((const char_u *)" *?[{`$%#", ccline.cmdbuff[s->j + 1])
@@ -1436,19 +1432,16 @@ static int command_line_handle_key(CommandLineState *s)
}
do {
--ccline.cmdpos;
- if (has_mbyte) { // move to first byte of char
- ccline.cmdpos -= utf_head_off(ccline.cmdbuff,
- ccline.cmdbuff + ccline.cmdpos);
- }
+ // Move to first byte of possibly multibyte char.
+ ccline.cmdpos -= utf_head_off(ccline.cmdbuff,
+ ccline.cmdbuff + ccline.cmdpos);
ccline.cmdspos -= cmdline_charsize(ccline.cmdpos);
} while (ccline.cmdpos > 0
&& (s->c == K_S_LEFT || s->c == K_C_LEFT
|| (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)))
&& ccline.cmdbuff[ccline.cmdpos - 1] != ' ');
- if (has_mbyte) {
- set_cmdspos_cursor();
- }
+ set_cmdspos_cursor();
return command_line_not_changed(s);
@@ -2268,14 +2261,10 @@ getexmodeline (
if (c1 == BS || c1 == K_BS || c1 == DEL || c1 == K_DEL || c1 == K_KDEL) {
if (!GA_EMPTY(&line_ga)) {
- if (has_mbyte) {
- p = (char_u *)line_ga.ga_data;
- p[line_ga.ga_len] = NUL;
- len = utf_head_off(p, p + line_ga.ga_len - 1) + 1;
- line_ga.ga_len -= len;
- } else {
- line_ga.ga_len--;
- }
+ p = (char_u *)line_ga.ga_data;
+ p[line_ga.ga_len] = NUL;
+ len = utf_head_off(p, p + line_ga.ga_len - 1) + 1;
+ line_ga.ga_len -= len;
goto redraw;
}
continue;
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 8c6c3dfd7e..c8f29435e3 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -2129,7 +2129,7 @@ static int vgetorpeek(int advance)
curwin->w_wcol = curwin->w_width - 1;
col = curwin->w_cursor.col - 1;
}
- if (has_mbyte && col > 0 && curwin->w_wcol > 0) {
+ if (col > 0 && curwin->w_wcol > 0) {
/* Correct when the cursor is on the right halve
* of a double-wide character. */
ptr = get_cursor_line_ptr();
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index ca89b7a345..6831e48719 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -4035,24 +4035,18 @@ int incl(pos_T *lp)
int dec(pos_T *lp)
{
- char_u *p;
-
lp->coladd = 0;
if (lp->col > 0) { // still within line
lp->col--;
- if (has_mbyte) {
- p = ml_get(lp->lnum);
- lp->col -= utf_head_off(p, p + lp->col);
- }
+ char_u *p = ml_get(lp->lnum);
+ lp->col -= utf_head_off(p, p + lp->col);
return 0;
}
if (lp->lnum > 1) { // there is a prior line
lp->lnum--;
- p = ml_get(lp->lnum);
+ char_u *p = ml_get(lp->lnum);
lp->col = (colnr_T)STRLEN(p);
- if (has_mbyte) {
- lp->col -= utf_head_off(p, p + lp->col);
- }
+ lp->col -= utf_head_off(p, p + lp->col);
return 1;
}
return -1; // at start of file
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c
index 93886351ac..08d1df7f08 100644
--- a/src/nvim/misc1.c
+++ b/src/nvim/misc1.c
@@ -1646,9 +1646,7 @@ int del_bytes(colnr_T count, bool fixpos_arg, bool use_delcombine)
) {
--curwin->w_cursor.col;
curwin->w_cursor.coladd = 0;
- if (has_mbyte)
- curwin->w_cursor.col -=
- utf_head_off(oldp, oldp + curwin->w_cursor.col);
+ curwin->w_cursor.col -= utf_head_off(oldp, oldp + curwin->w_cursor.col);
}
count = oldlen - col;
movelen = 1;
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 0cd4486d40..d36c0e42a4 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -3058,47 +3058,29 @@ size_t find_ident_at_pos(win_T *wp, linenr_T lnum, colnr_T startcol,
/*
* 2. Back up to start of identifier/string.
*/
- if (has_mbyte) {
- /* Remember class of character under cursor. */
- this_class = mb_get_class(ptr + col);
- while (col > 0 && this_class != 0) {
- prevcol = col - 1 - utf_head_off(ptr, ptr + col - 1);
- prev_class = mb_get_class(ptr + prevcol);
- if (this_class != prev_class
- && (i == 0
- || prev_class == 0
- || (find_type & FIND_IDENT))
- )
- break;
- col = prevcol;
- }
-
- /* If we don't want just any old string, or we've found an
- * identifier, stop searching. */
- if (this_class > 2)
- this_class = 2;
- if (!(find_type & FIND_STRING) || this_class == 2)
- break;
- } else {
- while (col > 0
- && ((i == 0
- ? vim_iswordc(ptr[col - 1])
- : (!ascii_iswhite(ptr[col - 1])
- && (!(find_type & FIND_IDENT)
- || !vim_iswordc(ptr[col - 1]))))
- ))
- --col;
-
- /* If we don't want just any old string, or we've found an
- * identifier, stop searching. */
- if (!(find_type & FIND_STRING) || vim_iswordc(ptr[col]))
+ /* Remember class of character under cursor. */
+ this_class = mb_get_class(ptr + col);
+ while (col > 0 && this_class != 0) {
+ prevcol = col - 1 - utf_head_off(ptr, ptr + col - 1);
+ prev_class = mb_get_class(ptr + prevcol);
+ if (this_class != prev_class
+ && (i == 0
+ || prev_class == 0
+ || (find_type & FIND_IDENT))
+ )
break;
+ col = prevcol;
}
+
+ /* If we don't want just any old string, or we've found an
+ * identifier, stop searching. */
+ if (this_class > 2)
+ this_class = 2;
+ if (!(find_type & FIND_STRING) || this_class == 2)
+ break;
}
- if (ptr[col] == NUL || (i == 0 && (
- has_mbyte ? this_class != 2 :
- !vim_iswordc(ptr[col])))) {
+ if (ptr[col] == NUL || (i == 0 && this_class != 2)) {
/*
* didn't find an identifier or string
*/
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 410cddb2be..dbdab4026d 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -520,7 +520,7 @@ static void block_insert(oparg_T *oap, char_u *s, int b_insert, struct block_def
}
}
- if (has_mbyte && spaces > 0) {
+ if (spaces > 0) {
int off;
// Avoid starting halfway through a multi-byte character.
diff --git a/src/nvim/path.c b/src/nvim/path.c
index 08b904534b..eeb374cf44 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -1819,7 +1819,7 @@ void path_fix_case(char_u *name)
int after_pathsep(const char *b, const char *p)
{
return p > b && vim_ispathsep(p[-1])
- && (!has_mbyte || utf_head_off((char_u *)b, (char_u *)p - 1) == 0);
+ && utf_head_off((char_u *)b, (char_u *)p - 1) == 0;
}
/*
diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c
index b52b39c722..c81121286d 100644
--- a/src/nvim/regexp_nfa.c
+++ b/src/nvim/regexp_nfa.c
@@ -4639,8 +4639,7 @@ static int recursive_regmatch(nfa_state_T *state, nfa_pim_T *pim, nfa_regprog_T
}
if ((int)(reginput - regline) >= state->val) {
reginput -= state->val;
- if (has_mbyte)
- reginput -= utf_head_off(regline, reginput);
+ reginput -= utf_head_off(regline, reginput);
} else
reginput = regline;
}
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 9d92c9aa71..b79e8f4546 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -3430,7 +3430,7 @@ win_line (
// Found last space before word: check for line break.
if (wp->w_p_lbr && c0 == c && vim_isbreak(c)
&& !vim_isbreak((int)(*ptr))) {
- int mb_off = has_mbyte ? utf_head_off(line, ptr - 1) : 0;
+ int mb_off = utf_head_off(line, ptr - 1);
char_u *p = ptr - (mb_off + 1);
// TODO: is passing p for start of the line OK?
n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, NULL) - 1;
diff --git a/src/nvim/search.c b/src/nvim/search.c
index 10d7d3320d..8e2c23b006 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -818,8 +818,7 @@ int searchit(
}
} else {
--pos->col;
- if (has_mbyte
- && pos->lnum <= buf->b_ml.ml_line_count) {
+ if (pos->lnum <= buf->b_ml.ml_line_count) {
ptr = ml_get_buf(buf, pos->lnum, FALSE);
pos->col -= utf_head_off(ptr, ptr + pos->col);
}
@@ -1444,14 +1443,12 @@ int searchc(cmdarg_T *cap, int t_cmd)
if (t_cmd) {
/* backup to before the character (possibly double-byte) */
col -= dir;
- if (has_mbyte) {
- if (dir < 0)
- /* Landed on the search char which is lastc_bytelen long */
- col += lastc_bytelen - 1;
- else
- /* To previous char, which may be multi-byte. */
- col -= utf_head_off(p, p + col);
- }
+ if (dir < 0)
+ /* Landed on the search char which is lastc_bytelen long */
+ col += lastc_bytelen - 1;
+ else
+ /* To previous char, which may be multi-byte. */
+ col -= utf_head_off(p, p + col);
}
curwin->w_cursor.col = col;
@@ -1482,7 +1479,7 @@ pos_T *findmatch(oparg_T *oap, int initc)
static int check_prevcol(char_u *linep, int col, int ch, int *prevcol)
{
--col;
- if (col > 0 && has_mbyte)
+ if (col > 0)
col -= utf_head_off(linep, linep + col);
if (prevcol)
*prevcol = col;
@@ -1794,8 +1791,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
pos.col = comment_col;
} else {
--pos.col;
- if (has_mbyte)
- pos.col -= utf_head_off(linep, linep + pos.col);
+ pos.col -= utf_head_off(linep, linep + pos.col);
}
} else { /* forward search */
if (linep[pos.col] == NUL
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index 64d80d722a..7ee26da5fe 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -1729,9 +1729,7 @@ static int syn_current_attr(
if (vim_iswordp_buf(line + current_col, syn_buf)
&& (current_col == 0
|| !vim_iswordp_buf(line + current_col - 1
- - (has_mbyte
- ? utf_head_off(line, line + current_col - 1)
- : 0)
+ - utf_head_off(line, line + current_col - 1)
, syn_buf))) {
syn_id = check_keyword_id(line, (int)current_col,
&endcol, &flags, &next_list, cur_si,
diff --git a/src/nvim/window.c b/src/nvim/window.c
index fa963d790d..07953212c5 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -5130,7 +5130,7 @@ file_name_in_line (
* Go one char back to ":" before "//" even when ':' is not in 'isfname'.
*/
while (ptr > line) {
- if (has_mbyte && (len = (size_t)(utf_head_off(line, ptr - 1))) > 0)
+ if ((len = (size_t)(utf_head_off(line, ptr - 1))) > 0)
ptr -= len + 1;
else if (vim_isfilec(ptr[-1])
|| ((options & FNAME_HYP) && path_is_url((char *)ptr - 1)))