aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2010-03-15 23:21:22 +0100
committerSebastian Pipping <sebastian@pipping.org>2010-03-15 23:21:22 +0100
commitb3d326a19454ddd00b9f5fc8400f926123bd13db (patch)
tree3e2edfe1fa736ed66f149ca5c438013108d3b58b
parentExtend in-config docs on proxy (suggested by James Broadhead) (diff)
downloadlayman-b3d326a19454ddd00b9f5fc8400f926123bd13db.tar.gz
layman-b3d326a19454ddd00b9f5fc8400f926123bd13db.tar.bz2
layman-b3d326a19454ddd00b9f5fc8400f926123bd13db.zip
Fix handling of empty XML entities (bug #309617)
-rw-r--r--layman/overlays/overlay.py22
-rw-r--r--layman/version.py2
2 files changed, 15 insertions, 9 deletions
diff --git a/layman/overlays/overlay.py b/layman/overlays/overlay.py
index d2144f1..2333d72 100644
--- a/layman/overlays/overlay.py
+++ b/layman/overlays/overlay.py
@@ -100,9 +100,15 @@ class Overlay(object):
False
'''
+ def strip_text(node):
+ res = node.text
+ if res is None:
+ return ''
+ return res.strip()
+
_name = xml.find('name')
if _name != None:
- self.name = ensure_unicode(_name.text.strip())
+ self.name = ensure_unicode(strip_text(_name))
elif 'name' in xml.attrib:
self.name = ensure_unicode(xml.attrib['name'])
else:
@@ -127,7 +133,7 @@ class Overlay(object):
_class = OVERLAY_TYPES[_type]
except KeyError:
raise Exception('Unknown overlay type "%s"!' % _type)
- _location = ensure_unicode(source_elem.text.strip())
+ _location = ensure_unicode(strip_text(source_elem))
return _class(self, xml, config, _location, ignore, quiet)
self.sources = [create_overlay_source(e) for e in _sources]
@@ -139,10 +145,10 @@ class Overlay(object):
else:
_email = _owner.find('email')
if _owner != None and _email != None:
- self.owner_email = ensure_unicode(_email.text.strip())
+ self.owner_email = ensure_unicode(strip_text(_email))
_name = _owner.find('name')
if _name != None:
- self.owner_name = ensure_unicode(_name.text.strip())
+ self.owner_name = ensure_unicode(strip_text(_name))
else:
self.owner_name = None
elif 'contact' in xml.attrib:
@@ -161,7 +167,7 @@ class Overlay(object):
_desc = xml.find('description')
if _desc != None:
- d = WHITESPACE_REGEX.sub(' ', _desc.text.strip())
+ d = WHITESPACE_REGEX.sub(' ', strip_text(_desc))
self.description = ensure_unicode(d)
del d
else:
@@ -191,13 +197,13 @@ class Overlay(object):
h = xml.find('homepage')
l = xml.find('link')
if h != None:
- self.homepage = ensure_unicode(h.text.strip())
+ self.homepage = ensure_unicode(strip_text(h))
elif l != None:
- self.homepage = ensure_unicode(l.text.strip())
+ self.homepage = ensure_unicode(strip_text(l))
else:
self.homepage = None
- self.feeds = [ensure_unicode(e.text.strip()) for e in xml.findall('feed')]
+ self.feeds = [ensure_unicode(strip_text(e)) for e in xml.findall('feed')]
def __eq__(self, other):
diff --git a/layman/version.py b/layman/version.py
index c42c7f9..1cb47d4 100644
--- a/layman/version.py
+++ b/layman/version.py
@@ -20,7 +20,7 @@
__version__ = "$Id: version.py 309 2007-04-09 16:23:38Z wrobel $"
-VERSION = '1.3.2_p1'
+VERSION = '1.3.2_p2'
if __name__ == '__main__':
print VERSION