Mercurial > vim
diff src/if_python3.c @ 4970:f5c822e5a0eb v7.3.1230
updated for version 7.3.1230
Problem: Python: Exception messages are not clear.
Solution: Make exception messages more verbose. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 23 Jun 2013 13:46:40 +0200 |
parents | b6e693e1f946 |
children | 537bbfff0c5c |
line wrap: on
line diff
--- a/src/if_python3.c +++ b/src/if_python3.c @@ -122,6 +122,7 @@ # define PyDict_SetItemString py3_PyDict_SetItemString # define PyErr_BadArgument py3_PyErr_BadArgument # define PyErr_Clear py3_PyErr_Clear +# define PyErr_Format py3_PyErr_Format # define PyErr_PrintEx py3_PyErr_PrintEx # define PyErr_NoMemory py3_PyErr_NoMemory # define PyErr_Occurred py3_PyErr_Occurred @@ -337,6 +338,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 PyObject* (*py3_PyErr_Format)(PyObject *, const char *, ...); static void (*py3_PyErr_PrintEx)(int); static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *); static iternextfunc py3__PyObject_NextNotImplemented; @@ -485,6 +487,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_Format", (PYTHON_PROC*)&py3_PyErr_Format}, {"PyErr_PrintEx", (PYTHON_PROC*)&py3_PyErr_PrintEx}, {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, @@ -1169,7 +1172,7 @@ BufferSubscript(PyObject *self, PyObject } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } @@ -1203,7 +1206,7 @@ BufferAsSubscript(PyObject *self, PyObje } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return -1; } } @@ -1285,7 +1288,7 @@ RangeSubscript(PyObject *self, PyObject* } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } @@ -1312,7 +1315,7 @@ RangeAsSubscript(PyObject *self, PyObjec } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return -1; } } @@ -1491,7 +1494,7 @@ ListSubscript(PyObject *self, PyObject* } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } @@ -1515,7 +1518,7 @@ ListAsSubscript(PyObject *self, PyObject } else { - PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); + RAISE_INVALID_INDEX_TYPE(idx); return -1; } }