summaryrefslogtreecommitdiffstats
path: root/redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch')
-rw-r--r--redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch b/redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch
new file mode 100644
index 000000000..69dcadda7
--- /dev/null
+++ b/redhat/applications/digikam/digikam-3.5.13-gcc_47_fix.patch
@@ -0,0 +1,50 @@
+commit a94890345ef2caae35a72ed3a398b2984349bb2f
+Author: Darrell Anderson <humanreadable@yahoo.com>
+Date: 1335586728 -0500
+
+ GCC 4.7 fix.
+ This partially resolves bug report 958.
+ Thanks to David C. Rankin.
+
+diff --git a/digikam/libs/dimg/loaders/pngloader.cpp b/digikam/libs/dimg/loaders/pngloader.cpp
+index fd5d771..fa6dad9 100644
+--- a/digikam/libs/dimg/loaders/pngloader.cpp
++++ b/digikam/libs/dimg/loaders/pngloader.cpp
+@@ -57,6 +57,12 @@ extern "C"
+ namespace Digikam
+ {
+
++#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
++ typedef png_bytep iCCP_data;
++#else
++ typedef png_charp iCCP_data;
++#endif
++
+ PNGLoader::PNGLoader(DImg* image)
+ : DImgLoader(image)
+ {
+@@ -403,7 +409,12 @@ bool PNGLoader::load(const TQString& filePath, DImgLoaderObserver *observer)
+
+ TQMap<int, TQByteArray>& metaData = imageMetaData();
+
++#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
++ png_charp profile_name;
++ iCCP_data profile_data=NULL;
++#else
+ png_charp profile_name, profile_data=NULL;
++#endif
+ png_uint_32 profile_size;
+ int compression_type;
+
+@@ -599,7 +610,11 @@ bool PNGLoader::save(const TQString& filePath, DImgLoaderObserver *observer)
+
+ if (!profile_rawdata.isEmpty())
+ {
++#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
++ png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, (iCCP_data)profile_rawdata.data(), profile_rawdata.size());
++#else
+ png_set_iCCP(png_ptr, info_ptr, (png_charp)"icc", PNG_COMPRESSION_TYPE_BASE, profile_rawdata.data(), profile_rawdata.size());
++#endif
+ }
+
+ // -------------------------------------------------------------------