Temporary solution for crashing when using both :py and :py3: disallow both in
one session.
diff --git a/src/if_python3.c b/src/if_python3.c
index 238f968..8958e0a 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -306,7 +306,7 @@
*/
static void end_dynamic_python3(void)
{
- if (hinstPy3)
+ if (hinstPy3 != 0)
{
close_dll(hinstPy3);
hinstPy3 = 0;
@@ -323,7 +323,17 @@
int i;
void *ucs_from_string, *ucs_from_string_and_size;
- if (hinstPy3)
+#if defined(UNIX) && defined(FEAT_PYTHON)
+ /* Can't have Python and Python3 loaded at the same time, it may cause a
+ * crash. */
+ if (python_loaded())
+ {
+ EMSG(_("E999: Python: Cannot use :py and :py3 in one session"));
+ return FAIL;
+ }
+#endif
+
+ if (hinstPy3 != 0)
return OK;
hinstPy3 = load_dll(libname);
@@ -506,6 +516,14 @@
--recurse;
}
+#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON)) || defined(PROTO)
+ int
+python3_loaded()
+{
+ return (hinstPy3 != 0);
+}
+#endif
+
static int Python3_Init(void)
{
if (!py3initialised)