opnsense-ports/graphics/lcms2/files/patch-src-cmsnamed.c
Franco Fichtner 44b069304b */*: sync with upstream
Taken from: FreeBSD
2015-11-30 06:57:46 +01:00

116 lines
4 KiB
C

--- src/cmsnamed.c.orig 2015-03-17 11:19:51 UTC
+++ src/cmsnamed.c
@@ -185,8 +185,19 @@ cmsBool CMSEXPORT cmsMLUsetASCII(cmsMLU*
cmsUInt32Number i, len = (cmsUInt32Number) strlen(ASCIIString)+1;
wchar_t* WStr;
cmsBool rc;
- cmsUInt16Number Lang = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
- cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
+ union {
+ cmsUInt16Number uint16;
+ char str[2];
+ } code_convert;
+ cmsUInt16Number Lang;
+ cmsUInt16Number Cntry;
+
+ code_convert.str[0] = LanguageCode[0];
+ code_convert.str[1] = LanguageCode[1];
+ Lang = _cmsAdjustEndianess16(code_convert.uint16);
+ code_convert.str[0] = CountryCode[0];
+ code_convert.str[1] = CountryCode[1];
+ Cntry = _cmsAdjustEndianess16(code_convert.uint16);
if (mlu == NULL) return FALSE;
@@ -220,10 +231,22 @@ cmsUInt32Number mywcslen(const wchar_t *
// Add a wide entry
cmsBool CMSEXPORT cmsMLUsetWide(cmsMLU* mlu, const char Language[3], const char Country[3], const wchar_t* WideString)
{
- cmsUInt16Number Lang = _cmsAdjustEndianess16(*(cmsUInt16Number*) Language);
- cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) Country);
cmsUInt32Number len;
+ union {
+ cmsUInt16Number uint16;
+ char str[2];
+ } code_convert;
+ cmsUInt16Number Lang;
+ cmsUInt16Number Cntry;
+
+ code_convert.str[0] = Language[0];
+ code_convert.str[1] = Language[1];
+ Lang = _cmsAdjustEndianess16(code_convert.uint16);
+ code_convert.str[0] = Country[0];
+ code_convert.str[1] = Country[1];
+ Cntry = _cmsAdjustEndianess16(code_convert.uint16);
+
if (mlu == NULL) return FALSE;
if (WideString == NULL) return FALSE;
@@ -350,8 +373,19 @@ cmsUInt32Number CMSEXPORT cmsMLUgetASCII
cmsUInt32Number StrLen = 0;
cmsUInt32Number ASCIIlen, i;
- cmsUInt16Number Lang = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
- cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
+ union {
+ cmsUInt16Number uint16;
+ char str[2];
+ } code_convert;
+ cmsUInt16Number Lang;
+ cmsUInt16Number Cntry;
+
+ code_convert.str[0] = LanguageCode[0];
+ code_convert.str[1] = LanguageCode[1];
+ Lang = _cmsAdjustEndianess16(code_convert.uint16);
+ code_convert.str[0] = CountryCode[0];
+ code_convert.str[1] = CountryCode[1];
+ Cntry = _cmsAdjustEndianess16(code_convert.uint16);
// Sanitize
if (mlu == NULL) return 0;
@@ -394,8 +428,19 @@ cmsUInt32Number CMSEXPORT cmsMLUgetWide(
const wchar_t *Wide;
cmsUInt32Number StrLen = 0;
- cmsUInt16Number Lang = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
- cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
+ union {
+ cmsUInt16Number uint16;
+ char str[2];
+ } code_convert;
+ cmsUInt16Number Lang;
+ cmsUInt16Number Cntry;
+
+ code_convert.str[0] = LanguageCode[0];
+ code_convert.str[1] = LanguageCode[1];
+ Lang = _cmsAdjustEndianess16(code_convert.uint16);
+ code_convert.str[0] = CountryCode[0];
+ code_convert.str[1] = CountryCode[1];
+ Cntry = _cmsAdjustEndianess16(code_convert.uint16);
// Sanitize
if (mlu == NULL) return 0;
@@ -427,10 +472,20 @@ CMSAPI cmsBool CMSEXPORT cmsMLUgetTransl
{
const wchar_t *Wide;
- cmsUInt16Number Lang = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
- cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
cmsUInt16Number ObtLang, ObtCode;
+ union {
+ cmsUInt16Number uint16;
+ char str[3];
+ } code_convert;
+ cmsUInt16Number Lang;
+ cmsUInt16Number Cntry;
+
+ strcpy(code_convert.str, LanguageCode);
+ Lang = _cmsAdjustEndianess16(code_convert.uint16);
+ strcpy(code_convert.str, CountryCode);
+ Cntry = _cmsAdjustEndianess16(code_convert.uint16);
+
// Sanitize
if (mlu == NULL) return FALSE;