diff options
| author | Marc-André Lemburg <mal@egenix.com> | 2001-11-20 15:17:25 +0000 | 
|---|---|---|
| committer | Marc-André Lemburg <mal@egenix.com> | 2001-11-20 15:17:25 +0000 | 
| commit | 0c4d8d05a8b10c8c611eae0fbe70898050f12ad4 (patch) | |
| tree | 8f149a365548207fc279143d599306890f2f39c0 /Python/ceval.c | |
| parent | 4586d2c91c812910d0aae7dfdca75741aacd72b2 (diff) | |
| download | cpython-git-0c4d8d05a8b10c8c611eae0fbe70898050f12ad4.tar.gz | |
Fix for bug #480188: printing unicode objects
Diffstat (limited to 'Python/ceval.c')
| -rw-r--r-- | Python/ceval.c | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/Python/ceval.c b/Python/ceval.c index b707734349..21ee3dbb96 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -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); | 
