1 /*
2 * fontconfig/test/test-bz89617.c
3 *
4 * Copyright © 2000 Keith Packard
5 * Copyright © 2015 Akira TAGOH
6 *
7 * Permission to use, copy, modify, distribute, and sell this software and its
8 * documentation for any purpose is hereby granted without fee, provided that
9 * the above copyright notice appear in all copies and that both that
10 * copyright notice and this permission notice appear in supporting
11 * documentation, and that the name of the author(s) not be used in
12 * advertising or publicity pertaining to distribution of the software without
13 * specific, written prior permission. The authors make no
14 * representations about the suitability of this software for any purpose. It
15 * is provided "as is" without express or implied warranty.
16 *
17 * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
18 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
19 * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
20 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
22 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
23 * PERFORMANCE OF THIS SOFTWARE.
24 */
25 #include <stdio.h>
26 #include <fontconfig/fontconfig.h>
27
28 FcLangResult
29 comp(const FcChar8 *l1, const FcChar8 *l2)
30 {
31 FcLangSet *ls1, *ls2;
32 FcLangResult result;
33
34 ls1 = FcLangSetCreate();
35 ls2 = FcLangSetCreate();
36 FcLangSetAdd(ls1, l1);
37 FcLangSetAdd(ls2, l2);
38
39 result = FcLangSetCompare(ls1, ls2);
40 FcLangSetDestroy(ls1);
41 FcLangSetDestroy(ls2);
42
43 return result;
44 }
45
46 int
47 main(void)
48 {
49 int i = 1;
50
51 /* 1 */
52 if (comp((const FcChar8 *)"ku-am", (const FcChar8 *)"ku-iq") != FcLangDifferentTerritory)
53 return i;
54 i++;
55 /* 2 */
56 if (comp((const FcChar8 *)"ku-am", (const FcChar8 *)"ku-ir") != FcLangDifferentTerritory)
57 return i;
58 i++;
59 /* 3 */
60 if (comp((const FcChar8 *)"ku-am", (const FcChar8 *)"ku-tr") != FcLangDifferentTerritory)
61 return i;
62 i++;
63 /* 4 */
64 if (comp((const FcChar8 *)"ku-iq", (const FcChar8 *)"ku-ir") != FcLangDifferentTerritory)
65 return i;
66 i++;
67 /* 5 */
68 if (comp((const FcChar8 *)"ku-iq", (const FcChar8 *)"ku-tr") != FcLangDifferentTerritory)
69 return i;
70 i++;
71 /* 6 */
72 if (comp((const FcChar8 *)"ku-ir", (const FcChar8 *)"ku-tr") != FcLangDifferentTerritory)
73 return i;
74 i++;
75 /* 7 */
76 if (comp((const FcChar8 *)"ps-af", (const FcChar8 *)"ps-pk") != FcLangDifferentTerritory)
77 return i;
78 i++;
79 /* 8 */
80 if (comp((const FcChar8 *)"ti-er", (const FcChar8 *)"ti-et") != FcLangDifferentTerritory)
81 return i;
82 i++;
83 /* 9 */
84 if (comp((const FcChar8 *)"zh-cn", (const FcChar8 *)"zh-hk") != FcLangDifferentTerritory)
85 return i;
86 i++;
87 /* 10 */
88 if (comp((const FcChar8 *)"zh-cn", (const FcChar8 *)"zh-mo") != FcLangDifferentTerritory)
89 return i;
90 i++;
91 /* 11 */
92 if (comp((const FcChar8 *)"zh-cn", (const FcChar8 *)"zh-sg") != FcLangDifferentTerritory)
93 return i;
94 i++;
95 /* 12 */
96 if (comp((const FcChar8 *)"zh-cn", (const FcChar8 *)"zh-tw") != FcLangDifferentTerritory)
97 return i;
98 i++;
99 /* 13 */
100 if (comp((const FcChar8 *)"zh-hk", (const FcChar8 *)"zh-mo") != FcLangDifferentTerritory)
101 return i;
102 i++;
103 /* 14 */
104 if (comp((const FcChar8 *)"zh-hk", (const FcChar8 *)"zh-sg") != FcLangDifferentTerritory)
105 return i;
106 i++;
107 /* 15 */
108 if (comp((const FcChar8 *)"zh-hk", (const FcChar8 *)"zh-tw") != FcLangDifferentTerritory)
109 return i;
110 i++;
111 /* 16 */
112 if (comp((const FcChar8 *)"zh-mo", (const FcChar8 *)"zh-sg") != FcLangDifferentTerritory)
113 return i;
114 i++;
115 /* 17 */
116 if (comp((const FcChar8 *)"zh-mo", (const FcChar8 *)"zh-tw") != FcLangDifferentTerritory)
117 return i;
118 i++;
119 /* 18 */
120 if (comp((const FcChar8 *)"zh-sg", (const FcChar8 *)"zh-tw") != FcLangDifferentTerritory)
121 return i;
122 i++;
123 /* 19 */
124 if (comp((const FcChar8 *)"mn-mn", (const FcChar8 *)"mn-cn") != FcLangDifferentTerritory)
125 return i;
126 i++;
127 /* 20 */
128 if (comp((const FcChar8 *)"pap-an", (const FcChar8 *)"pap-aw") != FcLangDifferentTerritory)
129 return i;
130 i++;
131
132 return 0;
133 }
134
135