updated for version 7.3.950
Problem: Python: Stack trace printer can't handle messages.
Solution: Make KeyErrors use PyErr_SetObject. (ZyX)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index b80a3e2..2850540 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -734,7 +734,7 @@
if (di == NULL)
{
- PyErr_SetString(PyExc_KeyError, _("no such key in dictionary"));
+ PyErr_SetObject(PyExc_KeyError, keyObject);
return NULL;
}
@@ -767,7 +767,7 @@
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 @@
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 @@
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 @@
return BufferNew(b);
else
{
- PyErr_SetString(PyExc_KeyError, _("no such buffer"));
+ PyErr_SetObject(PyExc_KeyError, keyObject);
return NULL;
}
}