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

Temporary solution for crashing when using both :py and :py3: disallow both in

one session.
This commit is contained in:
Bram Moolenaar
2010-07-24 15:42:14 +02:00
parent 2a7e2a6254
commit 4c3a326c53
4 changed files with 40 additions and 2 deletions

View File

@@ -343,6 +343,16 @@ python_runtime_link_init(char *libname, int verbose)
{
int i;
#if defined(UNIX) && defined(FEAT_PYTHON3)
/* Can't have Python and Python3 loaded at the same time, it may cause a
* crash. */
if (python3_loaded())
{
EMSG(_("E999: Python: Cannot use :py and :py3 in one session"));
return FAIL;
}
#endif
if (hinstPython)
return OK;
hinstPython = load_dll(libname);
@@ -519,6 +529,14 @@ python_end()
--recurse;
}
#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON3)) || defined(PROTO)
int
python_loaded()
{
return (hinstPython != 0);
}
#endif
static int
Python_Init(void)
{

View File

@@ -306,7 +306,7 @@ static struct
*/
static void end_dynamic_python3(void)
{
if (hinstPy3)
if (hinstPy3 != 0)
{
close_dll(hinstPy3);
hinstPy3 = 0;
@@ -323,7 +323,17 @@ static int py3_runtime_link_init(char *libname, int verbose)
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 @@ void python3_end()
--recurse;
}
#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON)) || defined(PROTO)
int
python3_loaded()
{
return (hinstPy3 != 0);
}
#endif
static int Python3_Init(void)
{
if (!py3initialised)

View File

@@ -1,6 +1,7 @@
/* if_python.c */
int python_enabled __ARGS((int verbose));
void python_end __ARGS((void));
int python_loaded __ARGS((void));
void ex_python __ARGS((exarg_T *eap));
void ex_pyfile __ARGS((exarg_T *eap));
void python_buffer_free __ARGS((buf_T *buf));

View File

@@ -1,6 +1,7 @@
/* if_python3.c */
int python3_enabled __ARGS((int verbose));
void python3_end __ARGS((void));
int python3_loaded __ARGS((void));
void ex_py3 __ARGS((exarg_T *eap));
void ex_py3file __ARGS((exarg_T *eap));
void python3_buffer_free __ARGS((buf_T *buf));