0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

updated for version 7.4.084

Problem:    Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution:   Discard interrupt in VimTryEnd. (ZyX)
This commit is contained in:
Bram Moolenaar
2013-11-11 01:05:48 +01:00
parent a939e43440
commit d6b8a5253b
6 changed files with 81 additions and 2 deletions

View File

@@ -558,7 +558,11 @@ VimTryEnd(void)
/* Keyboard interrupt should be preferred over anything else */
if (got_int)
{
did_throw = got_int = FALSE;
if (current_exception != NULL)
discard_current_exception();
else
need_rethrow = did_throw = FALSE;
got_int = FALSE;
PyErr_SetNone(PyExc_KeyboardInterrupt);
return -1;
}
@@ -567,7 +571,10 @@ VimTryEnd(void)
/* Python exception is preferred over vim one; unlikely to occur though */
else if (PyErr_Occurred())
{
did_throw = FALSE;
if (current_exception != NULL)
discard_current_exception();
else
need_rethrow = did_throw = FALSE;
return -1;
}
/* Finally transform VimL exception to python one */