character conversion when necessary and falls back to memcpy if possible.
Fail if 'to' is smaller than how_many or smaller than len(from)-from_start,
- or if kind(from[from_start:from_start+how_many]) > kind(to).
+ or if kind(from[from_start:from_start+how_many]) > kind(to), or if to has
+ more than 1 reference.
Return the number of written character, or return -1 and raise an exception
on error.
how_many, to_start, PyUnicode_GET_LENGTH(to));
return -1;
}
+ if (how_many == 0)
+ return 0;
+
+ if (Py_REFCNT(to) != 1) {
+ PyErr_SetString(PyExc_ValueError,
+ "Cannot modify a string having more than 1 reference");
+ return -1;
+ }
from_kind = PyUnicode_KIND(from);
to_kind = PyUnicode_KIND(to);