Mailing List Archive

CVS: python/dist/src/Lib string.py,1.61,1.62
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv19491

Modified Files:
string.py
Log Message:
[Bug #536241] string.zfill() produces mangled output for a Unicode string.
Walter Doerwald provided a patch, which I've modified in two ways:

1) (Uncontroversial) Removed code to make module work in earlier versions of
Python without the unicode() built-in

2) (Poss. controversial) Instead of making string.zfill take the repr()
of non-string objects, take the str().

Should a warning be added to this branch of the code so that the automatic
str() can be deprecated?

2.2.2 bugfix candidate, assuming the repr()->str() change is deemed OK.


Index: string.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/string.py,v
retrieving revision 1.61
retrieving revision 1.62
diff -C2 -d -r1.61 -r1.62
*** string.py 30 Jan 2002 16:15:13 -0000 1.61
--- string.py 29 Mar 2002 16:20:33 -0000 1.62
***************
*** 191,195 ****
_int = int
_long = long
! _StringType = type('')

# Convert string to float
--- 191,195 ----
_int = int
_long = long
! _StringTypes = (str, unicode)

# Convert string to float
***************
*** 277,288 ****

"""
! if type(x) == type(''): s = x
! else: s = `x`
! n = len(s)
! if n >= width: return s
sign = ''
! if s[0] in ('-', '+'):
! sign, s = s[0], s[1:]
! return sign + '0'*(width-n) + s

# Expand tabs in a string.
--- 277,288 ----

"""
! if not isinstance(x, _StringTypes):
! x = str(x)
! n = len(x)
! if n >= width: return x
sign = ''
! if x[0] in '-+':
! sign, x = x[0], x[1:]
! return sign + '0'*(width-n) + x

# Expand tabs in a string.