Mercurial > vim
comparison src/if_python3.c @ 4145:6b1f3fc893cd v7.3.825
updated for version 7.3.825
Problem: With Python errors are not always clear.
Solution: Print the stack trace, unless :silent is used. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 20 Feb 2013 16:09:43 +0100 |
parents | 3b2a771abb39 |
children | 9f3da1dea7c0 |
comparison
equal
deleted
inserted
replaced
4144:d6c338c94253 | 4145:6b1f3fc893cd |
---|---|
120 # define PyMem_Free py3_PyMem_Free | 120 # define PyMem_Free py3_PyMem_Free |
121 # define PyMem_Malloc py3_PyMem_Malloc | 121 # define PyMem_Malloc py3_PyMem_Malloc |
122 # define PyDict_SetItemString py3_PyDict_SetItemString | 122 # define PyDict_SetItemString py3_PyDict_SetItemString |
123 # define PyErr_BadArgument py3_PyErr_BadArgument | 123 # define PyErr_BadArgument py3_PyErr_BadArgument |
124 # define PyErr_Clear py3_PyErr_Clear | 124 # define PyErr_Clear py3_PyErr_Clear |
125 # define PyErr_PrintEx py3_PyErr_PrintEx | |
125 # define PyErr_NoMemory py3_PyErr_NoMemory | 126 # define PyErr_NoMemory py3_PyErr_NoMemory |
126 # define PyErr_Occurred py3_PyErr_Occurred | 127 # define PyErr_Occurred py3_PyErr_Occurred |
127 # define PyErr_SetNone py3_PyErr_SetNone | 128 # define PyErr_SetNone py3_PyErr_SetNone |
128 # define PyErr_SetString py3_PyErr_SetString | 129 # define PyErr_SetString py3_PyErr_SetString |
129 # define PyEval_InitThreads py3_PyEval_InitThreads | 130 # define PyEval_InitThreads py3_PyEval_InitThreads |
277 static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...); | 278 static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...); |
278 static int (*py3_PyMem_Free)(void *); | 279 static int (*py3_PyMem_Free)(void *); |
279 static void* (*py3_PyMem_Malloc)(size_t); | 280 static void* (*py3_PyMem_Malloc)(size_t); |
280 static int (*py3_Py_IsInitialized)(void); | 281 static int (*py3_Py_IsInitialized)(void); |
281 static void (*py3_PyErr_Clear)(void); | 282 static void (*py3_PyErr_Clear)(void); |
283 static void (*py3_PyErr_PrintEx)(int); | |
282 static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *); | 284 static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *); |
283 static iternextfunc py3__PyObject_NextNotImplemented; | 285 static iternextfunc py3__PyObject_NextNotImplemented; |
284 static PyObject* py3__Py_NoneStruct; | 286 static PyObject* py3__Py_NoneStruct; |
285 static PyObject* py3__Py_FalseStruct; | 287 static PyObject* py3__Py_FalseStruct; |
286 static PyObject* py3__Py_TrueStruct; | 288 static PyObject* py3__Py_TrueStruct; |
401 {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&py3__PyObject_NextNotImplemented}, | 403 {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&py3__PyObject_NextNotImplemented}, |
402 {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct}, | 404 {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct}, |
403 {"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct}, | 405 {"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct}, |
404 {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, | 406 {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, |
405 {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, | 407 {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, |
408 {"PyErr_PrintEx", (PYTHON_PROC*)&py3_PyErr_PrintEx}, | |
406 {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, | 409 {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, |
407 {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, | 410 {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, |
408 {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, | 411 {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, |
409 # if PY_VERSION_HEX >= 0x030300f0 | 412 # if PY_VERSION_HEX >= 0x030300f0 |
410 {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8}, | 413 {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8}, |
840 PyObject *r; | 843 PyObject *r; |
841 | 844 |
842 r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input, | 845 r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input, |
843 globals, globals); | 846 globals, globals); |
844 if (r == NULL) | 847 if (r == NULL) |
848 { | |
849 if (PyErr_Occurred() && !msg_silent) | |
850 PyErr_PrintEx(0); | |
845 EMSG(_("E860: Eval did not return a valid python 3 object")); | 851 EMSG(_("E860: Eval did not return a valid python 3 object")); |
852 } | |
846 else | 853 else |
847 { | 854 { |
848 if (ConvertFromPyObject(r, rettv) == -1) | 855 if (ConvertFromPyObject(r, rettv) == -1) |
849 EMSG(_("E861: Failed to convert returned python 3 object to vim value")); | 856 EMSG(_("E861: Failed to convert returned python 3 object to vim value")); |
850 Py_DECREF(r); | 857 Py_DECREF(r); |