View | Details | Raw Unified | Return to bug 201226 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (+1 lines)
Lines 3-8 Link Here
3
3
4
PORTNAME=	lcms2
4
PORTNAME=	lcms2
5
PORTVERSION=	2.7
5
PORTVERSION=	2.7
6
PORTREVISION=	1
6
CATEGORIES=	graphics
7
CATEGORIES=	graphics
7
MASTER_SITES=	SF/lcms/lcms/${PORTVERSION}
8
MASTER_SITES=	SF/lcms/lcms/${PORTVERSION}
8
9
(-)files/patch-src_cmsnamed.c (+116 lines)
Line 0 Link Here
1
--- src/cmsnamed.c.orig	2015-03-17 11:19:51 UTC
2
+++ src/cmsnamed.c
3
@@ -185,8 +185,19 @@ cmsBool CMSEXPORT cmsMLUsetASCII(cmsMLU*
4
     cmsUInt32Number i, len = (cmsUInt32Number) strlen(ASCIIString)+1;
5
     wchar_t* WStr;
6
     cmsBool  rc;
7
-    cmsUInt16Number Lang  = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
8
-    cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
9
+    union {
10
+        cmsUInt16Number uint16;
11
+        char str[2];
12
+    } code_convert;
13
+    cmsUInt16Number Lang;
14
+    cmsUInt16Number Cntry;
15
+
16
+    code_convert.str[0] = LanguageCode[0];
17
+    code_convert.str[1] = LanguageCode[1];
18
+    Lang = _cmsAdjustEndianess16(code_convert.uint16);
19
+    code_convert.str[0] = CountryCode[0];
20
+    code_convert.str[1] = CountryCode[1];
21
+    Cntry = _cmsAdjustEndianess16(code_convert.uint16);
22
 
23
     if (mlu == NULL) return FALSE;
24
 
25
@@ -220,10 +231,22 @@ cmsUInt32Number mywcslen(const wchar_t *
26
 // Add a wide entry
27
 cmsBool  CMSEXPORT cmsMLUsetWide(cmsMLU* mlu, const char Language[3], const char Country[3], const wchar_t* WideString)
28
 {
29
-    cmsUInt16Number Lang  = _cmsAdjustEndianess16(*(cmsUInt16Number*) Language);
30
-    cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) Country);
31
     cmsUInt32Number len;
32
 
33
+    union {
34
+        cmsUInt16Number uint16;
35
+        char str[2];
36
+    } code_convert;
37
+    cmsUInt16Number Lang;
38
+    cmsUInt16Number Cntry;
39
+
40
+    code_convert.str[0] = Language[0];
41
+    code_convert.str[1] = Language[1];
42
+    Lang = _cmsAdjustEndianess16(code_convert.uint16);
43
+    code_convert.str[0] = Country[0];
44
+    code_convert.str[1] = Country[1];
45
+    Cntry = _cmsAdjustEndianess16(code_convert.uint16);
46
+
47
     if (mlu == NULL) return FALSE;
48
     if (WideString == NULL) return FALSE;
49
 
50
@@ -350,8 +373,19 @@ cmsUInt32Number CMSEXPORT cmsMLUgetASCII
51
     cmsUInt32Number  StrLen = 0;
52
     cmsUInt32Number ASCIIlen, i;
53
 
54
-    cmsUInt16Number Lang  = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
55
-    cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
56
+    union {
57
+        cmsUInt16Number uint16;
58
+        char str[2];
59
+    } code_convert;
60
+    cmsUInt16Number Lang;
61
+    cmsUInt16Number Cntry;
62
+
63
+    code_convert.str[0] = LanguageCode[0];
64
+    code_convert.str[1] = LanguageCode[1];
65
+    Lang = _cmsAdjustEndianess16(code_convert.uint16);
66
+    code_convert.str[0] = CountryCode[0];
67
+    code_convert.str[1] = CountryCode[1];
68
+    Cntry = _cmsAdjustEndianess16(code_convert.uint16);
69
 
70
     // Sanitize
71
     if (mlu == NULL) return 0;
72
@@ -394,8 +428,19 @@ cmsUInt32Number CMSEXPORT cmsMLUgetWide(
73
     const wchar_t *Wide;
74
     cmsUInt32Number  StrLen = 0;
75
 
76
-    cmsUInt16Number Lang  = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
77
-    cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
78
+    union {
79
+        cmsUInt16Number uint16;
80
+        char str[2];
81
+    } code_convert;
82
+    cmsUInt16Number Lang;
83
+    cmsUInt16Number Cntry;
84
+
85
+    code_convert.str[0] = LanguageCode[0];
86
+    code_convert.str[1] = LanguageCode[1];
87
+    Lang = _cmsAdjustEndianess16(code_convert.uint16);
88
+    code_convert.str[0] = CountryCode[0];
89
+    code_convert.str[1] = CountryCode[1];
90
+    Cntry = _cmsAdjustEndianess16(code_convert.uint16);
91
 
92
     // Sanitize
93
     if (mlu == NULL) return 0;
94
@@ -427,10 +472,20 @@ CMSAPI cmsBool CMSEXPORT cmsMLUgetTransl
95
 {
96
     const wchar_t *Wide;
97
 
98
-    cmsUInt16Number Lang  = _cmsAdjustEndianess16(*(cmsUInt16Number*) LanguageCode);
99
-    cmsUInt16Number Cntry = _cmsAdjustEndianess16(*(cmsUInt16Number*) CountryCode);
100
     cmsUInt16Number ObtLang, ObtCode;
101
 
102
+    union {
103
+        cmsUInt16Number uint16;
104
+        char str[3];
105
+    } code_convert;
106
+    cmsUInt16Number Lang;
107
+    cmsUInt16Number Cntry;
108
+
109
+    strcpy(code_convert.str, LanguageCode);
110
+    Lang = _cmsAdjustEndianess16(code_convert.uint16);
111
+    strcpy(code_convert.str, CountryCode);
112
+    Cntry = _cmsAdjustEndianess16(code_convert.uint16);
113
+
114
     // Sanitize
115
     if (mlu == NULL) return FALSE;
116
 

Return to bug 201226