diff --git a/tests/lcms_util.c b/tests/lcms_util.c index d6e05d64..4e304634 100644 --- a/tests/lcms_util.c +++ b/tests/lcms_util.c @@ -1,5 +1,6 @@ /* * Copyright 2022 Collabora, Ltd. + * Copyright (c) 1998-2022 Marti Maria Saguer * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the @@ -198,3 +199,33 @@ build_MPE_curve_stage(cmsContext context_id, enum transfer_fn fn) return stage; } + +/* This function is taken from LittleCMS, pardon the odd style */ +cmsBool +SetTextTags(cmsHPROFILE hProfile, const wchar_t* Description) +{ + cmsMLU *DescriptionMLU, *CopyrightMLU; + cmsBool rc = FALSE; + cmsContext ContextID = cmsGetProfileContextID(hProfile); + + DescriptionMLU = cmsMLUalloc(ContextID, 1); + CopyrightMLU = cmsMLUalloc(ContextID, 1); + + if (DescriptionMLU == NULL || CopyrightMLU == NULL) goto Error; + + if (!cmsMLUsetWide(DescriptionMLU, "en", "US", Description)) goto Error; + if (!cmsMLUsetWide(CopyrightMLU, "en", "US", L"No copyright, use freely")) goto Error; + + if (!cmsWriteTag(hProfile, cmsSigProfileDescriptionTag, DescriptionMLU)) goto Error; + if (!cmsWriteTag(hProfile, cmsSigCopyrightTag, CopyrightMLU)) goto Error; + + rc = TRUE; + +Error: + + if (DescriptionMLU) + cmsMLUfree(DescriptionMLU); + if (CopyrightMLU) + cmsMLUfree(CopyrightMLU); + return rc; +} diff --git a/tests/lcms_util.h b/tests/lcms_util.h index 278d56cd..8808b641 100644 --- a/tests/lcms_util.h +++ b/tests/lcms_util.h @@ -34,3 +34,6 @@ build_MPE_curve(cmsContext ctx, enum transfer_fn fn); cmsStage * build_MPE_curve_stage(cmsContext context_id, enum transfer_fn fn); + +cmsBool +SetTextTags(cmsHPROFILE hProfile, const wchar_t* Description);