Mercurial > vim
diff src/if_py_both.h @ 4403:d4816e7c3328 v7.3.950
updated for version 7.3.950
Problem: Python: Stack trace printer can't handle messages.
Solution: Make KeyErrors use PyErr_SetObject. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 15 May 2013 15:35:09 +0200 |
parents | cfd76908da25 |
children | 907b1f035ee7 |
line wrap: on
line diff
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -734,7 +734,7 @@ DictionaryItem(PyObject *self, PyObject if (di == NULL) { - PyErr_SetString(PyExc_KeyError, _("no such key in dictionary")); + PyErr_SetObject(PyExc_KeyError, keyObject); return NULL; } @@ -767,7 +767,7 @@ DictionaryAssItem(PyObject *self, PyObje if (di == NULL) { DICTKEY_UNREF - PyErr_SetString(PyExc_IndexError, _("no such key in dictionary")); + PyErr_SetObject(PyExc_KeyError, keyObject); return -1; } hi = hash_find(&d->dv_hashtab, di->di_key); @@ -1353,7 +1353,7 @@ OptionsItem(OptionsObject *this, PyObjec if (flags == 0) { - PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope"); + PyErr_SetObject(PyExc_KeyError, keyObject); return NULL; } @@ -1447,7 +1447,7 @@ OptionsAssItem(OptionsObject *this, PyOb if (flags == 0) { - PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope"); + PyErr_SetObject(PyExc_KeyError, keyObject); return -1; } @@ -3145,7 +3145,7 @@ BufMapItem(PyObject *self UNUSED, PyObje return BufferNew(b); else { - PyErr_SetString(PyExc_KeyError, _("no such buffer")); + PyErr_SetObject(PyExc_KeyError, keyObject); return NULL; } }