From 3e3eacb5fc886008fe15fdf331bb606070411d1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lemburg?= Date: Wed, 9 Jan 2002 16:21:27 +0000 Subject: Fixed "u#" parser marker to pass through Unicode objects as-is without going through the buffer interface API. Added tests for this to the _testcapi module and updated docs. --- Python/getargs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Python') diff --git a/Python/getargs.c b/Python/getargs.c index 9df2a2e566..411c69543d 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -838,16 +838,20 @@ convertsimple(PyObject *arg, char **p_format, va_list *p_va, char *msgbuf, if (*format == '#') { /* any buffer-like object */ void **p = (void **)va_arg(*p_va, char **); int *q = va_arg(*p_va, int *); + if (PyUnicode_Check(arg)) { + *p = PyUnicode_AS_UNICODE(arg); + *q = PyUnicode_GET_SIZE(arg); + } + else { char *buf; int count = convertbuffer(arg, p, &buf); - if (count < 0) return converterr(buf, arg, msgbuf, bufsize); *q = count/(sizeof(Py_UNICODE)); + } format++; } else { Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **); - if (PyUnicode_Check(arg)) *p = PyUnicode_AS_UNICODE(arg); else -- cgit v1.2.1