PyUnicode_WRITE, PyUnicode_READ, and PyUnicode_READ_CHAR all reuse their arguments, and there's a lot of occurrences (58 AFAICS) where they are called with the increment operator applied to the index argument. For example:
Objects/unicodeobject.c: PyUnicode_WRITE(kind, data, pos++, ch);
Modules/_io/textio.c: c = PyUnicode_READ(kind, in_str, i++);
Objects/stringlib/unicode_format.h: c = PyUnicode_READ_CHAR(self->str.str, self->index++);
Would a single PR for all three of them be acceptable, Victor?