# HG changeset patch # User Bram Moolenaar # Date 1350776820 -7200 # Node ID b5b892472ecb1a10cce1709e41700b264b6485d2 # Parent 9db3c3ee277e3295d655a816bdfe28f9aeda8409 updated for version 7.3.698 Problem: Python 3 does not preserve state beween commands. Solution: Preserve the state. (Paul Ollis) diff --git a/src/if_python.c b/src/if_python.c --- a/src/if_python.c +++ b/src/if_python.c @@ -740,9 +740,10 @@ Python_Init(void) #else PyMac_Initialize(); #endif - /* Initialise threads and save the state using PyGILState_Ensure. - * Without this call, thread-specific state (such as the system trace - * hook), will be lost between invocations of Python code. */ + /* Initialise threads, and save the state using PyGILState_Ensure. + * Without the call to PyGILState_Ensure, thread specific state (such + * as the system trace hook), will be lost between invocations of + * Python code. */ PyEval_InitThreads(); pygilstate = PyGILState_Ensure(); #ifdef DYNAMIC_PYTHON diff --git a/src/if_python3.c b/src/if_python3.c --- a/src/if_python3.c +++ b/src/if_python3.c @@ -731,8 +731,12 @@ Python3_Init(void) #else PyMac_Initialize(); #endif - /* initialise threads, must be after Py_Initialize() */ + /* Initialise threads, and save the state using PyGILState_Ensure. + * Without the call to PyGILState_Ensure, thread specific state (such + * as the system trace hook), will be lost between invocations of + * Python code. */ PyEval_InitThreads(); + pygilstate = PyGILState_Ensure(); #ifdef DYNAMIC_PYTHON3 get_py3_exceptions(); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -720,6 +720,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 698, +/**/ 697, /**/ 696,