diff options
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r-- | src/nvim/edit.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 1579f3ff98..fec8da2c3c 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -41,6 +41,7 @@ #include "nvim/option.h" #include "nvim/path.h" #include "nvim/popupmnu.h" +#include "nvim/plines.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/screen.h" @@ -467,7 +468,7 @@ static void insert_enter(InsertState *s) } if (!p_im && did_restart_edit == 0) { - change_warning(s->i == 0 ? 0 : s->i + 1); + change_warning(curbuf, s->i == 0 ? 0 : s->i + 1); } ui_cursor_shape(); // may show different cursor shape @@ -2453,7 +2454,7 @@ static int ins_compl_add(char_u *const str, int len, /// /// @param match completion match /// @param str character string to check -/// @param len lenth of "str" +/// @param len length of "str" static bool ins_compl_equal(compl_T *match, char_u *str, size_t len) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL { @@ -7187,7 +7188,7 @@ static void replace_do_bs(int limit_col) // Get the number of screen cells used by the character we are // going to delete. getvcol(curwin, &curwin->w_cursor, NULL, &start_vcol, NULL); - orig_vcols = chartabsize(get_cursor_pos_ptr(), start_vcol); + orig_vcols = win_chartabsize(curwin, get_cursor_pos_ptr(), start_vcol); } (void)del_char_after_col(limit_col); if (l_State & VREPLACE_FLAG) { @@ -7201,8 +7202,8 @@ static void replace_do_bs(int limit_col) p = get_cursor_pos_ptr(); ins_len = (int)STRLEN(p) - orig_len; vcol = start_vcol; - for (i = 0; i < ins_len; ++i) { - vcol += chartabsize(p + i, vcol); + for (i = 0; i < ins_len; i++) { + vcol += win_chartabsize(curwin, p + i, vcol); i += (*mb_ptr2len)(p) - 1; } vcol -= start_vcol; @@ -8024,7 +8025,7 @@ static void ins_bs_one(colnr_T *vcolp) /// Handle Backspace, delete-word and delete-line in Insert mode. /// -/// @param c charcter that was typed +/// @param c character that was typed /// @param mode backspace mode to use /// @param[in,out] inserted_space_p whether a space was the last // character inserted @@ -8047,7 +8048,7 @@ static bool ins_bs(int c, int mode, int *inserted_space_p) // can't backup past first character in buffer // can't backup past starting point unless 'backspace' > 1 // can backup to a previous line if 'backspace' == 0 - if (BUFEMPTY() + if (buf_is_empty(curbuf) || (!revins_on && ((curwin->w_cursor.lnum == 1 && curwin->w_cursor.col == 0) || (!can_bs(BS_START) @@ -8251,7 +8252,7 @@ static bool ins_bs(int c, int mode, int *inserted_space_p) ins_bs_one(&vcol); } } else { - // Delete upto starting point, start of line or previous word. + // Delete up to starting point, start of line or previous word. int prev_cclass = 0; int cclass = mb_get_class(get_cursor_pos_ptr()); |