Fix #1886 (ValueError: invalid literal for float(): size) and #1887

This commit is contained in:
Kovid Goyal 2009-02-24 22:49:10 -08:00
commit 6b4a26ef29
2 changed files with 9 additions and 2 deletions

View File

@ -276,8 +276,11 @@ class UnBinary(object):
state = 'get attr'
elif count > 0:
if not in_censorship:
self.buf.write(c.encode(
'ascii', 'xmlcharrefreplace'))
if c == '"':
c = '"'
elif c == '<':
c = '&lt;'
self.buf.write(c.encode('ascii', 'xmlcharrefreplace'))
count -= 1
if count == 0:
if not in_censorship:

View File

@ -37,6 +37,8 @@ class KeyMapper(object):
@staticmethod
def relate(size, base):
if size == 0:
return base
size = float(size)
base = float(base)
if abs(size - base) < 0.1: return 0
@ -48,6 +50,7 @@ class KeyMapper(object):
return result
def __getitem__(self, ssize):
ssize = asfloat(ssize, 0)
if ssize in self.cache:
return self.cache[ssize]
dsize = self.map(ssize)
@ -66,6 +69,7 @@ class ScaleMapper(object):
self.dscale = float(dbase) / float(sbase)
def __getitem__(self, ssize):
ssize = asfloat(ssize, 0)
dsize = ssize * self.dscale
return dsize