From 39d8d2778d536cd5a7c2c3394d65dd16314b3338 Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Wed, 7 Oct 2020 20:25:33 -0500 Subject: [PATCH] pango: don't expand '&' when it is part of an HTML escape sequence --- i3pystatus/core/modules.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index 358ff8b..ab348c4 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -1,3 +1,4 @@ +import html import inspect import traceback @@ -260,14 +261,16 @@ class Module(SettingsBase): Can be called multiple times (`&` won't change to `&`). """ - def replace(s): - s = s.split("&") - out = s[0] - for i in range(len(s) - 1): - if s[i + 1].startswith("amp;"): - out += "&" + s[i + 1] + def replace(text): + components = text.split("&") + out = components[0] + for item in components[1:]: + if item.startswith("amp;") \ + or (not item.startswith("amp;") + and html.unescape(f'&{item}') != f'&{item}'): + out += "&" + item else: - out += "&" + s[i + 1] + out += "&" + item return out if "full_text" in self.output.keys():