summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-07-04 21:26:43 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-07-04 21:26:43 (GMT)
commita4db68622c585e1bb526ef89f5d5ccf602906110 (patch)
tree3c2f15bbc29fec0bd7d127d7e6e540fc626d6665 /Python
parent142957ce952c067414df3503431ab36a91c9c40c (diff)
downloadcpython-a4db68622c585e1bb526ef89f5d5ccf602906110.zip
cpython-a4db68622c585e1bb526ef89f5d5ccf602906110.tar.gz
cpython-a4db68622c585e1bb526ef89f5d5ccf602906110.tar.bz2
Issue #3280: like chr() already does, the "%c" format now accepts the full unicode range
even on "narrow Unicode" builds; the result is a pair of UTF-16 surrogates.
Diffstat (limited to 'Python')
-rw-r--r--Python/modsupport.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/Python/modsupport.c b/Python/modsupport.c
index b88c1ed..e39c315 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -294,21 +294,12 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
case 'C':
{
int i = va_arg(*p_va, int);
- Py_UNICODE c;
if (i < 0 || i > PyUnicode_GetMax()) {
-#ifdef Py_UNICODE_WIDE
PyErr_SetString(PyExc_OverflowError,
- "%c arg not in range(0x110000) "
- "(wide Python build)");
-#else
- PyErr_SetString(PyExc_OverflowError,
- "%c arg not in range(0x10000) "
- "(narrow Python build)");
-#endif
+ "%c arg not in range(0x110000)";
return NULL;
}
- c = i;
- return PyUnicode_FromUnicode(&c, 1);
+ return PyUnicode_FromOrdinal(i);
}
case 's':