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;
     }
 }