X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgcontenttype.c;h=9586c31d9e288d8e2b713d2a0fdcc06372ddf2b6;hb=356a3987cee7ceddcb3fe623edf0bd2881895add;hp=0ac90cb7d712b81599c38df4956412646f174f53;hpb=cb588d45320c5a6b767d299ebd85306d45e1773c;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gcontenttype.c b/gio/gcontenttype.c index 0ac90cb..9586c31 100644 --- a/gio/gcontenttype.c +++ b/gio/gcontenttype.c @@ -382,7 +382,7 @@ g_content_type_get_description (const gchar *type) * * Gets the mime type for the content type, if one is registered. * - * Returns: (allow-none): the registered mime type for the given @type, + * Returns: (nullable): the registered mime type for the given @type, * or %NULL if unknown. */ char * @@ -393,9 +393,6 @@ g_content_type_get_mime_type (const char *type) return g_strdup (type); } -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-nonliteral" - static GIcon * g_content_type_get_icon_internal (const gchar *type, gboolean symbolic) @@ -403,52 +400,49 @@ g_content_type_get_icon_internal (const gchar *type, char *mimetype_icon; char *generic_mimetype_icon = NULL; char *q; - char *xdg_mimetype_icon = NULL; - char *xdg_mimetype_generic_icon; - char *icon_names[3]; + char *icon_names[6]; int n = 0; GIcon *themed_icon; const char *xdg_icon; - const char *suffix; + int i; g_return_val_if_fail (type != NULL, NULL); - if (symbolic) - suffix = "-symbolic"; - else - suffix = ""; - G_LOCK (gio_xdgmime); xdg_icon = xdg_mime_get_icon (type); G_UNLOCK (gio_xdgmime); - if (xdg_icon != NULL) - xdg_mimetype_icon = g_strconcat (xdg_icon, suffix, NULL); - if (xdg_mimetype_icon) - icon_names[n++] = xdg_mimetype_icon; + if (xdg_icon) + icon_names[n++] = g_strdup (xdg_icon); - mimetype_icon = g_strconcat (type, suffix, NULL); + mimetype_icon = g_strdup (type); while ((q = strchr (mimetype_icon, '/')) != NULL) *q = '-'; icon_names[n++] = mimetype_icon; - xdg_mimetype_generic_icon = g_content_type_get_generic_icon_name (type); - if (xdg_mimetype_generic_icon) - generic_mimetype_icon = g_strconcat (xdg_mimetype_generic_icon, suffix, NULL); + generic_mimetype_icon = g_content_type_get_generic_icon_name (type); if (generic_mimetype_icon) icon_names[n++] = generic_mimetype_icon; + if (symbolic) + { + for (i = 0; i < n; i++) + { + icon_names[n + i] = icon_names[i]; + icon_names[i] = g_strconcat (icon_names[i], "-symbolic", NULL); + } + + n += n; + } + themed_icon = g_themed_icon_new_from_names (icon_names, n); - g_free (xdg_mimetype_icon); - g_free (xdg_mimetype_generic_icon); - g_free (mimetype_icon); - g_free (generic_mimetype_icon); + for (i = 0; i < n; i++) + g_free (icon_names[i]); return themed_icon; } -#pragma GCC diagnostic pop /** * g_content_type_get_icon: @@ -575,8 +569,8 @@ looks_like_text (const guchar *data, gsize data_size) * * Tries to find a content type based on the mime type name. * - * Returns: (allow-none): Newly allocated string with content type - * or %NULL. Free with g_free() + * Returns: (nullable): Newly allocated string with content type or + * %NULL. Free with g_free() * * Since: 2.18 **/