@@ -148,6 +148,7 @@ struct PyMethodDef { Py_ssize_t a; };
148148# define PyDict_SetItemString dll_PyDict_SetItemString
149149# define PyErr_BadArgument dll_PyErr_BadArgument
150150# define PyErr_Clear dll_PyErr_Clear
151+ # define PyErr_PrintEx dll_PyErr_PrintEx
151152# define PyErr_NoMemory dll_PyErr_NoMemory
152153# define PyErr_Occurred dll_PyErr_Occurred
153154# define PyErr_SetNone dll_PyErr_SetNone
@@ -251,6 +252,7 @@ static void* (*dll_PyMem_Malloc)(size_t);
251252static int (* dll_PyDict_SetItemString )(PyObject * dp , char * key , PyObject * item );
252253static int (* dll_PyErr_BadArgument )(void );
253254static void (* dll_PyErr_Clear )(void );
255+ static void (* dll_PyErr_PrintEx )(int );
254256static PyObject * (* dll_PyErr_NoMemory )(void );
255257static PyObject * (* dll_PyErr_Occurred )(void );
256258static void (* dll_PyErr_SetNone )(PyObject * );
@@ -380,6 +382,7 @@ static struct
380382 {"PyDict_SetItemString" , (PYTHON_PROC * )& dll_PyDict_SetItemString },
381383 {"PyErr_BadArgument" , (PYTHON_PROC * )& dll_PyErr_BadArgument },
382384 {"PyErr_Clear" , (PYTHON_PROC * )& dll_PyErr_Clear },
385+ {"PyErr_PrintEx" , (PYTHON_PROC * )& dll_PyErr_PrintEx },
383386 {"PyErr_NoMemory" , (PYTHON_PROC * )& dll_PyErr_NoMemory },
384387 {"PyErr_Occurred" , (PYTHON_PROC * )& dll_PyErr_Occurred },
385388 {"PyErr_SetNone" , (PYTHON_PROC * )& dll_PyErr_SetNone },
@@ -856,7 +859,11 @@ DoPythonCommand(exarg_T *eap, const char *cmd, typval_T *rettv)
856859
857860 r = PyRun_String ((char * )(cmd ), Py_eval_input , globals , globals );
858861 if (r == NULL )
862+ {
863+ if (PyErr_Occurred () && !msg_silent )
864+ PyErr_PrintEx (0 );
859865 EMSG (_ ("E858: Eval did not return a valid python object" ));
866+ }
860867 else
861868 {
862869 if (ConvertFromPyObject (r , rettv ) == -1 )
0 commit comments