#ifdef out generation of \U escapes unless Py_UNICODE_WIDE. This
#caused warnings with the VMS C compiler. (SF bug #442998, in part.)
On a narrow system the current code should never be executed since ch
will always be < 0x10000.
Marc-Andre: you may end up fixing this a different way, since I
believe you have plans to generate \U for surrogate pairs. I'll leave
that to you.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 08e8089..a46df16 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1441,6 +1441,7 @@
*p++ = '\\';
*p++ = (char) ch;
}
+#ifdef Py_UNICODE_WIDE
/* Map 21-bit characters to '\U00xxxxxx' */
else if (ch >= 0x10000) {
*p++ = '\\';
@@ -1454,6 +1455,7 @@
*p++ = hexdigit[(ch >> 4) & 0xf];
*p++ = hexdigit[ch & 15];
}
+#endif
/* Map 16-bit characters to '\uxxxx' */
else if (ch >= 256) {
*p++ = '\\';