From: smbaker Date: Mon, 13 Jun 2011 23:21:35 +0000 (-0700) Subject: fix failed parsing of attributes with spaces in them in xml viewer X-Git-Tag: sface-0.1-15~4 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=8d71fde88896701be7c908195b6bd83f7bf6d93a fix failed parsing of attributes with spaces in them in xml viewer --- diff --git a/sface/xmlwidget.py b/sface/xmlwidget.py index a803868..be53182 100644 --- a/sface/xmlwidget.py +++ b/sface/xmlwidget.py @@ -1,4 +1,5 @@ import os +import shlex import sys from PyQt4.QtCore import * @@ -277,11 +278,21 @@ class ElemNodeDelegate(QAbstractItemDelegate): AttListHtml = '' if len(tmp) > 1: # many elems don't have atts... - attList = tmp[1].split() + # use shlex.split so we can handle quoted strings with spaces + # in them, like . Note that there are + # documented problems with shlex.split and unicode, so we + # convert any potential unicode to a string first. + attList = shlex.split(str(tmp[1])) for att in attList: - tmp = att.split('=') - attName = tmp[0] - attValue = tmp[1][1:-1] + tmp = att.split('=',1) + if len(tmp)>=2: + attName = tmp[0] + attValue = tmp[1] + else: + # this shouldn't happen, but if it does, pretend the + # attribute value is blank. + attName = tmp[0] + attValue = "" AttListHtml += (nonHighAttPattern % (attName, attValue)) html = (globPattern % (elemName, AttListHtml)) return html