forked from aniani/vim
patch 8.1.2179: pressing "q" at the more prompt doesn't stop Python output
Problem: Pressing "q" at the more prompt doesn't stop Python output. (Daniel Hahler) Solution: Check for got_int in writer(). (closes #5053) Also do this for Lua.
This commit is contained in:
parent
15ee567809
commit
b98678a974
@ -1612,6 +1612,7 @@ luaV_print(lua_State *L)
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
luaL_pushresult(&b);
|
||||
if (!got_int)
|
||||
luaV_msg(L);
|
||||
return 0;
|
||||
}
|
||||
|
@ -375,9 +375,13 @@ writer(writefn fn, char_u *str, PyInt n)
|
||||
PythonIO_Flush();
|
||||
old_fn = fn;
|
||||
|
||||
/* Write each NL separated line. Text after the last NL is kept for
|
||||
* writing later. */
|
||||
while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
|
||||
// Write each NL separated line. Text after the last NL is kept for
|
||||
// writing later.
|
||||
// For normal messages: Do not output when "got_int" was set. This avoids
|
||||
// a loop gone crazy flooding the terminal with messages. Also for when
|
||||
// "q" is pressed at the more-prompt.
|
||||
while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL
|
||||
&& (fn == (writefn)emsg || !got_int))
|
||||
{
|
||||
PyInt len = ptr - str;
|
||||
|
||||
@ -392,8 +396,9 @@ writer(writefn fn, char_u *str, PyInt n)
|
||||
io_ga.ga_len = 0;
|
||||
}
|
||||
|
||||
/* Put the remaining text into io_ga for later printing. */
|
||||
if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK)
|
||||
// Put the remaining text into io_ga for later printing.
|
||||
if (n > 0 && (fn == (writefn)emsg || !got_int)
|
||||
&& ga_grow(&io_ga, (int)(n + 1)) == OK)
|
||||
{
|
||||
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
|
||||
io_ga.ga_len += (int)n;
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2179,
|
||||
/**/
|
||||
2178,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user