diff options
-rw-r--r-- | libappstream-glib/as-app.c | 12 | ||||
-rw-r--r-- | libappstream-glib/as-app.h | 2 |
2 files changed, 10 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; diff --git a/libappstream-glib/as-app.h b/libappstream-glib/as-app.h index f4607d7..7de3dc7 100644 --- a/libappstream-glib/as-app.h +++ b/libappstream-glib/as-app.h @@ -68,12 +68,14 @@ struct _AsAppClass * AsAppParseFlags: * @AS_APP_PARSE_FLAG_NONE: No special actions to use * @AS_APP_PARSE_FLAG_USE_HEURISTICS: Use heuristic to infer properties + * @AS_APP_PARSE_FLAG_KEEP_COMMENTS: Save comments from the file * * The flags to use when parsing resources. **/ typedef enum { AS_APP_PARSE_FLAG_NONE, AS_APP_PARSE_FLAG_USE_HEURISTICS = 1, /* Since: 0.1.2 */ + AS_APP_PARSE_FLAG_KEEP_COMMENTS = 1, /* Since: 0.1.6 */ /*< private >*/ AS_APP_PARSE_FLAG_LAST, } AsAppParseFlags; |