diff options
author | 2010-03-15 23:21:22 +0100 | |
---|---|---|
committer | 2010-03-15 23:21:22 +0100 | |
commit | b3d326a19454ddd00b9f5fc8400f926123bd13db (patch) | |
tree | 3e2edfe1fa736ed66f149ca5c438013108d3b58b | |
parent | Extend in-config docs on proxy (suggested by James Broadhead) (diff) | |
download | layman-b3d326a19454ddd00b9f5fc8400f926123bd13db.tar.gz layman-b3d326a19454ddd00b9f5fc8400f926123bd13db.tar.bz2 layman-b3d326a19454ddd00b9f5fc8400f926123bd13db.zip |
Fix handling of empty XML entities (bug #309617)
-rw-r--r-- | layman/overlays/overlay.py | 22 | ||||
-rw-r--r-- | layman/version.py | 2 |
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 |