1
0
forked from aniani/vim

updated for version 7.3.907

Problem:    Python uses IndexError when a dict key is not found.
Solution:   Use KeyError instead. (ZyX)
This commit is contained in:
Bram Moolenaar 2013-04-24 13:04:26 +02:00
parent 3f99152276
commit af6abb9d93
6 changed files with 13 additions and 3 deletions

View File

@ -861,7 +861,7 @@ DictionaryItem(PyObject *self, PyObject *keyObject)
if (di == NULL)
{
PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
PyErr_SetString(PyExc_KeyError, _("no such key in dictionary"));
return NULL;
}

View File

@ -348,12 +348,14 @@ static HINSTANCE hinstPython = 0; /* Instance of python.dll */
/* Imported exception objects */
static PyObject *imp_PyExc_AttributeError;
static PyObject *imp_PyExc_IndexError;
static PyObject *imp_PyExc_KeyError;
static PyObject *imp_PyExc_KeyboardInterrupt;
static PyObject *imp_PyExc_TypeError;
static PyObject *imp_PyExc_ValueError;
# define PyExc_AttributeError imp_PyExc_AttributeError
# define PyExc_IndexError imp_PyExc_IndexError
# define PyExc_KeyError imp_PyExc_KeyError
# define PyExc_KeyboardInterrupt imp_PyExc_KeyboardInterrupt
# define PyExc_TypeError imp_PyExc_TypeError
# define PyExc_ValueError imp_PyExc_ValueError
@ -579,11 +581,13 @@ get_exceptions(void)
PyObject *exdict = PyModule_GetDict(exmod);
imp_PyExc_AttributeError = PyDict_GetItemString(exdict, "AttributeError");
imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError");
imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError");
imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt");
imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError");
imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError");
Py_XINCREF(imp_PyExc_AttributeError);
Py_XINCREF(imp_PyExc_IndexError);
Py_XINCREF(imp_PyExc_KeyError);
Py_XINCREF(imp_PyExc_KeyboardInterrupt);
Py_XINCREF(imp_PyExc_TypeError);
Py_XINCREF(imp_PyExc_ValueError);

View File

@ -327,12 +327,14 @@ static HINSTANCE hinstPy3 = 0; /* Instance of python.dll */
/* Imported exception objects */
static PyObject *p3imp_PyExc_AttributeError;
static PyObject *p3imp_PyExc_IndexError;
static PyObject *p3imp_PyExc_KeyError;
static PyObject *p3imp_PyExc_KeyboardInterrupt;
static PyObject *p3imp_PyExc_TypeError;
static PyObject *p3imp_PyExc_ValueError;
# define PyExc_AttributeError p3imp_PyExc_AttributeError
# define PyExc_IndexError p3imp_PyExc_IndexError
# define PyExc_KeyError p3imp_PyExc_KeyError
# define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt
# define PyExc_TypeError p3imp_PyExc_TypeError
# define PyExc_ValueError p3imp_PyExc_ValueError
@ -567,11 +569,13 @@ get_py3_exceptions()
PyObject *exdict = PyModule_GetDict(exmod);
p3imp_PyExc_AttributeError = PyDict_GetItemString(exdict, "AttributeError");
p3imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError");
p3imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError");
p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt");
p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError");
p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError");
Py_XINCREF(p3imp_PyExc_AttributeError);
Py_XINCREF(p3imp_PyExc_IndexError);
Py_XINCREF(p3imp_PyExc_KeyError);
Py_XINCREF(p3imp_PyExc_KeyboardInterrupt);
Py_XINCREF(p3imp_PyExc_TypeError);
Py_XINCREF(p3imp_PyExc_ValueError);

View File

@ -38,7 +38,7 @@ Vim(put):E684:
Vim(python):E725:
Vim(python):E117:
[0.0, 0.0]
IndexError
KeyError
TypeError
TypeError
ValueError

View File

@ -38,7 +38,7 @@ Vim(put):E684:
Vim(py3):E725:
Vim(py3):E117:
[0.0, 0.0]
IndexError
KeyError
TypeError
TypeError
ValueError

View File

@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
907,
/**/
906,
/**/