diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2022-01-22 20:38:49 +0100 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2022-01-22 21:02:56 +0100 |
commit | 8877e171083c58ffe5af2cc5534f3ea11160a8da (patch) | |
tree | 776383baf416096392f0e8de4bec96c61e797007 | |
parent | 686d45553b861f8b42707049adf366a14abea4ab (diff) | |
download | fiv-8877e171083c58ffe5af2cc5534f3ea11160a8da.tar.gz fiv-8877e171083c58ffe5af2cc5534f3ea11160a8da.tar.xz fiv-8877e171083c58ffe5af2cc5534f3ea11160a8da.zip |
Default to gdk-pixbuf even for Wuffs formats
-rw-r--r-- | fiv-io.c | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -2517,21 +2517,25 @@ fiv_io_open_from_data(const char *data, size_t len, const gchar *uri, g_clear_error(error); } #endif // HAVE_LIBTIFF -------------------------------------------------------- -#ifdef HAVE_GDKPIXBUF // ------------------------------------------------------ - // This is only used as a last resort, the rest above is special-cased. - if ((surface = open_gdkpixbuf(data, len, profile, error))) - break; - if (error && (*error)->code != GDK_PIXBUF_ERROR_UNKNOWN_TYPE) - break; - if (error) { - g_debug("%s", (*error)->message); + set_error(error, "unsupported file type"); + } + +#ifdef HAVE_GDKPIXBUF // ------------------------------------------------------ + // This is used as a last resort, the rest above is special-cased. + // Wuffs #71 and similar concerns make us default to it in all cases. + if (!surface) { + GError *err = NULL; + if ((surface = open_gdkpixbuf(data, len, profile, &err))) { + g_clear_error(error); + } else if (err->code == GDK_PIXBUF_ERROR_UNKNOWN_TYPE) { + g_error_free(err); + } else { g_clear_error(error); + g_propagate_error(error, err); } -#endif // HAVE_GDKPIXBUF ------------------------------------------------------ - - set_error(error, "unsupported file type"); } +#endif // HAVE_GDKPIXBUF ------------------------------------------------------ // gdk-pixbuf only gives out this single field--cater to its limitations, // since we'd really like to have it. |