Mercurial > cpython-lru_cache-weakref
diff Python/getargs.c @ 52700:a73d7326311d
make 'c' only accept bytes and 'C' only unicode #5499
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Thu, 02 Apr 2009 00:33:55 +0000 |
| parents | ad7447a165bb |
| children | 7e978ca42930 |
line wrap: on
line diff
--- a/Python/getargs.c Thu Apr 02 00:24:00 2009 +0000 +++ b/Python/getargs.c Thu Apr 02 00:33:55 2009 +0000 @@ -776,24 +776,18 @@ char *p = va_arg(*p_va, char *); if (PyBytes_Check(arg) && PyBytes_Size(arg) == 1) *p = PyBytes_AS_STRING(arg)[0]; - else if (PyUnicode_Check(arg) && - PyUnicode_GET_SIZE(arg) == 1 && - PyUnicode_AS_UNICODE(arg)[0] < 256) - *p = (char)PyUnicode_AS_UNICODE(arg)[0]; else - return converterr("char < 256", arg, msgbuf, bufsize); + return converterr("a byte string of length 1", arg, msgbuf, bufsize); break; } case 'C': {/* unicode char */ int *p = va_arg(*p_va, int *); - if (PyBytes_Check(arg) && PyBytes_Size(arg) == 1) - *p = PyBytes_AS_STRING(arg)[0]; - else if (PyUnicode_Check(arg) && - PyUnicode_GET_SIZE(arg) == 1) + if (PyUnicode_Check(arg) && + PyUnicode_GET_SIZE(arg) == 1) *p = PyUnicode_AS_UNICODE(arg)[0]; else - return converterr("char", arg, msgbuf, bufsize); + return converterr("a unicode character", arg, msgbuf, bufsize); break; }
