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

updated for version 7.3.825

Problem:    With Python errors are not always clear.
Solution:   Print the stack trace, unless :silent is used. (ZyX)
This commit is contained in:
Bram Moolenaar
2013-02-20 16:09:43 +01:00
parent 2142e5d851
commit 4d36987c25
3 changed files with 16 additions and 0 deletions

View File

@@ -122,6 +122,7 @@ static void init_structs(void);
# define PyDict_SetItemString py3_PyDict_SetItemString
# define PyErr_BadArgument py3_PyErr_BadArgument
# define PyErr_Clear py3_PyErr_Clear
# define PyErr_PrintEx py3_PyErr_PrintEx
# define PyErr_NoMemory py3_PyErr_NoMemory
# define PyErr_Occurred py3_PyErr_Occurred
# define PyErr_SetNone py3_PyErr_SetNone
@@ -279,6 +280,7 @@ static int (*py3_PyMem_Free)(void *);
static void* (*py3_PyMem_Malloc)(size_t);
static int (*py3_Py_IsInitialized)(void);
static void (*py3_PyErr_Clear)(void);
static void (*py3_PyErr_PrintEx)(int);
static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
static iternextfunc py3__PyObject_NextNotImplemented;
static PyObject* py3__Py_NoneStruct;
@@ -403,6 +405,7 @@ static struct
{"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct},
{"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct},
{"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
{"PyErr_PrintEx", (PYTHON_PROC*)&py3_PyErr_PrintEx},
{"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
{"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
{"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
@@ -842,7 +845,11 @@ DoPy3Command(exarg_T *eap, const char *cmd, typval_T *rettv)
r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input,
globals, globals);
if (r == NULL)
{
if (PyErr_Occurred() && !msg_silent)
PyErr_PrintEx(0);
EMSG(_("E860: Eval did not return a valid python 3 object"));
}
else
{
if (ConvertFromPyObject(r, rettv) == -1)