From 003d14a26771bf7d2c05013cd2fd9d2622f373b9 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 21 Oct 2012 01:47:00 +0200 Subject: [PATCH] updated for version 7.3.698 Problem: Python 3 does not preserve state beween commands. Solution: Preserve the state. (Paul Ollis) --- src/if_python.c | 7 ++++--- src/if_python3.c | 6 +++++- src/version.c | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/if_python.c b/src/if_python.c index 2a53c93b0c..5e792b16d1 100644 --- 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 index ea59a4233b..e9f7400f80 100644 --- 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 index d10266df88..6613e50daa 100644 --- a/src/version.c +++ b/src/version.c @@ -719,6 +719,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 698, /**/ 697, /**/