From 8d71fde88896701be7c908195b6bd83f7bf6d93a Mon Sep 17 00:00:00 2001 From: smbaker Date: Mon, 13 Jun 2011 16:21:35 -0700 Subject: [PATCH] fix failed parsing of attributes with spaces in them in xml viewer --- sface/xmlwidget.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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 -- 2.43.0