Commit d90d5a5a authored by Marc-André Lemburg's avatar Marc-André Lemburg

Fix for bug #480188: printing unicode objects

parent 57e9cbe0
......@@ -6,3 +6,16 @@ Testing builtin unicode()... done.
Testing builtin codecs... done.
Testing standard mapping codecs... 0-127... 128-255... done.
Testing Unicode string concatenation... done.
Testing Unicode printing... abc
abc def
abc def
abc def
abc
abc
abc
def
def
done.
......@@ -644,3 +644,16 @@ verify((u"abc" "def") == u"abcdef")
verify((u"abc" u"def" "ghi") == u"abcdefghi")
verify(("abc" "def" u"ghi") == u"abcdefghi")
print 'done.'
print 'Testing Unicode printing...',
print u'abc'
print u'abc', u'def'
print u'abc', 'def'
print 'abc', u'def'
print u'abc\n'
print u'abc\n',
print u'abc\n',
print u'def\n'
print u'def\n'
print 'done.'
......@@ -1349,14 +1349,24 @@ eval_frame(PyFrameObject *f)
err = PyFile_WriteString(" ", w);
if (err == 0)
err = PyFile_WriteObject(v, w, Py_PRINT_RAW);
if (err == 0 && PyString_Check(v)) {
if (err == 0) {
/* XXX move into writeobject() ? */
char *s = PyString_AsString(v);
int len = PyString_Size(v);
if (PyString_Check(v)) {
char *s = PyString_AS_STRING(v);
int len = PyString_GET_SIZE(v);
if (len > 0 &&
isspace(Py_CHARMASK(s[len-1])) &&
s[len-1] != ' ')
PyFile_SoftSpace(w, 0);
}
else if (PyUnicode_Check(v)) {
Py_UNICODE *s = PyUnicode_AS_UNICODE(v);
int len = PyUnicode_GET_SIZE(v);
if (len > 0 &&
Py_UNICODE_ISSPACE(s[len-1]) &&
s[len-1] != ' ')
PyFile_SoftSpace(w, 0);
}
}
Py_DECREF(v);
Py_XDECREF(stream);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment