EHTMLEditorUtils - Correctly remove class when it is surrounded by spaces

Avoid the leftover spaces to remain in the class attribute.
This commit is contained in:
Tomas Popela
2016-06-29 13:41:14 +02:00
parent 6d72fb7fc9
commit c170dd43ff

View File

@ -253,8 +253,9 @@ void
element_remove_class (WebKitDOMElement *element,
const gchar* class)
{
gchar *element_class;
GString *result;
gchar *element_class, *final_class;
GRegex *regex;
gchar *pattern = NULL;
if (!WEBKIT_DOM_IS_ELEMENT (element))
return;
@ -264,19 +265,19 @@ element_remove_class (WebKitDOMElement *element,
element_class = webkit_dom_element_get_class_name (element);
if (g_strcmp0 (element_class, class) == 0) {
webkit_dom_element_remove_attribute (element, "class");
g_free (element_class);
return;
}
pattern = g_strconcat ("[\\s]*", class, "[\\s]*", NULL);
regex = g_regex_new (pattern, 0, 0, NULL);
final_class = g_regex_replace (regex, element_class, -1, 0, " ", 0, NULL);
result = e_str_replace_string (element_class, class, "");
if (result) {
webkit_dom_element_set_class_name (element, result->str);
g_string_free (result, TRUE);
}
if (g_strcmp0 (final_class, " ") != 0)
webkit_dom_element_set_class_name (element, final_class);
else
webkit_dom_element_remove_attribute (element, "class");
g_free (element_class);
g_free (final_class);
g_free (pattern);
g_regex_unref (regex);
}
void