mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
SF bug 480215: softspace confused in nested print
This fixes the symptom, but PRINT_ITEM has no way to know what (if anything) PyFile_WriteObject() writes unless the object being printed is a string. When the object isn't a string, this fix retains the guess that softspace should be set after PyFile_WriteObject(). We might want to say that it's the job of filelike-object write methods to leave the file's softspace in the correct state. That would probably be better -- but everyone relies on PRINT_ITEM to guess for them now.
This commit is contained in:
parent
f3f87f743e
commit
8e5fd53be0
2 changed files with 26 additions and 10 deletions
14
Lib/test/test_softspace.py
Normal file
14
Lib/test/test_softspace.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
import test_support
|
||||
import StringIO
|
||||
|
||||
# SF bug 480215: softspace confused in nested print
|
||||
f = StringIO.StringIO()
|
||||
class C:
|
||||
def __str__(self):
|
||||
print >> f, 'a'
|
||||
return 'b'
|
||||
|
||||
print >> f, C(), 'c ', 'd\t', 'e'
|
||||
print >> f, 'f', 'g'
|
||||
# In 2.2 & earlier, this printed ' a\nbc d\te\nf g\n'
|
||||
test_support.vereq(f.getvalue(), 'a\nb c d\te\nf g\n')
|
Loading…
Add table
Add a link
Reference in a new issue