.. versionadded:: 3.3
-.. c:function:: PyObject* PyUnicode_Copy(PyObject *unicode)
-
- Get a new copy of a Unicode object.
-
- .. versionadded:: 3.3
-
-
.. c:function:: PyObject* PyUnicode_FromKindAndData(int kind, const void *buffer, \
Py_ssize_t size)
* :c:macro:`PyUnicode_GET_DATA_SIZE`: use
``PyUnicode_GET_LENGTH(str) * PyUnicode_KIND(str)`` (only work on ready
strings)
- * :c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy`,
- :c:func:`PyUnicode_AsWideCharString` or :c:func:`PyUnicode_Copy`
+ * :c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or
+ :c:func:`PyUnicode_AsWideCharString`
Functions and macros manipulating Py_UNICODE* strings:
#endif
/* Get a copy of a Unicode string. */
-PyAPI_FUNC(PyObject*) PyUnicode_Copy(
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
PyObject *unicode
);
+#endif
/* Copy character from one unicode object into another, this function performs
character conversion when necessary and falls back to memcpy if possible.
}
else
/* Subtype -- return genuine unicode string with the same value. */
- return PyUnicode_Copy(unicode);
+ return _PyUnicode_Copy(unicode);
}
#ifdef HAVE_MBCS
}
PyObject*
-PyUnicode_Copy(PyObject *unicode)
+_PyUnicode_Copy(PyObject *unicode)
{
Py_ssize_t length;
PyObject *copy;
if (PyUnicode_Check(obj)) {
/* For a Unicode subtype that's not a Unicode object,
return a true Unicode object with the same data. */
- return PyUnicode_Copy(obj);
+ return _PyUnicode_Copy(obj);
}
PyErr_Format(PyExc_TypeError,
"Can't convert '%.100s' object to str implicitly",
goto onError; \
} while (0)
-PyObject *
+static PyObject *
decode_utf8_errors(const char *starts,
Py_ssize_t size,
const char *errors,
Py_UCS4 maxchar_old, maxchar_new = 0;
PyObject *v;
- u = PyUnicode_Copy(self);
+ u = _PyUnicode_Copy(self);
if (u == NULL)
return NULL;
maxchar_old = PyUnicode_MAX_CHAR_VALUE(u);
static PyObject *
unicode_getnewargs(PyObject *v)
{
- PyObject *copy = PyUnicode_Copy(v);
+ PyObject *copy = _PyUnicode_Copy(v);
if (!copy)
return NULL;
return Py_BuildValue("(N)", copy);