From patchwork Mon Sep 10 17:11:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel] hob: ensure error message text is properly escaped Date: Mon, 10 Sep 2012 17:11:17 -0000 From: Paul Eggleton X-Patchwork-Id: 36217 Message-Id: <1347297077-29053-1-git-send-email-paul.eggleton@linux.intel.com> To: bitbake-devel@lists.openembedded.org Our poor implementation of markup escaping was causing invalid markup, leading to the error dialog being blank. Use the glib markup escaping function provided by PyGTK+ to do this properly and avoid the blank error dialogs. Partial fix for [YOCTO #2983]. Signed-off-by: Paul Eggleton --- bitbake/lib/bb/ui/crumbs/builder.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 833577f..a203a06 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py @@ -21,6 +21,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +import glib import gtk import copy import os @@ -378,15 +379,6 @@ class Builder(gtk.Window): END_NOOP : None, } - @classmethod - def interpret_markup(cls, msg): - msg = msg.replace('&', '&') - msg = msg.replace('<', '<') - msg = msg.replace('>', '>') - msg = msg.replace('"', '"') - msg = msg.replace("'", "´") - return msg - def __init__(self, hobHandler, recipe_model, package_model): super(Builder, self).__init__() @@ -783,7 +775,7 @@ class Builder(gtk.Window): def show_error_dialog(self, msg): lbl = "Error\n" - lbl = lbl + "%s\n\n" % Builder.interpret_markup(msg) + lbl = lbl + "%s\n\n" % glib.markup_escape_text(msg) dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR) button = dialog.add_button("Close", gtk.RESPONSE_OK) HobButton.style_button(button) @@ -971,7 +963,7 @@ class Builder(gtk.Window): self.build_failed() def handler_no_provider_cb(self, running_build, msg): - dialog = CrumbsMessageDialog(self, Builder.interpret_markup(msg), gtk.STOCK_DIALOG_INFO) + dialog = CrumbsMessageDialog(self, glib.markup_escape_text(msg), gtk.STOCK_DIALOG_INFO) button = dialog.add_button("Close", gtk.RESPONSE_OK) HobButton.style_button(button) dialog.run()