mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #8820 from janlazo/vim-8.0.0671
This commit is contained in:
commit
1593ee7cf2
102
src/nvim/edit.c
102
src/nvim/edit.c
@ -227,7 +227,7 @@ static int last_insert_skip; /* nr of chars in front of previous insert */
|
|||||||
static int new_insert_skip; /* nr of chars in front of current insert */
|
static int new_insert_skip; /* nr of chars in front of current insert */
|
||||||
static int did_restart_edit; /* "restart_edit" when calling edit() */
|
static int did_restart_edit; /* "restart_edit" when calling edit() */
|
||||||
|
|
||||||
static int can_cindent; /* may do cindenting on this line */
|
static bool can_cindent; // may do cindenting on this line
|
||||||
|
|
||||||
static int old_indent = 0; /* for ^^D command in insert mode */
|
static int old_indent = 0; /* for ^^D command in insert mode */
|
||||||
|
|
||||||
@ -4456,7 +4456,7 @@ static int ins_complete(int c, bool enable_pum)
|
|||||||
int save_w_wrow;
|
int save_w_wrow;
|
||||||
int save_w_leftcol;
|
int save_w_leftcol;
|
||||||
int insert_match;
|
int insert_match;
|
||||||
int save_did_ai = did_ai;
|
const bool save_did_ai = did_ai;
|
||||||
|
|
||||||
compl_direction = ins_compl_key2dir(c);
|
compl_direction = ins_compl_key2dir(c);
|
||||||
insert_match = ins_compl_use_match(c);
|
insert_match = ins_compl_use_match(c);
|
||||||
@ -4464,12 +4464,13 @@ static int ins_complete(int c, bool enable_pum)
|
|||||||
if (!compl_started) {
|
if (!compl_started) {
|
||||||
/* First time we hit ^N or ^P (in a row, I mean) */
|
/* First time we hit ^N or ^P (in a row, I mean) */
|
||||||
|
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
can_si = FALSE;
|
can_si = false;
|
||||||
can_si_back = FALSE;
|
can_si_back = false;
|
||||||
if (stop_arrow() == FAIL)
|
if (stop_arrow() == FAIL) {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
line = ml_get(curwin->w_cursor.lnum);
|
line = ml_get(curwin->w_cursor.lnum);
|
||||||
curs_col = curwin->w_cursor.col;
|
curs_col = curwin->w_cursor.col;
|
||||||
@ -5269,10 +5270,10 @@ insertchar (
|
|||||||
}
|
}
|
||||||
end_comment_pending = NUL;
|
end_comment_pending = NUL;
|
||||||
|
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
can_si = FALSE;
|
can_si = false;
|
||||||
can_si_back = FALSE;
|
can_si_back = false;
|
||||||
|
|
||||||
// If there's any pending input, grab up to INPUT_BUFLEN at once.
|
// If there's any pending input, grab up to INPUT_BUFLEN at once.
|
||||||
// This speeds up normal text input considerably.
|
// This speeds up normal text input considerably.
|
||||||
@ -5367,7 +5368,7 @@ internal_format (
|
|||||||
{
|
{
|
||||||
int cc;
|
int cc;
|
||||||
int save_char = NUL;
|
int save_char = NUL;
|
||||||
int haveto_redraw = FALSE;
|
bool haveto_redraw = false;
|
||||||
int fo_ins_blank = has_format_option(FO_INS_BLANK);
|
int fo_ins_blank = has_format_option(FO_INS_BLANK);
|
||||||
int fo_multibyte = has_format_option(FO_MBYTE_BREAK);
|
int fo_multibyte = has_format_option(FO_MBYTE_BREAK);
|
||||||
int fo_white_par = has_format_option(FO_WHITE_PAR);
|
int fo_white_par = has_format_option(FO_WHITE_PAR);
|
||||||
@ -5655,13 +5656,13 @@ internal_format (
|
|||||||
curwin->w_cursor.col = len;
|
curwin->w_cursor.col = len;
|
||||||
}
|
}
|
||||||
|
|
||||||
haveto_redraw = TRUE;
|
haveto_redraw = true;
|
||||||
can_cindent = TRUE;
|
can_cindent = true;
|
||||||
/* moved the cursor, don't autoindent or cindent now */
|
// moved the cursor, don't autoindent or cindent now
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
can_si = FALSE;
|
can_si = false;
|
||||||
can_si_back = FALSE;
|
can_si_back = false;
|
||||||
line_breakcheck();
|
line_breakcheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6080,10 +6081,10 @@ stop_insert (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
can_si = FALSE;
|
can_si = false;
|
||||||
can_si_back = FALSE;
|
can_si_back = false;
|
||||||
|
|
||||||
/* Set '[ and '] to the inserted text. When end_insert_pos is NULL we are
|
/* Set '[ and '] to the inserted text. When end_insert_pos is NULL we are
|
||||||
* now in a different buffer. */
|
* now in a different buffer. */
|
||||||
@ -7463,12 +7464,13 @@ static void ins_shift(int c, int lastc)
|
|||||||
} else
|
} else
|
||||||
change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0, TRUE);
|
change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0, TRUE);
|
||||||
|
|
||||||
if (did_ai && *skipwhite(get_cursor_line_ptr()) != NUL)
|
if (did_ai && *skipwhite(get_cursor_line_ptr()) != NUL) {
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
}
|
||||||
can_si = FALSE;
|
did_si = false;
|
||||||
can_si_back = FALSE;
|
can_si = false;
|
||||||
can_cindent = FALSE; /* no cindenting after ^D or ^T */
|
can_si_back = false;
|
||||||
|
can_cindent = false; // no cindenting after ^D or ^T
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ins_del(void)
|
static void ins_del(void)
|
||||||
@ -7488,10 +7490,10 @@ static void ins_del(void)
|
|||||||
} else if (del_char(false) == FAIL) { // delete char under cursor
|
} else if (del_char(false) == FAIL) { // delete char under cursor
|
||||||
vim_beep(BO_BS);
|
vim_beep(BO_BS);
|
||||||
}
|
}
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
can_si = FALSE;
|
can_si = false;
|
||||||
can_si_back = FALSE;
|
can_si_back = false;
|
||||||
AppendCharToRedobuff(K_DEL);
|
AppendCharToRedobuff(K_DEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7658,7 +7660,7 @@ static bool ins_bs(int c, int mode, int *inserted_space_p)
|
|||||||
State = oldState;
|
State = oldState;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
did_ai = FALSE;
|
did_ai = false;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Delete character(s) before the cursor.
|
* Delete character(s) before the cursor.
|
||||||
@ -7862,7 +7864,7 @@ static void ins_mouse(int c)
|
|||||||
curwin = new_curwin;
|
curwin = new_curwin;
|
||||||
curbuf = curwin->w_buffer;
|
curbuf = curwin->w_buffer;
|
||||||
}
|
}
|
||||||
can_cindent = TRUE;
|
can_cindent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* redraw status lines (in case another window became active) */
|
/* redraw status lines (in case another window became active) */
|
||||||
@ -7871,20 +7873,20 @@ static void ins_mouse(int c)
|
|||||||
|
|
||||||
static void ins_mousescroll(int dir)
|
static void ins_mousescroll(int dir)
|
||||||
{
|
{
|
||||||
pos_T tpos;
|
win_T *const old_curwin = curwin;
|
||||||
win_T *old_curwin = curwin;
|
bool did_scroll = false;
|
||||||
int did_scroll = FALSE;
|
pos_T tpos = curwin->w_cursor;
|
||||||
|
|
||||||
tpos = curwin->w_cursor;
|
|
||||||
|
|
||||||
if (mouse_row >= 0 && mouse_col >= 0) {
|
if (mouse_row >= 0 && mouse_col >= 0) {
|
||||||
int row, col;
|
int row = mouse_row;
|
||||||
|
int col = mouse_col;
|
||||||
|
|
||||||
row = mouse_row;
|
// find the window at the pointer coordinates
|
||||||
col = mouse_col;
|
win_T *const wp = mouse_find_win(&row, &col);
|
||||||
|
if (wp == NULL) {
|
||||||
/* find the window at the pointer coordinates */
|
return;
|
||||||
curwin = mouse_find_win(&row, &col);
|
}
|
||||||
|
curwin = wp;
|
||||||
curbuf = curwin->w_buffer;
|
curbuf = curwin->w_buffer;
|
||||||
}
|
}
|
||||||
if (curwin == old_curwin)
|
if (curwin == old_curwin)
|
||||||
@ -7903,7 +7905,7 @@ static void ins_mousescroll(int dir)
|
|||||||
} else {
|
} else {
|
||||||
mouse_scroll_horiz(dir);
|
mouse_scroll_horiz(dir);
|
||||||
}
|
}
|
||||||
did_scroll = TRUE;
|
did_scroll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
curwin->w_redr_status = TRUE;
|
curwin->w_redr_status = TRUE;
|
||||||
@ -7921,7 +7923,7 @@ static void ins_mousescroll(int dir)
|
|||||||
|
|
||||||
if (!equalpos(curwin->w_cursor, tpos)) {
|
if (!equalpos(curwin->w_cursor, tpos)) {
|
||||||
start_arrow(&tpos);
|
start_arrow(&tpos);
|
||||||
can_cindent = TRUE;
|
can_cindent = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8389,8 +8391,8 @@ static bool ins_eol(int c)
|
|||||||
has_format_option(FO_RET_COMS) ? OPENLINE_DO_COM : 0,
|
has_format_option(FO_RET_COMS) ? OPENLINE_DO_COM : 0,
|
||||||
old_indent);
|
old_indent);
|
||||||
old_indent = 0;
|
old_indent = 0;
|
||||||
can_cindent = TRUE;
|
can_cindent = true;
|
||||||
/* When inserting a line the cursor line must never be in a closed fold. */
|
// When inserting a line the cursor line must never be in a closed fold.
|
||||||
foldOpenCursor();
|
foldOpenCursor();
|
||||||
|
|
||||||
return !i;
|
return !i;
|
||||||
|
@ -9493,6 +9493,9 @@ static void f_getchar(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|||||||
/* Find the window at the mouse coordinates and compute the
|
/* Find the window at the mouse coordinates and compute the
|
||||||
* text position. */
|
* text position. */
|
||||||
win = mouse_find_win(&row, &col);
|
win = mouse_find_win(&row, &col);
|
||||||
|
if (win == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
(void)mouse_comp_pos(win, &row, &col, &lnum);
|
(void)mouse_comp_pos(win, &row, &col, &lnum);
|
||||||
for (wp = firstwin; wp != win; wp = wp->w_next)
|
for (wp = firstwin; wp != win; wp = wp->w_next)
|
||||||
++winnr;
|
++winnr;
|
||||||
|
@ -439,7 +439,10 @@ void flush_buffers(int flush_typeahead)
|
|||||||
;
|
;
|
||||||
typebuf.tb_off = MAXMAPLEN;
|
typebuf.tb_off = MAXMAPLEN;
|
||||||
typebuf.tb_len = 0;
|
typebuf.tb_len = 0;
|
||||||
} else { /* remove mapped characters at the start only */
|
// Reset the flag that text received from a client or from feedkeys()
|
||||||
|
// was inserted in the typeahead buffer.
|
||||||
|
typebuf_was_filled = false;
|
||||||
|
} else { // remove mapped characters at the start only
|
||||||
typebuf.tb_off += typebuf.tb_maplen;
|
typebuf.tb_off += typebuf.tb_maplen;
|
||||||
typebuf.tb_len -= typebuf.tb_maplen;
|
typebuf.tb_len -= typebuf.tb_maplen;
|
||||||
}
|
}
|
||||||
@ -1077,9 +1080,10 @@ void del_typebuf(int len, int offset)
|
|||||||
|
|
||||||
/* Reset the flag that text received from a client or from feedkeys()
|
/* Reset the flag that text received from a client or from feedkeys()
|
||||||
* was inserted in the typeahead buffer. */
|
* was inserted in the typeahead buffer. */
|
||||||
typebuf_was_filled = FALSE;
|
typebuf_was_filled = false;
|
||||||
if (++typebuf.tb_change_cnt == 0)
|
if (++typebuf.tb_change_cnt == 0) {
|
||||||
typebuf.tb_change_cnt = 1;
|
typebuf.tb_change_cnt = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -604,7 +604,7 @@ EXTERN pos_T where_paste_started;
|
|||||||
* reset when any other editing is done on the line. If an <ESC> or <RETURN>
|
* reset when any other editing is done on the line. If an <ESC> or <RETURN>
|
||||||
* is received, and did_ai is TRUE, the line is truncated.
|
* is received, and did_ai is TRUE, the line is truncated.
|
||||||
*/
|
*/
|
||||||
EXTERN int did_ai INIT(= FALSE);
|
EXTERN bool did_ai INIT(= false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Column of first char after autoindent. 0 when no autoindent done. Used
|
* Column of first char after autoindent. 0 when no autoindent done. Used
|
||||||
@ -632,19 +632,19 @@ EXTERN int did_syncbind INIT(= FALSE);
|
|||||||
* This flag is set when a smart indent has been performed. When the next typed
|
* This flag is set when a smart indent has been performed. When the next typed
|
||||||
* character is a '{' the inserted tab will be deleted again.
|
* character is a '{' the inserted tab will be deleted again.
|
||||||
*/
|
*/
|
||||||
EXTERN int did_si INIT(= FALSE);
|
EXTERN bool did_si INIT(= false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This flag is set after an auto indent. If the next typed character is a '}'
|
* This flag is set after an auto indent. If the next typed character is a '}'
|
||||||
* one indent will be removed.
|
* one indent will be removed.
|
||||||
*/
|
*/
|
||||||
EXTERN int can_si INIT(= FALSE);
|
EXTERN bool can_si INIT(= false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This flag is set after an "O" command. If the next typed character is a '{'
|
* This flag is set after an "O" command. If the next typed character is a '{'
|
||||||
* one indent will be removed.
|
* one indent will be removed.
|
||||||
*/
|
*/
|
||||||
EXTERN int can_si_back INIT(= FALSE);
|
EXTERN bool can_si_back INIT(= false);
|
||||||
|
|
||||||
// w_cursor before formatting text.
|
// w_cursor before formatting text.
|
||||||
EXTERN pos_T saved_cursor INIT(= INIT_POS_T(0, 0, 0));
|
EXTERN pos_T saved_cursor INIT(= INIT_POS_T(0, 0, 0));
|
||||||
@ -942,8 +942,8 @@ EXTERN int no_hlsearch INIT(= FALSE);
|
|||||||
EXTERN linenr_T printer_page_num;
|
EXTERN linenr_T printer_page_num;
|
||||||
|
|
||||||
|
|
||||||
EXTERN int typebuf_was_filled INIT(= FALSE); /* received text from client
|
EXTERN bool typebuf_was_filled INIT(= false); // received text from client
|
||||||
or from feedkeys() */
|
// or from feedkeys()
|
||||||
|
|
||||||
|
|
||||||
#ifdef BACKSLASH_IN_FILENAME
|
#ifdef BACKSLASH_IN_FILENAME
|
||||||
|
@ -165,8 +165,8 @@ open_line (
|
|||||||
*p_extra = NUL;
|
*p_extra = NUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
u_clearline(); /* cannot do "U" command when adding lines */
|
u_clearline(); // cannot do "U" command when adding lines
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
ai_col = 0;
|
ai_col = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -286,8 +286,8 @@ open_line (
|
|||||||
* checking for "if" and the like.
|
* checking for "if" and the like.
|
||||||
*/
|
*/
|
||||||
if (last_char == '{') {
|
if (last_char == '{') {
|
||||||
did_si = TRUE; /* do indent */
|
did_si = true; // do indent
|
||||||
no_si = TRUE; /* don't delete it when '{' typed */
|
no_si = true; // don't delete it when '{' typed
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Look for "if" and the like, use 'cinwords'.
|
* Look for "if" and the like, use 'cinwords'.
|
||||||
@ -296,7 +296,7 @@ open_line (
|
|||||||
*/
|
*/
|
||||||
else if (last_char != ';' && last_char != '}'
|
else if (last_char != ';' && last_char != '}'
|
||||||
&& cin_is_cinword(ptr))
|
&& cin_is_cinword(ptr))
|
||||||
did_si = TRUE;
|
did_si = true;
|
||||||
}
|
}
|
||||||
} else { // dir == BACKWARD
|
} else { // dir == BACKWARD
|
||||||
// Skip preprocessor directives, unless they are
|
// Skip preprocessor directives, unless they are
|
||||||
@ -320,17 +320,19 @@ open_line (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
p = skipwhite(ptr);
|
p = skipwhite(ptr);
|
||||||
if (*p == '}') /* if line starts with '}': do indent */
|
if (*p == '}') { // if line starts with '}': do indent
|
||||||
did_si = TRUE;
|
did_si = true;
|
||||||
else /* can delete indent when '{' typed */
|
} else { // can delete indent when '{' typed
|
||||||
can_si_back = TRUE;
|
can_si_back = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
curwin->w_cursor = old_cursor;
|
curwin->w_cursor = old_cursor;
|
||||||
}
|
}
|
||||||
if (do_si)
|
if (do_si) {
|
||||||
can_si = TRUE;
|
can_si = true;
|
||||||
|
}
|
||||||
|
|
||||||
did_ai = TRUE;
|
did_ai = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -665,7 +667,7 @@ open_line (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
did_si = can_si = FALSE;
|
did_si = can_si = false;
|
||||||
} else if (comment_end != NULL) {
|
} else if (comment_end != NULL) {
|
||||||
// We have finished a comment, so we don't use the leader.
|
// We have finished a comment, so we don't use the leader.
|
||||||
// If this was a C-comment and 'ai' or 'si' is set do a normal
|
// If this was a C-comment and 'ai' or 'si' is set do a normal
|
||||||
@ -708,8 +710,9 @@ open_line (
|
|||||||
++less_cols_off;
|
++less_cols_off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (*p_extra != NUL)
|
if (*p_extra != NUL) {
|
||||||
did_ai = FALSE; /* append some text, don't truncate now */
|
did_ai = false; // append some text, don't truncate now
|
||||||
|
}
|
||||||
|
|
||||||
/* columns for marks adjusted for removed columns */
|
/* columns for marks adjusted for removed columns */
|
||||||
less_cols = (int)(p_extra - saved_line);
|
less_cols = (int)(p_extra - saved_line);
|
||||||
@ -736,7 +739,7 @@ open_line (
|
|||||||
}
|
}
|
||||||
STRCAT(leader, p_extra);
|
STRCAT(leader, p_extra);
|
||||||
p_extra = leader;
|
p_extra = leader;
|
||||||
did_ai = TRUE; /* So truncating blanks works with comments */
|
did_ai = true; // So truncating blanks works with comments
|
||||||
less_cols -= lead_len;
|
less_cols -= lead_len;
|
||||||
} else
|
} else
|
||||||
end_comment_pending = NUL; /* turns out there was no leader */
|
end_comment_pending = NUL; /* turns out there was no leader */
|
||||||
@ -812,8 +815,9 @@ open_line (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
newcol += curwin->w_cursor.col;
|
newcol += curwin->w_cursor.col;
|
||||||
if (no_si)
|
if (no_si) {
|
||||||
did_si = FALSE;
|
did_si = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2479,7 +2483,7 @@ int prompt_for_number(int *mouse_used)
|
|||||||
save_cmdline_row = cmdline_row;
|
save_cmdline_row = cmdline_row;
|
||||||
cmdline_row = 0;
|
cmdline_row = 0;
|
||||||
save_State = State;
|
save_State = State;
|
||||||
State = CMDLINE;
|
State = ASKMORE; // prevents a screen update when using a timer
|
||||||
|
|
||||||
i = get_number(TRUE, mouse_used);
|
i = get_number(TRUE, mouse_used);
|
||||||
if (KeyTyped) {
|
if (KeyTyped) {
|
||||||
|
@ -125,6 +125,9 @@ retnomove:
|
|||||||
|
|
||||||
// find the window where the row is in
|
// find the window where the row is in
|
||||||
wp = mouse_find_win(&row, &col);
|
wp = mouse_find_win(&row, &col);
|
||||||
|
if (wp == NULL) {
|
||||||
|
return IN_UNKNOWN;
|
||||||
|
}
|
||||||
dragwin = NULL;
|
dragwin = NULL;
|
||||||
// winpos and height may change in win_enter()!
|
// winpos and height may change in win_enter()!
|
||||||
if (row >= wp->w_height) { // In (or below) status line
|
if (row >= wp->w_height) { // In (or below) status line
|
||||||
@ -427,6 +430,7 @@ bool mouse_comp_pos(win_T *win, int *rowp, int *colp, linenr_T *lnump)
|
|||||||
|
|
||||||
// Find the window at screen position "*rowp" and "*colp". The positions are
|
// Find the window at screen position "*rowp" and "*colp". The positions are
|
||||||
// updated to become relative to the top-left of the window.
|
// updated to become relative to the top-left of the window.
|
||||||
|
// Returns NULL when something is wrong.
|
||||||
win_T *mouse_find_win(int *rowp, int *colp)
|
win_T *mouse_find_win(int *rowp, int *colp)
|
||||||
{
|
{
|
||||||
frame_T *fp;
|
frame_T *fp;
|
||||||
@ -450,7 +454,14 @@ win_T *mouse_find_win(int *rowp, int *colp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fp->fr_win;
|
// When using a timer that closes a window the window might not actually
|
||||||
|
// exist.
|
||||||
|
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
|
||||||
|
if (wp == fp->fr_win) {
|
||||||
|
return wp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -3994,8 +3994,12 @@ static void nv_mousescroll(cmdarg_T *cap)
|
|||||||
row = mouse_row;
|
row = mouse_row;
|
||||||
col = mouse_col;
|
col = mouse_col;
|
||||||
|
|
||||||
/* find the window at the pointer coordinates */
|
// find the window at the pointer coordinates
|
||||||
curwin = mouse_find_win(&row, &col);
|
win_T *const wp = mouse_find_win(&row, &col);
|
||||||
|
if (wp == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
curwin = wp;
|
||||||
curbuf = curwin->w_buffer;
|
curbuf = curwin->w_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1473,9 +1473,9 @@ int op_delete(oparg_T *oap)
|
|||||||
}
|
}
|
||||||
if (u_save_cursor() == FAIL)
|
if (u_save_cursor() == FAIL)
|
||||||
return FAIL;
|
return FAIL;
|
||||||
if (curbuf->b_p_ai) { /* don't delete indent */
|
if (curbuf->b_p_ai) { // don't delete indent
|
||||||
beginline(BL_WHITE); /* cursor on first non-white */
|
beginline(BL_WHITE); // cursor on first non-white
|
||||||
did_ai = TRUE; /* delete the indent when ESC hit */
|
did_ai = true; // delete the indent when ESC hit
|
||||||
ai_col = curwin->w_cursor.col;
|
ai_col = curwin->w_cursor.col;
|
||||||
} else
|
} else
|
||||||
beginline(0); /* cursor in column 0 */
|
beginline(0); /* cursor in column 0 */
|
||||||
@ -2178,7 +2178,7 @@ int op_change(oparg_T *oap)
|
|||||||
if (!p_paste && curbuf->b_p_si
|
if (!p_paste && curbuf->b_p_si
|
||||||
&& !curbuf->b_p_cin
|
&& !curbuf->b_p_cin
|
||||||
)
|
)
|
||||||
can_si = TRUE; /* It's like opening a new line, do si */
|
can_si = true; // It's like opening a new line, do si
|
||||||
}
|
}
|
||||||
|
|
||||||
/* First delete the text in the region. In an empty buffer only need to
|
/* First delete the text in the region. In an empty buffer only need to
|
||||||
|
@ -243,6 +243,7 @@ let s:flaky = [
|
|||||||
\ 'Test_quoteplus()',
|
\ 'Test_quoteplus()',
|
||||||
\ 'Test_quotestar()',
|
\ 'Test_quotestar()',
|
||||||
\ 'Test_reltime()',
|
\ 'Test_reltime()',
|
||||||
|
\ 'Test_repeat_three()',
|
||||||
\ 'Test_terminal_composing_unicode()',
|
\ 'Test_terminal_composing_unicode()',
|
||||||
\ 'Test_terminal_redir_file()',
|
\ 'Test_terminal_redir_file()',
|
||||||
\ 'Test_terminal_tmap()',
|
\ 'Test_terminal_tmap()',
|
||||||
|
Loading…
Reference in New Issue
Block a user