[Python-checkins] CVS: python/dist/src/Lib string.py,1.61,1.62

A.M. Kuchling akuchling@users.sourceforge.net
Fri, 29 Mar 2002 08:20:35 -0800


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.