forked from aniani/vim
patch 8.1.2191: when using modifyOtherKeys CTRL-X mode may not work
Problem: When using modifyOtherKeys CTRL-X mode may not work. Solution: Recognize a control character also in the form with a modifier.
This commit is contained in:
@@ -2142,6 +2142,24 @@ typedef enum {
|
|||||||
map_result_nomatch // no matching mapping, get char
|
map_result_nomatch // no matching mapping, get char
|
||||||
} map_result_T;
|
} map_result_T;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if the bytes at the start of the typeahead buffer are a character used
|
||||||
|
* in CTRL-X mode. This includes the form with a CTRL modifier.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
at_ctrl_x_key(void)
|
||||||
|
{
|
||||||
|
char_u *p = typebuf.tb_buf + typebuf.tb_off;
|
||||||
|
int c = *p;
|
||||||
|
|
||||||
|
if (typebuf.tb_len > 3
|
||||||
|
&& c == K_SPECIAL
|
||||||
|
&& p[1] == KS_MODIFIER
|
||||||
|
&& (p[2] & MOD_MASK_CTRL))
|
||||||
|
c = p[3] & 0x1f;
|
||||||
|
return vim_is_ctrl_x_key(c);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle mappings in the typeahead buffer.
|
* Handle mappings in the typeahead buffer.
|
||||||
* - When something was mapped, return map_result_retry for recursive mappings.
|
* - When something was mapped, return map_result_retry for recursive mappings.
|
||||||
@@ -2193,7 +2211,7 @@ handle_mapping(
|
|||||||
&& !(State == HITRETURN && (tb_c1 == CAR || tb_c1 == ' '))
|
&& !(State == HITRETURN && (tb_c1 == CAR || tb_c1 == ' '))
|
||||||
&& State != ASKMORE
|
&& State != ASKMORE
|
||||||
&& State != CONFIRM
|
&& State != CONFIRM
|
||||||
&& !((ctrl_x_mode_not_default() && vim_is_ctrl_x_key(tb_c1))
|
&& !((ctrl_x_mode_not_default() && at_ctrl_x_key())
|
||||||
|| ((compl_cont_status & CONT_LOCAL)
|
|| ((compl_cont_status & CONT_LOCAL)
|
||||||
&& (tb_c1 == Ctrl_N || tb_c1 == Ctrl_P))))
|
&& (tb_c1 == Ctrl_N || tb_c1 == Ctrl_P))))
|
||||||
{
|
{
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2191,
|
||||||
/**/
|
/**/
|
||||||
2190,
|
2190,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user