From 981624a8a94059fbfe2f635bf7dadc5a4f7a208e Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Thu, 21 Mar 2013 10:00:40 +0000
Subject: [PATCH 2/2] Add cmsGetHeaderCreator() to be able to dump the profile
 creator

Add an accessor to get the profile creator, as this lets us work out which CMM
is writing broken 'mluc' tags for certain V4 profiles.
---
 include/lcms2.h      | 1 +
 src/cmsio0.c         | 7 +++++++
 src/lcms2_internal.h | 1 +
 3 files changed, 9 insertions(+)

diff --git a/include/lcms2.h b/include/lcms2.h
index 388834e..f063956 100644
--- a/include/lcms2.h
+++ b/include/lcms2.h
@@ -1401,6 +1401,7 @@ CMSAPI cmsUInt32Number   CMSEXPORT cmsGetHeaderRenderingIntent(cmsHPROFILE hProf
 CMSAPI void              CMSEXPORT cmsSetHeaderFlags(cmsHPROFILE hProfile, cmsUInt32Number Flags);
 CMSAPI cmsUInt32Number   CMSEXPORT cmsGetHeaderManufacturer(cmsHPROFILE hProfile);
 CMSAPI void              CMSEXPORT cmsSetHeaderManufacturer(cmsHPROFILE hProfile, cmsUInt32Number manufacturer);
+CMSAPI cmsUInt32Number   CMSEXPORT cmsGetHeaderCreator(cmsHPROFILE hProfile);
 CMSAPI cmsUInt32Number   CMSEXPORT cmsGetHeaderModel(cmsHPROFILE hProfile);
 CMSAPI void              CMSEXPORT cmsSetHeaderModel(cmsHPROFILE hProfile, cmsUInt32Number model);
 CMSAPI void              CMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, cmsUInt64Number Flags);
diff --git a/src/cmsio0.c b/src/cmsio0.c
index b5c623e..79e10c2 100644
--- a/src/cmsio0.c
+++ b/src/cmsio0.c
@@ -613,6 +613,7 @@ cmsBool _cmsReadHeader(_cmsICCPROFILE* Icc)
     Icc -> DeviceClass     = (cmsProfileClassSignature) _cmsAdjustEndianess32(Header.deviceClass);
     Icc -> ColorSpace      = (cmsColorSpaceSignature)   _cmsAdjustEndianess32(Header.colorSpace);
     Icc -> PCS             = (cmsColorSpaceSignature)   _cmsAdjustEndianess32(Header.pcs);
+    Icc -> Creator         = (cmsColorSpaceSignature)   _cmsAdjustEndianess32(Header.creator);
     Icc -> RenderingIntent = _cmsAdjustEndianess32(Header.renderingIntent);
     Icc -> flags           = _cmsAdjustEndianess32(Header.flags);
     Icc -> manufacturer    = _cmsAdjustEndianess32(Header.manufacturer);
@@ -794,6 +795,12 @@ void CMSEXPORT cmsSetHeaderManufacturer(cmsHPROFILE hProfile, cmsUInt32Number ma
     Icc -> manufacturer = (cmsUInt32Number) manufacturer;
 }
 
+cmsUInt32Number CMSEXPORT cmsGetHeaderCreator(cmsHPROFILE hProfile)
+{
+    _cmsICCPROFILE*  Icc = (_cmsICCPROFILE*) hProfile;
+    return (cmsUInt32Number) Icc ->Creator;
+}
+
 cmsUInt32Number CMSEXPORT cmsGetHeaderModel(cmsHPROFILE hProfile)
 {
     _cmsICCPROFILE*  Icc = (_cmsICCPROFILE*) hProfile;
diff --git a/src/lcms2_internal.h b/src/lcms2_internal.h
index 0ed0206..6252350 100644
--- a/src/lcms2_internal.h
+++ b/src/lcms2_internal.h
@@ -301,6 +301,7 @@ typedef struct _cms_iccprofile_struct {
     cmsColorSpaceSignature   ColorSpace;
     cmsColorSpaceSignature   PCS;
     cmsUInt32Number          RenderingIntent;
+    cmsUInt32Number          Creator;
     cmsUInt32Number          flags;
     cmsUInt32Number          manufacturer, model;
     cmsUInt64Number          attributes;
-- 
1.8.1.4

