else
{
for
(i
=
0
, o
=
1
; i < isize; i
+
+
) {
Py_UCS4 ch
=
PyUnicode_READ(ikind, idata, i);
/
*
Escape quotes
and
backslashes
*
/
if
((ch
=
=
quote) || (ch
=
=
'\\'
)) {
PyUnicode_WRITE(okind, odata, o
+
+
,
'\\'
);
PyUnicode_WRITE(okind, odata, o
+
+
, ch);
continue
;
}
/
*
Map
special whitespace to
'\t'
, \n
', '
\r'
*
/
if
(ch
=
=
'\t'
) {
PyUnicode_WRITE(okind, odata, o
+
+
,
'\\'
);
PyUnicode_WRITE(okind, odata, o
+
+
,
't'
);
}
else
if
(ch
=
=
'\n'
) {
PyUnicode_WRITE(okind, odata, o
+
+
,
'\\'
);
PyUnicode_WRITE(okind, odata, o
+
+
,
'n'
);
}
else
if
(ch
=
=
'\r'
) {
PyUnicode_WRITE(okind, odata, o
+
+
,
'\\'
);
PyUnicode_WRITE(okind, odata, o
+
+
,
'r'
);
}
/
*
Map
non
-
printable US ASCII to
'\xhh'
*
/
else
if
(ch <
' '
|| ch
=
=
0x7F
) {
PyUnicode_WRITE(okind, odata, o
+
+
,
'\\'
);
PyUnicode_WRITE(okind, odata, o
+
+
,
'x'
);
PyUnicode_WRITE(okind, odata, o
+
+
, Py_hexdigits[(ch >>
4
) &
0x000F
]);
PyUnicode_WRITE(okind, odata, o
+
+
, Py_hexdigits[ch &
0x000F
]);
}