diff options
Diffstat (limited to 'src/sdtui.c')
-rw-r--r-- | src/sdtui.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/sdtui.c b/src/sdtui.c index 5e00d7c..d64f1d1 100644 --- a/src/sdtui.c +++ b/src/sdtui.c @@ -348,23 +348,9 @@ view_entry_split_add_pango (ViewEntry *ve, const gchar *markup) static void view_entry_split_add_xdxf (ViewEntry *ve, const gchar *xml) { - // Trivially filter out all tags we can't quite handle, - // then parse the reduced XML as Pango markup--this seems to work well. - // Given the nature of our display, also skip keyword elements. - GString *filtered = g_string_new (""); - while (*xml) - { - // GMarkup can read some of the wilder XML constructs, Pango skips them - const gchar *p = NULL; - if (*xml != '<' || xml[1] == '!' || xml[1] == '?' - || g_ascii_isspace (xml[1]) || !*(p = xml + 1 + (xml[1] == '/')) - || (strchr ("biu", *p) && p[1] == '>') || !(p = strchr (p, '>'))) - g_string_append_c (filtered, *xml++); - else if (xml[1] != 'k' || xml[2] != '>' || !(xml = strstr (p, "</k>"))) - xml = ++p; - } - view_entry_split_add_pango (ve, filtered->str); - g_string_free (filtered, TRUE); + gchar *markup = xdxf_to_pango_markup_with_reduced_effort (xml); + view_entry_split_add_pango (ve, markup); + g_free (markup); } /// Decomposes a dictionary entry into the format we want. |