Fix a subtle bug in PyString_Repr().
The smartquote code was deciding whether to use ' or "
by inspecting the *output* area...
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index dcecd6f..b5abdb6 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -854,8 +854,9 @@
/* figure out which quote to use; single is preferred */
quote = '\'';
if (smartquotes) {
- Py_UNICODE *test;
- for (test = p; test < p+length; ++test) {
+ char *test, *start;
+ start = PyString_AS_STRING(op);
+ for (test = start; test < start+length; ++test) {
if (*test == '"') {
quote = '\''; /* switch back to single quote */
goto decided;