diff options
author | Benjamin Otte <otte@redhat.com> | 2015-10-06 04:17:03 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-10-13 02:56:48 +0200 |
commit | fc654ce62c57e653a7c6e9e85db199108fa0b1e1 (patch) | |
tree | b183c36f2c88e217fd63c4a23bd9ed7c2662eaa8 /tests | |
parent | e93a1b5e261f4211c7ea2666843abe54467cde05 (diff) | |
download | gdk-pixbuf-fc654ce62c57e653a7c6e9e85db199108fa0b1e1.tar.gz |
tests: Implement format_supported() differently
Instead of using
strstr (filename, modulename);
use
has_suffix (filenname, extension_supported_by_module);
That way, files can be named .jpg and .jpeg without things going wrong.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-common.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/tests/test-common.c b/tests/test-common.c index fef9d947c..0f4e4c01e 100644 --- a/tests/test-common.c +++ b/tests/test-common.c @@ -29,35 +29,29 @@ gboolean format_supported (const gchar *filename) { - const gchar *name = NULL; GSList *formats, *l; gboolean retval; - const gchar *names[] = { "png", "jpeg", "bmp", "gif", "ras", - "tga", "xpm", "xbm", "ico", "tiff" }; - gint i; - - for (i = 0; i < G_N_ELEMENTS (names); i++) - { - if (strstr (filename, names[i])) - { - name = names[i]; - break; - } - } - if (name == NULL) - return FALSE; retval = FALSE; formats = gdk_pixbuf_get_formats (); for (l = formats; l; l = l->next) { GdkPixbufFormat *format = l->data; + char **extensions = gdk_pixbuf_format_get_extensions (format); + gint i; - if (g_str_equal (gdk_pixbuf_format_get_name (format), name)) + for (i = 0; extensions[i]; i++) { - retval = TRUE; - break; + if (g_str_has_suffix (filename, extensions[i])) + { + retval = TRUE; + break; + } } + + g_free (extensions); + if (retval) + break; } g_slist_free (formats); |