diff --git a/src/gtk/export_bookmarks.c b/src/gtk/export_bookmarks.c index 635f4560f..18e02aa17 100644 --- a/src/gtk/export_bookmarks.c +++ b/src/gtk/export_bookmarks.c @@ -102,9 +102,19 @@ void gui_set_html_item(GString *str, } else scripture = g_strdup(""); - buf = g_strdup_printf("
  • %s
  • ", - description, - module, key, (scripture ? scripture : "")); + { + gchar *desc_esc = g_markup_escape_text(description, -1); + gchar *mod_esc = g_markup_escape_text(module, -1); + gchar *key_esc = g_markup_escape_text(key, -1); + + buf = g_strdup_printf("
  • %s
  • ", + desc_esc, + mod_esc, key_esc, (scripture ? scripture : "")); + + g_free(desc_esc); + g_free(mod_esc); + g_free(key_esc); + } g_string_append(str, buf); g_free(buf); @@ -152,11 +162,11 @@ static gboolean _save_verselist_2_xml(BK_EXPORT *data) xmlNodePtr cur_node = NULL; xmlDocPtr root_doc; //xmlAttrPtr root_attr; - gchar filename[256]; + gchar *filename; GString *name = g_string_new(NULL); GString *str = g_string_new(""); - sprintf(filename, "%s.xml", data->filename); + filename = g_strdup_printf("%s.xml", data->filename); root_doc = xmlNewDoc((const xmlChar *)"1.0"); @@ -191,12 +201,13 @@ static gboolean _save_verselist_2_xml(BK_EXPORT *data) xmlSaveFormatFile(filename, root_doc, 1); xmlFreeDoc(root_doc); + g_free(filename); return 1; } static gboolean _save_verselist_2_html(BK_EXPORT *data) { - gchar filename[256]; + gchar *filename = NULL; GString *name = g_string_new(NULL); GString *str = g_string_new(""); GString *des = g_string_new(""); @@ -209,11 +220,11 @@ static gboolean _save_verselist_2_html(BK_EXPORT *data) switch (data->type) { case HTML: catenate = gui_set_html_item; - sprintf(filename, "%s.html", data->filename); + filename = g_strdup_printf("%s.html", data->filename); break; case PLAIN: catenate = gui_set_plain_text_item; - sprintf(filename, "%s.txt", data->filename); + filename = g_strdup_printf("%s.txt", data->filename); break; } @@ -232,11 +243,14 @@ static gboolean _save_verselist_2_html(BK_EXPORT *data) g_string_printf(name, _("Verse List")); switch (data->type) { - case HTML: + case HTML: { + gchar *name_esc = g_markup_escape_text(name->str, -1); buf = g_strdup_printf("