mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.1.0082: in terminal window, typing : at more prompt, inserts ':'
Problem: In terminal window, typing : at more prompt, inserts ':' instead of starting another Ex command. Solution: Add skip_term_loop and set it when putting ':' in the typeahead buffer.
This commit is contained in:
@@ -371,6 +371,11 @@ EXTERN int highlight_stltermnc[9]; /* On top of user */
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
// When TRUE skip calling terminal_loop() once. Used when
|
||||||
|
// typing ':' at the more prompt.
|
||||||
|
EXTERN int skip_term_loop INIT(= FALSE);
|
||||||
|
#endif
|
||||||
#ifdef FEAT_GUI
|
#ifdef FEAT_GUI
|
||||||
EXTERN char_u *use_gvimrc INIT(= NULL); /* "-U" cmdline argument */
|
EXTERN char_u *use_gvimrc INIT(= NULL); /* "-U" cmdline argument */
|
||||||
#endif
|
#endif
|
||||||
|
10
src/main.c
10
src/main.c
@@ -1339,7 +1339,8 @@ main_loop(
|
|||||||
#ifdef FEAT_TERMINAL
|
#ifdef FEAT_TERMINAL
|
||||||
if (term_use_loop()
|
if (term_use_loop()
|
||||||
&& oa.op_type == OP_NOP && oa.regname == NUL
|
&& oa.op_type == OP_NOP && oa.regname == NUL
|
||||||
&& !VIsual_active)
|
&& !VIsual_active
|
||||||
|
&& !skip_term_loop)
|
||||||
{
|
{
|
||||||
/* If terminal_loop() returns OK we got a key that is handled
|
/* If terminal_loop() returns OK we got a key that is handled
|
||||||
* in Normal model. With FAIL we first need to position the
|
* in Normal model. With FAIL we first need to position the
|
||||||
@@ -1348,8 +1349,13 @@ main_loop(
|
|||||||
normal_cmd(&oa, TRUE);
|
normal_cmd(&oa, TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
skip_term_loop = FALSE;
|
||||||
#endif
|
#endif
|
||||||
normal_cmd(&oa, TRUE);
|
normal_cmd(&oa, TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3320,7 +3326,7 @@ usage(void)
|
|||||||
main_msg(_("-dev <device>\t\tUse <device> for I/O"));
|
main_msg(_("-dev <device>\t\tUse <device> for I/O"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_ARABIC
|
#ifdef FEAT_ARABIC
|
||||||
main_msg(_("-A\t\t\tstart in Arabic mode"));
|
main_msg(_("-A\t\t\tStart in Arabic mode"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_RIGHTLEFT
|
#ifdef FEAT_RIGHTLEFT
|
||||||
main_msg(_("-H\t\t\tStart in Hebrew mode"));
|
main_msg(_("-H\t\t\tStart in Hebrew mode"));
|
||||||
|
@@ -1219,6 +1219,9 @@ wait_return(int redraw)
|
|||||||
cmdline_row = msg_row;
|
cmdline_row = msg_row;
|
||||||
skip_redraw = TRUE; /* skip redraw once */
|
skip_redraw = TRUE; /* skip redraw once */
|
||||||
do_redraw = FALSE;
|
do_redraw = FALSE;
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
skip_term_loop = TRUE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2827,6 +2830,9 @@ do_more_prompt(int typed_char)
|
|||||||
/* Since got_int is set all typeahead will be flushed, but we
|
/* Since got_int is set all typeahead will be flushed, but we
|
||||||
* want to keep this ':', remember that in a special way. */
|
* want to keep this ':', remember that in a special way. */
|
||||||
typeahead_noflush(':');
|
typeahead_noflush(':');
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
skip_term_loop = TRUE;
|
||||||
|
#endif
|
||||||
cmdline_row = Rows - 1; /* put ':' on this line */
|
cmdline_row = Rows - 1; /* put ':' on this line */
|
||||||
skip_redraw = TRUE; /* skip redraw once */
|
skip_redraw = TRUE; /* skip redraw once */
|
||||||
need_wait_return = FALSE; /* don't wait in main() */
|
need_wait_return = FALSE; /* don't wait in main() */
|
||||||
|
@@ -761,6 +761,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 */
|
||||||
|
/**/
|
||||||
|
82,
|
||||||
/**/
|
/**/
|
||||||
81,
|
81,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user