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:
@@ -343,6 +343,16 @@ python_runtime_link_init(char *libname, int verbose)
|
|||||||
{
|
{
|
||||||
int i;
|
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)
|
if (hinstPython)
|
||||||
return OK;
|
return OK;
|
||||||
hinstPython = load_dll(libname);
|
hinstPython = load_dll(libname);
|
||||||
@@ -519,6 +529,14 @@ python_end()
|
|||||||
--recurse;
|
--recurse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON3)) || defined(PROTO)
|
||||||
|
int
|
||||||
|
python_loaded()
|
||||||
|
{
|
||||||
|
return (hinstPython != 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
Python_Init(void)
|
Python_Init(void)
|
||||||
{
|
{
|
||||||
|
@@ -306,7 +306,7 @@ static struct
|
|||||||
*/
|
*/
|
||||||
static void end_dynamic_python3(void)
|
static void end_dynamic_python3(void)
|
||||||
{
|
{
|
||||||
if (hinstPy3)
|
if (hinstPy3 != 0)
|
||||||
{
|
{
|
||||||
close_dll(hinstPy3);
|
close_dll(hinstPy3);
|
||||||
hinstPy3 = 0;
|
hinstPy3 = 0;
|
||||||
@@ -323,7 +323,17 @@ static int py3_runtime_link_init(char *libname, int verbose)
|
|||||||
int i;
|
int i;
|
||||||
void *ucs_from_string, *ucs_from_string_and_size;
|
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;
|
return OK;
|
||||||
hinstPy3 = load_dll(libname);
|
hinstPy3 = load_dll(libname);
|
||||||
|
|
||||||
@@ -506,6 +516,14 @@ void python3_end()
|
|||||||
--recurse;
|
--recurse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON)) || defined(PROTO)
|
||||||
|
int
|
||||||
|
python3_loaded()
|
||||||
|
{
|
||||||
|
return (hinstPy3 != 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int Python3_Init(void)
|
static int Python3_Init(void)
|
||||||
{
|
{
|
||||||
if (!py3initialised)
|
if (!py3initialised)
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
/* if_python.c */
|
/* if_python.c */
|
||||||
int python_enabled __ARGS((int verbose));
|
int python_enabled __ARGS((int verbose));
|
||||||
void python_end __ARGS((void));
|
void python_end __ARGS((void));
|
||||||
|
int python_loaded __ARGS((void));
|
||||||
void ex_python __ARGS((exarg_T *eap));
|
void ex_python __ARGS((exarg_T *eap));
|
||||||
void ex_pyfile __ARGS((exarg_T *eap));
|
void ex_pyfile __ARGS((exarg_T *eap));
|
||||||
void python_buffer_free __ARGS((buf_T *buf));
|
void python_buffer_free __ARGS((buf_T *buf));
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
/* if_python3.c */
|
/* if_python3.c */
|
||||||
int python3_enabled __ARGS((int verbose));
|
int python3_enabled __ARGS((int verbose));
|
||||||
void python3_end __ARGS((void));
|
void python3_end __ARGS((void));
|
||||||
|
int python3_loaded __ARGS((void));
|
||||||
void ex_py3 __ARGS((exarg_T *eap));
|
void ex_py3 __ARGS((exarg_T *eap));
|
||||||
void ex_py3file __ARGS((exarg_T *eap));
|
void ex_py3file __ARGS((exarg_T *eap));
|
||||||
void python3_buffer_free __ARGS((buf_T *buf));
|
void python3_buffer_free __ARGS((buf_T *buf));
|
||||||
|
Reference in New Issue
Block a user