From 39c880731c36cffd8310ea536509313de9f5fbd6 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 14 Aug 2018 22:55:06 +0100 Subject: [PATCH] Give filename (where possible) when image file decoding fails. --- src/lib/magick_image_proxy.cc | 7 ++++++- src/lib/magick_image_proxy.h | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/magick_image_proxy.cc b/src/lib/magick_image_proxy.cc index b12a81db5..cd5749bb6 100644 --- a/src/lib/magick_image_proxy.cc +++ b/src/lib/magick_image_proxy.cc @@ -39,6 +39,7 @@ using boost::optional; using boost::dynamic_pointer_cast; MagickImageProxy::MagickImageProxy (boost::filesystem::path path) + : _path (path) { /* Read the file into a Blob */ @@ -101,7 +102,11 @@ MagickImageProxy::image (optional, optional) const /* If we failed both an auto-detect and a forced-Targa we give the error from the auto-detect. */ - throw DecodeError (String::compose (_("Could not decode image file (%1)"), error)); + if (_path) { + throw DecodeError (String::compose (_("Could not decode image file %1 (%2)"), _path->string(), error)); + } else { + throw DecodeError (String::compose (_("Could not decode image file (%1)"), error)); + } } unsigned char const * data = static_cast(_blob.data()); diff --git a/src/lib/magick_image_proxy.h b/src/lib/magick_image_proxy.h index 7d2b69afe..62f3afa2e 100644 --- a/src/lib/magick_image_proxy.h +++ b/src/lib/magick_image_proxy.h @@ -42,6 +42,10 @@ public: private: Magick::Blob _blob; + /** Path of a file that this image came from, if applicable; stored so that + failed-decode errors can give more detail. + */ + boost::optional _path; mutable boost::shared_ptr _image; mutable boost::mutex _mutex; }; -- 2.30.2