#3479: unichr(2**32) used to return u'\x00'.
The argument was fetched in a long, but PyUnicode_FromOrdinal takes an int.
(why doesn't gcc issue a truncation warning in this case?)
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index e18eb2a..4a1ffd5 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -394,9 +394,9 @@
static PyObject *
builtin_unichr(PyObject *self, PyObject *args)
{
- long x;
+ int x;
- if (!PyArg_ParseTuple(args, "l:unichr", &x))
+ if (!PyArg_ParseTuple(args, "i:unichr", &x))
return NULL;
return PyUnicode_FromOrdinal(x);