Fix conversion to pango markup language when a rich text markup has spaces after the '<' character.

[GB.GTK]
* BUG: Fix conversion to pango markup language when a rich text markup has spaces after the '<' character.

[GB.GTK3]
* BUG: Fix conversion to pango markup language when a rich text markup has spaces after the '<' character.
This commit is contained in:
gambas 2020-12-17 04:03:40 +01:00
parent 82dc368486
commit c3e07f4a33

View file

@ -921,7 +921,9 @@ char *gt_html_to_pango_string(const char *html, int len_html, bool newline_are_b
GString *pango = g_string_new("");
const char *p, *p_end, *p_markup;
char c;
char *token, *markup, **attr;
const char *token;
const char *markup;
char **attr;
const char *pp;
gsize len;
bool start_token = false;
@ -933,6 +935,8 @@ char *gt_html_to_pango_string(const char *html, int len_html, bool newline_are_b
bool newline = true;
bool inside_par = false;
//fprintf(stderr, "gt_html_to_pango_string: %.*s\n", len_html, html);
p_end = &html[len_html < 0 ? strlen(html) : len_html];
p_markup = NULL;
@ -995,7 +999,19 @@ char *gt_html_to_pango_string(const char *html, int len_html, bool newline_are_b
markup = g_strndup(p_markup, len);
attr = g_strsplit(markup, " ", -1);
token = attr[0];
token = NULL;
for (pt = (const char **)attr; *pt; pt++)
{
if ((*pt)[0])
{
token = *pt;
break;
}
}
if (!token)
goto __FOUND_TOKEN;
for (pt = title; *pt; pt += 2)
{
@ -1131,7 +1147,7 @@ char *gt_html_to_pango_string(const char *html, int len_html, bool newline_are_b
__FOUND_TOKEN:
g_free(token);
g_strfreev(attr);
p_markup = NULL;
continue;
}
@ -1236,7 +1252,7 @@ char *gt_html_to_pango_string(const char *html, int len_html, bool newline_are_b
RETURN_STRING:
p = g_string_free(pango, false);
//fprintf(stderr, "pango: '%s'\n", p);
//fprintf(stderr, "==> '%s'\n", p);
return (char *)p;
}