diff options
author | Richard Hughes <richard@hughsie.com> | 2014-05-23 15:23:10 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2014-05-23 15:25:01 +0100 |
commit | 7d066061c62374e133879171520c5a9422862e10 (patch) | |
tree | c9dc15c8eb9c2e7bd37072861b58e2956ade8a03 /libappstream-glib/as-app.c | |
parent | 517e0fb9dfd1fddd57ee62b9bb64efb0d29a0834 (diff) | |
download | appstream-glib-7d066061c62374e133879171520c5a9422862e10.tar.gz |
Retain comments in .desktop and .appdata.xml files when required
Diffstat (limited to 'libappstream-glib/as-app.c')
-rw-r--r-- | libappstream-glib/as-app.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c index ea6cd9a..6cd1c50 100644 --- a/libappstream-glib/as-app.c +++ b/libappstream-glib/as-app.c @@ -2598,6 +2598,7 @@ as_app_parse_desktop_file (AsApp *app, AsAppParseFlags flags, GError **error) { + GKeyFileFlags kf_flags = G_KEY_FILE_KEEP_TRANSLATIONS; GKeyFile *kf; gboolean ret; gchar *app_id = NULL; @@ -2607,9 +2608,9 @@ as_app_parse_desktop_file (AsApp *app, /* load file */ kf = g_key_file_new (); - ret = g_key_file_load_from_file (kf, desktop_file, - G_KEY_FILE_KEEP_TRANSLATIONS, - error); + if (flags & AS_APP_PARSE_FLAG_KEEP_COMMENTS) + kf_flags |= G_KEY_FILE_KEEP_COMMENTS; + ret = g_key_file_load_from_file (kf, desktop_file, kf_flags, error); if (!ret) goto out; @@ -2668,6 +2669,7 @@ as_app_parse_appdata_file (AsApp *app, GError **error) { AsAppPrivate *priv = GET_PRIVATE (app); + AsNodeFromXmlFlags from_xml_flags = AS_NODE_FROM_XML_FLAG_NONE; GNode *l; GNode *node; GNode *root = NULL; @@ -2695,8 +2697,10 @@ as_app_parse_appdata_file (AsApp *app, priv->problems |= AS_APP_PROBLEM_NO_COPYRIGHT_INFO; /* parse */ + if (flags & AS_APP_PARSE_FLAG_KEEP_COMMENTS) + from_xml_flags |= AS_NODE_FROM_XML_FLAG_KEEP_COMMENTS; root = as_node_from_xml (data, len, - AS_NODE_FROM_XML_FLAG_NONE, + from_xml_flags, error); if (root == NULL) { ret = FALSE; |