jassub 1.7.13 → 1.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/package.json +4 -2
  2. package/dist/js/jassub-worker-modern.js +0 -128
  3. package/dist/js/jassub-worker-modern.wasm +0 -0
  4. package/dist/js/jassub-worker.js +0 -128
  5. package/dist/js/jassub-worker.wasm +0 -0
  6. package/dist/js/jassub-worker.wasm.js +0 -84
  7. package/dist/js/jassub.js +0 -832
  8. package/dist/libraries/bin/brotli.js +0 -1
  9. package/dist/libraries/include/ass/ass.h +0 -812
  10. package/dist/libraries/include/ass/ass_types.h +0 -292
  11. package/dist/libraries/include/brotli/decode.h +0 -344
  12. package/dist/libraries/include/brotli/encode.h +0 -448
  13. package/dist/libraries/include/brotli/port.h +0 -288
  14. package/dist/libraries/include/brotli/types.h +0 -83
  15. package/dist/libraries/include/expat.h +0 -1064
  16. package/dist/libraries/include/expat_config.h +0 -115
  17. package/dist/libraries/include/expat_external.h +0 -165
  18. package/dist/libraries/include/fontconfig/fcfreetype.h +0 -59
  19. package/dist/libraries/include/fontconfig/fcprivate.h +0 -134
  20. package/dist/libraries/include/fontconfig/fontconfig.h +0 -1154
  21. package/dist/libraries/include/freetype2/freetype/config/ftconfig.h +0 -63
  22. package/dist/libraries/include/freetype2/freetype/config/ftheader.h +0 -824
  23. package/dist/libraries/include/freetype2/freetype/config/ftmodule.h +0 -20
  24. package/dist/libraries/include/freetype2/freetype/config/ftoption.h +0 -1011
  25. package/dist/libraries/include/freetype2/freetype/config/ftstdlib.h +0 -175
  26. package/dist/libraries/include/freetype2/freetype/config/integer-types.h +0 -245
  27. package/dist/libraries/include/freetype2/freetype/config/mac-support.h +0 -49
  28. package/dist/libraries/include/freetype2/freetype/config/public-macros.h +0 -120
  29. package/dist/libraries/include/freetype2/freetype/freetype.h +0 -4833
  30. package/dist/libraries/include/freetype2/freetype/ftadvanc.h +0 -188
  31. package/dist/libraries/include/freetype2/freetype/ftbbox.h +0 -101
  32. package/dist/libraries/include/freetype2/freetype/ftbdf.h +0 -212
  33. package/dist/libraries/include/freetype2/freetype/ftbitmap.h +0 -329
  34. package/dist/libraries/include/freetype2/freetype/ftbzip2.h +0 -102
  35. package/dist/libraries/include/freetype2/freetype/ftcache.h +0 -1087
  36. package/dist/libraries/include/freetype2/freetype/ftchapters.h +0 -147
  37. package/dist/libraries/include/freetype2/freetype/ftcid.h +0 -167
  38. package/dist/libraries/include/freetype2/freetype/ftcolor.h +0 -1609
  39. package/dist/libraries/include/freetype2/freetype/ftdriver.h +0 -1193
  40. package/dist/libraries/include/freetype2/freetype/fterrdef.h +0 -279
  41. package/dist/libraries/include/freetype2/freetype/fterrors.h +0 -296
  42. package/dist/libraries/include/freetype2/freetype/ftfntfmt.h +0 -93
  43. package/dist/libraries/include/freetype2/freetype/ftgasp.h +0 -143
  44. package/dist/libraries/include/freetype2/freetype/ftglyph.h +0 -664
  45. package/dist/libraries/include/freetype2/freetype/ftgxval.h +0 -354
  46. package/dist/libraries/include/freetype2/freetype/ftgzip.h +0 -151
  47. package/dist/libraries/include/freetype2/freetype/ftimage.h +0 -1276
  48. package/dist/libraries/include/freetype2/freetype/ftincrem.h +0 -348
  49. package/dist/libraries/include/freetype2/freetype/ftlcdfil.h +0 -323
  50. package/dist/libraries/include/freetype2/freetype/ftlist.h +0 -296
  51. package/dist/libraries/include/freetype2/freetype/ftlogging.h +0 -184
  52. package/dist/libraries/include/freetype2/freetype/ftlzw.h +0 -100
  53. package/dist/libraries/include/freetype2/freetype/ftmac.h +0 -289
  54. package/dist/libraries/include/freetype2/freetype/ftmm.h +0 -752
  55. package/dist/libraries/include/freetype2/freetype/ftmodapi.h +0 -806
  56. package/dist/libraries/include/freetype2/freetype/ftmoderr.h +0 -204
  57. package/dist/libraries/include/freetype2/freetype/ftotval.h +0 -206
  58. package/dist/libraries/include/freetype2/freetype/ftoutln.h +0 -586
  59. package/dist/libraries/include/freetype2/freetype/ftparams.h +0 -203
  60. package/dist/libraries/include/freetype2/freetype/ftpfr.h +0 -179
  61. package/dist/libraries/include/freetype2/freetype/ftrender.h +0 -244
  62. package/dist/libraries/include/freetype2/freetype/ftsizes.h +0 -159
  63. package/dist/libraries/include/freetype2/freetype/ftsnames.h +0 -272
  64. package/dist/libraries/include/freetype2/freetype/ftstroke.h +0 -773
  65. package/dist/libraries/include/freetype2/freetype/ftsynth.h +0 -83
  66. package/dist/libraries/include/freetype2/freetype/ftsystem.h +0 -352
  67. package/dist/libraries/include/freetype2/freetype/fttrigon.h +0 -350
  68. package/dist/libraries/include/freetype2/freetype/fttypes.h +0 -615
  69. package/dist/libraries/include/freetype2/freetype/ftwinfnt.h +0 -276
  70. package/dist/libraries/include/freetype2/freetype/t1tables.h +0 -773
  71. package/dist/libraries/include/freetype2/freetype/ttnameid.h +0 -1235
  72. package/dist/libraries/include/freetype2/freetype/tttables.h +0 -855
  73. package/dist/libraries/include/freetype2/freetype/tttags.h +0 -123
  74. package/dist/libraries/include/freetype2/ft2build.h +0 -42
  75. package/dist/libraries/include/fribidi/fribidi-arabic.h +0 -81
  76. package/dist/libraries/include/fribidi/fribidi-begindecls.h +0 -3
  77. package/dist/libraries/include/fribidi/fribidi-bidi-types-list.h +0 -96
  78. package/dist/libraries/include/fribidi/fribidi-bidi-types.h +0 -405
  79. package/dist/libraries/include/fribidi/fribidi-bidi.h +0 -142
  80. package/dist/libraries/include/fribidi/fribidi-brackets.h +0 -89
  81. package/dist/libraries/include/fribidi/fribidi-char-sets-list.h +0 -54
  82. package/dist/libraries/include/fribidi/fribidi-char-sets.h +0 -106
  83. package/dist/libraries/include/fribidi/fribidi-common.h +0 -158
  84. package/dist/libraries/include/fribidi/fribidi-config.h +0 -23
  85. package/dist/libraries/include/fribidi/fribidi-deprecated.h +0 -175
  86. package/dist/libraries/include/fribidi/fribidi-enddecls.h +0 -3
  87. package/dist/libraries/include/fribidi/fribidi-flags.h +0 -72
  88. package/dist/libraries/include/fribidi/fribidi-joining-types-list.h +0 -44
  89. package/dist/libraries/include/fribidi/fribidi-joining-types.h +0 -249
  90. package/dist/libraries/include/fribidi/fribidi-joining.h +0 -74
  91. package/dist/libraries/include/fribidi/fribidi-mirroring.h +0 -86
  92. package/dist/libraries/include/fribidi/fribidi-shape.h +0 -71
  93. package/dist/libraries/include/fribidi/fribidi-types.h +0 -79
  94. package/dist/libraries/include/fribidi/fribidi-unicode-version.h +0 -10
  95. package/dist/libraries/include/fribidi/fribidi-unicode.h +0 -105
  96. package/dist/libraries/include/fribidi/fribidi.h +0 -129
  97. package/dist/libraries/include/harfbuzz/hb-aat-layout.h +0 -795
  98. package/dist/libraries/include/harfbuzz/hb-aat.h +0 -38
  99. package/dist/libraries/include/harfbuzz/hb-blob.h +0 -160
  100. package/dist/libraries/include/harfbuzz/hb-buffer.h +0 -799
  101. package/dist/libraries/include/harfbuzz/hb-common.h +0 -902
  102. package/dist/libraries/include/harfbuzz/hb-cplusplus.hh +0 -221
  103. package/dist/libraries/include/harfbuzz/hb-deprecated.h +0 -251
  104. package/dist/libraries/include/harfbuzz/hb-draw.h +0 -325
  105. package/dist/libraries/include/harfbuzz/hb-face.h +0 -181
  106. package/dist/libraries/include/harfbuzz/hb-font.h +0 -1108
  107. package/dist/libraries/include/harfbuzz/hb-ft.h +0 -145
  108. package/dist/libraries/include/harfbuzz/hb-map.h +0 -124
  109. package/dist/libraries/include/harfbuzz/hb-ot-color.h +0 -146
  110. package/dist/libraries/include/harfbuzz/hb-ot-deprecated.h +0 -141
  111. package/dist/libraries/include/harfbuzz/hb-ot-font.h +0 -45
  112. package/dist/libraries/include/harfbuzz/hb-ot-layout.h +0 -503
  113. package/dist/libraries/include/harfbuzz/hb-ot-math.h +0 -333
  114. package/dist/libraries/include/harfbuzz/hb-ot-meta.h +0 -72
  115. package/dist/libraries/include/harfbuzz/hb-ot-metrics.h +0 -129
  116. package/dist/libraries/include/harfbuzz/hb-ot-name.h +0 -158
  117. package/dist/libraries/include/harfbuzz/hb-ot-shape.h +0 -53
  118. package/dist/libraries/include/harfbuzz/hb-ot-var.h +0 -191
  119. package/dist/libraries/include/harfbuzz/hb-ot.h +0 -49
  120. package/dist/libraries/include/harfbuzz/hb-set.h +0 -200
  121. package/dist/libraries/include/harfbuzz/hb-shape-plan.h +0 -122
  122. package/dist/libraries/include/harfbuzz/hb-shape.h +0 -62
  123. package/dist/libraries/include/harfbuzz/hb-style.h +0 -81
  124. package/dist/libraries/include/harfbuzz/hb-subset-repacker.h +0 -81
  125. package/dist/libraries/include/harfbuzz/hb-subset.h +0 -234
  126. package/dist/libraries/include/harfbuzz/hb-unicode.h +0 -643
  127. package/dist/libraries/include/harfbuzz/hb-version.h +0 -95
  128. package/dist/libraries/include/harfbuzz/hb.h +0 -50
  129. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config-version.cmake +0 -70
  130. package/dist/libraries/lib/cmake/expat-2.4.7/expat-config.cmake +0 -99
  131. package/dist/libraries/lib/cmake/expat-2.4.7/expat-noconfig.cmake +0 -19
  132. package/dist/libraries/lib/cmake/expat-2.4.7/expat.cmake +0 -99
  133. package/dist/libraries/lib/libass.a +0 -0
  134. package/dist/libraries/lib/libass.la +0 -41
  135. package/dist/libraries/lib/libbrotlicommon.a +0 -0
  136. package/dist/libraries/lib/libbrotlidec.a +0 -0
  137. package/dist/libraries/lib/libbrotlienc.a +0 -0
  138. package/dist/libraries/lib/libexpat.a +0 -0
  139. package/dist/libraries/lib/libfontconfig.a +0 -0
  140. package/dist/libraries/lib/libfontconfig.la +0 -41
  141. package/dist/libraries/lib/libfreetype.a +0 -0
  142. package/dist/libraries/lib/libfreetype.la +0 -41
  143. package/dist/libraries/lib/libfribidi.a +0 -0
  144. package/dist/libraries/lib/libfribidi.la +0 -41
  145. package/dist/libraries/lib/libharfbuzz-subset.a +0 -0
  146. package/dist/libraries/lib/libharfbuzz-subset.la +0 -41
  147. package/dist/libraries/lib/libharfbuzz.a +0 -0
  148. package/dist/libraries/lib/libharfbuzz.la +0 -41
  149. package/dist/libraries/lib/pkgconfig/expat.pc +0 -11
  150. package/dist/libraries/lib/pkgconfig/fontconfig.pc +0 -18
  151. package/dist/libraries/lib/pkgconfig/freetype2.pc +0 -14
  152. package/dist/libraries/lib/pkgconfig/fribidi.pc +0 -13
  153. package/dist/libraries/lib/pkgconfig/harfbuzz-subset.pc +0 -12
  154. package/dist/libraries/lib/pkgconfig/harfbuzz.pc +0 -13
  155. package/dist/libraries/lib/pkgconfig/libass.pc +0 -13
  156. package/dist/libraries/lib/pkgconfig/libbrotlicommon.pc +0 -11
  157. package/dist/libraries/lib/pkgconfig/libbrotlidec.pc +0 -12
  158. package/dist/libraries/lib/pkgconfig/libbrotlienc.pc +0 -12
  159. package/dist/libraries/share/aclocal/freetype2.m4 +0 -194
  160. package/dist/libraries/share/doc/expat/AUTHORS +0 -10
  161. package/dist/libraries/share/doc/expat/changelog +0 -1161
  162. package/dist/license/all +0 -951
  163. package/dist/license/all.tmp +0 -307
  164. package/dist/license/brotli +0 -12
  165. package/dist/license/expat +0 -71
  166. package/dist/license/fontconfig +0 -46
  167. package/dist/license/freetype +0 -92
  168. package/dist/license/fribidi +0 -15
  169. package/dist/license/harfbuzz +0 -32
  170. package/dist/license/jassub +0 -0
  171. package/dist/license/libass +0 -28
@@ -1,902 +0,0 @@
1
- /*
2
- * Copyright © 2007,2008,2009 Red Hat, Inc.
3
- * Copyright © 2011,2012 Google, Inc.
4
- *
5
- * This is part of HarfBuzz, a text shaping library.
6
- *
7
- * Permission is hereby granted, without written agreement and without
8
- * license or royalty fees, to use, copy, modify, and distribute this
9
- * software and its documentation for any purpose, provided that the
10
- * above copyright notice and the following two paragraphs appear in
11
- * all copies of this software.
12
- *
13
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
14
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
15
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
16
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
17
- * DAMAGE.
18
- *
19
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
20
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
21
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
22
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
23
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
24
- *
25
- * Red Hat Author(s): Behdad Esfahbod
26
- * Google Author(s): Behdad Esfahbod
27
- */
28
-
29
- #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
30
- #error "Include <hb.h> instead."
31
- #endif
32
-
33
- #ifndef HB_COMMON_H
34
- #define HB_COMMON_H
35
-
36
- #ifndef HB_EXTERN
37
- #define HB_EXTERN extern
38
- #endif
39
-
40
- #ifndef HB_BEGIN_DECLS
41
- # ifdef __cplusplus
42
- # define HB_BEGIN_DECLS extern "C" {
43
- # define HB_END_DECLS }
44
- # else /* !__cplusplus */
45
- # define HB_BEGIN_DECLS
46
- # define HB_END_DECLS
47
- # endif /* !__cplusplus */
48
- #endif
49
-
50
- #if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || \
51
- defined (_sgi) || defined (__sun) || defined (sun) || \
52
- defined (__digital__) || defined (__HP_cc)
53
- # include <inttypes.h>
54
- #elif defined (_AIX)
55
- # include <sys/inttypes.h>
56
- #elif defined (_MSC_VER) && _MSC_VER < 1600
57
- /* VS 2010 (_MSC_VER 1600) has stdint.h */
58
- typedef __int8 int8_t;
59
- typedef unsigned __int8 uint8_t;
60
- typedef __int16 int16_t;
61
- typedef unsigned __int16 uint16_t;
62
- typedef __int32 int32_t;
63
- typedef unsigned __int32 uint32_t;
64
- typedef __int64 int64_t;
65
- typedef unsigned __int64 uint64_t;
66
- #elif defined (__KERNEL__)
67
- # include <linux/types.h>
68
- #else
69
- # include <stdint.h>
70
- #endif
71
-
72
- #if defined(__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
73
- #define HB_DEPRECATED __attribute__((__deprecated__))
74
- #elif defined(_MSC_VER) && (_MSC_VER >= 1300)
75
- #define HB_DEPRECATED __declspec(deprecated)
76
- #else
77
- #define HB_DEPRECATED
78
- #endif
79
-
80
- #if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
81
- #define HB_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
82
- #elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
83
- #define HB_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
84
- #else
85
- #define HB_DEPRECATED_FOR(f) HB_DEPRECATED
86
- #endif
87
-
88
-
89
- HB_BEGIN_DECLS
90
-
91
- /**
92
- * hb_bool_t:
93
- *
94
- * Data type for booleans.
95
- *
96
- **/
97
- typedef int hb_bool_t;
98
-
99
- /**
100
- * hb_codepoint_t:
101
- *
102
- * Data type for holding Unicode codepoints. Also
103
- * used to hold glyph IDs.
104
- *
105
- **/
106
- typedef uint32_t hb_codepoint_t;
107
- /**
108
- * hb_position_t:
109
- *
110
- * Data type for holding a single coordinate value.
111
- * Contour points and other multi-dimensional data are
112
- * stored as tuples of #hb_position_t's.
113
- *
114
- **/
115
- typedef int32_t hb_position_t;
116
- /**
117
- * hb_mask_t:
118
- *
119
- * Data type for bitmasks.
120
- *
121
- **/
122
- typedef uint32_t hb_mask_t;
123
-
124
- typedef union _hb_var_int_t {
125
- uint32_t u32;
126
- int32_t i32;
127
- uint16_t u16[2];
128
- int16_t i16[2];
129
- uint8_t u8[4];
130
- int8_t i8[4];
131
- } hb_var_int_t;
132
-
133
- typedef union _hb_var_num_t {
134
- float f;
135
- uint32_t u32;
136
- int32_t i32;
137
- uint16_t u16[2];
138
- int16_t i16[2];
139
- uint8_t u8[4];
140
- int8_t i8[4];
141
- } hb_var_num_t;
142
-
143
-
144
- /* hb_tag_t */
145
-
146
- /**
147
- * hb_tag_t:
148
- *
149
- * Data type for tag identifiers. Tags are four
150
- * byte integers, each byte representing a character.
151
- *
152
- * Tags are used to identify tables, design-variation axes,
153
- * scripts, languages, font features, and baselines with
154
- * human-readable names.
155
- *
156
- **/
157
- typedef uint32_t hb_tag_t;
158
-
159
- /**
160
- * HB_TAG:
161
- * @c1: 1st character of the tag
162
- * @c2: 2nd character of the tag
163
- * @c3: 3rd character of the tag
164
- * @c4: 4th character of the tag
165
- *
166
- * Constructs an #hb_tag_t from four character literals.
167
- *
168
- **/
169
- #define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF)))
170
-
171
- /**
172
- * HB_UNTAG:
173
- * @tag: an #hb_tag_t
174
- *
175
- * Extracts four character literals from an #hb_tag_t.
176
- *
177
- * Since: 0.6.0
178
- *
179
- **/
180
- #define HB_UNTAG(tag) (uint8_t)(((tag)>>24)&0xFF), (uint8_t)(((tag)>>16)&0xFF), (uint8_t)(((tag)>>8)&0xFF), (uint8_t)((tag)&0xFF)
181
-
182
- /**
183
- * HB_TAG_NONE:
184
- *
185
- * Unset #hb_tag_t.
186
- */
187
- #define HB_TAG_NONE HB_TAG(0,0,0,0)
188
- /**
189
- * HB_TAG_MAX:
190
- *
191
- * Maximum possible unsigned #hb_tag_t.
192
- *
193
- * Since: 0.9.26
194
- */
195
- #define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
196
- /**
197
- * HB_TAG_MAX_SIGNED:
198
- *
199
- * Maximum possible signed #hb_tag_t.
200
- *
201
- * Since: 0.9.33
202
- */
203
- #define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)
204
-
205
- /* len=-1 means str is NUL-terminated. */
206
- HB_EXTERN hb_tag_t
207
- hb_tag_from_string (const char *str, int len);
208
-
209
- /* buf should have 4 bytes. */
210
- HB_EXTERN void
211
- hb_tag_to_string (hb_tag_t tag, char *buf);
212
-
213
-
214
- /**
215
- * hb_direction_t:
216
- * @HB_DIRECTION_INVALID: Initial, unset direction.
217
- * @HB_DIRECTION_LTR: Text is set horizontally from left to right.
218
- * @HB_DIRECTION_RTL: Text is set horizontally from right to left.
219
- * @HB_DIRECTION_TTB: Text is set vertically from top to bottom.
220
- * @HB_DIRECTION_BTT: Text is set vertically from bottom to top.
221
- *
222
- * The direction of a text segment or buffer.
223
- *
224
- * A segment can also be tested for horizontal or vertical
225
- * orientation (irrespective of specific direction) with
226
- * HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL().
227
- *
228
- */
229
- typedef enum {
230
- HB_DIRECTION_INVALID = 0,
231
- HB_DIRECTION_LTR = 4,
232
- HB_DIRECTION_RTL,
233
- HB_DIRECTION_TTB,
234
- HB_DIRECTION_BTT
235
- } hb_direction_t;
236
-
237
- /* len=-1 means str is NUL-terminated */
238
- HB_EXTERN hb_direction_t
239
- hb_direction_from_string (const char *str, int len);
240
-
241
- HB_EXTERN const char *
242
- hb_direction_to_string (hb_direction_t direction);
243
-
244
- /**
245
- * HB_DIRECTION_IS_VALID:
246
- * @dir: #hb_direction_t to test
247
- *
248
- * Tests whether a text direction is valid.
249
- *
250
- **/
251
- #define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)
252
- /* Direction must be valid for the following */
253
- /**
254
- * HB_DIRECTION_IS_HORIZONTAL:
255
- * @dir: #hb_direction_t to test
256
- *
257
- * Tests whether a text direction is horizontal. Requires
258
- * that the direction be valid.
259
- *
260
- **/
261
- #define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)
262
- /**
263
- * HB_DIRECTION_IS_VERTICAL:
264
- * @dir: #hb_direction_t to test
265
- *
266
- * Tests whether a text direction is vertical. Requires
267
- * that the direction be valid.
268
- *
269
- **/
270
- #define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)
271
- /**
272
- * HB_DIRECTION_IS_FORWARD:
273
- * @dir: #hb_direction_t to test
274
- *
275
- * Tests whether a text direction moves forward (from left to right, or from
276
- * top to bottom). Requires that the direction be valid.
277
- *
278
- **/
279
- #define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)
280
- /**
281
- * HB_DIRECTION_IS_BACKWARD:
282
- * @dir: #hb_direction_t to test
283
- *
284
- * Tests whether a text direction moves backward (from right to left, or from
285
- * bottom to top). Requires that the direction be valid.
286
- *
287
- **/
288
- #define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)
289
- /**
290
- * HB_DIRECTION_REVERSE:
291
- * @dir: #hb_direction_t to reverse
292
- *
293
- * Reverses a text direction. Requires that the direction
294
- * be valid.
295
- *
296
- **/
297
- #define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
298
-
299
-
300
- /* hb_language_t */
301
-
302
- /**
303
- * hb_language_t:
304
- *
305
- * Data type for languages. Each #hb_language_t corresponds to a BCP 47
306
- * language tag.
307
- *
308
- */
309
- typedef const struct hb_language_impl_t *hb_language_t;
310
-
311
- HB_EXTERN hb_language_t
312
- hb_language_from_string (const char *str, int len);
313
-
314
- HB_EXTERN const char *
315
- hb_language_to_string (hb_language_t language);
316
-
317
- /**
318
- * HB_LANGUAGE_INVALID:
319
- *
320
- * An unset #hb_language_t.
321
- *
322
- * Since: 0.6.0
323
- */
324
- #define HB_LANGUAGE_INVALID ((hb_language_t) 0)
325
-
326
- HB_EXTERN hb_language_t
327
- hb_language_get_default (void);
328
-
329
- HB_EXTERN hb_bool_t
330
- hb_language_matches (hb_language_t language,
331
- hb_language_t specific);
332
-
333
- /**
334
- * hb_script_t:
335
- * @HB_SCRIPT_COMMON: `Zyyy`
336
- * @HB_SCRIPT_INHERITED: `Zinh`
337
- * @HB_SCRIPT_UNKNOWN: `Zzzz`
338
- * @HB_SCRIPT_ARABIC: `Arab`
339
- * @HB_SCRIPT_ARMENIAN: `Armn`
340
- * @HB_SCRIPT_BENGALI: `Beng`
341
- * @HB_SCRIPT_CYRILLIC: `Cyrl`
342
- * @HB_SCRIPT_DEVANAGARI: `Deva`
343
- * @HB_SCRIPT_GEORGIAN: `Geor`
344
- * @HB_SCRIPT_GREEK: `Grek`
345
- * @HB_SCRIPT_GUJARATI: `Gujr`
346
- * @HB_SCRIPT_GURMUKHI: `Guru`
347
- * @HB_SCRIPT_HANGUL: `Hang`
348
- * @HB_SCRIPT_HAN: `Hani`
349
- * @HB_SCRIPT_HEBREW: `Hebr`
350
- * @HB_SCRIPT_HIRAGANA: `Hira`
351
- * @HB_SCRIPT_KANNADA: `Knda`
352
- * @HB_SCRIPT_KATAKANA: `Kana`
353
- * @HB_SCRIPT_LAO: `Laoo`
354
- * @HB_SCRIPT_LATIN: `Latn`
355
- * @HB_SCRIPT_MALAYALAM: `Mlym`
356
- * @HB_SCRIPT_ORIYA: `Orya`
357
- * @HB_SCRIPT_TAMIL: `Taml`
358
- * @HB_SCRIPT_TELUGU: `Telu`
359
- * @HB_SCRIPT_THAI: `Thai`
360
- * @HB_SCRIPT_TIBETAN: `Tibt`
361
- * @HB_SCRIPT_BOPOMOFO: `Bopo`
362
- * @HB_SCRIPT_BRAILLE: `Brai`
363
- * @HB_SCRIPT_CANADIAN_SYLLABICS: `Cans`
364
- * @HB_SCRIPT_CHEROKEE: `Cher`
365
- * @HB_SCRIPT_ETHIOPIC: `Ethi`
366
- * @HB_SCRIPT_KHMER: `Khmr`
367
- * @HB_SCRIPT_MONGOLIAN: `Mong`
368
- * @HB_SCRIPT_MYANMAR: `Mymr`
369
- * @HB_SCRIPT_OGHAM: `Ogam`
370
- * @HB_SCRIPT_RUNIC: `Runr`
371
- * @HB_SCRIPT_SINHALA: `Sinh`
372
- * @HB_SCRIPT_SYRIAC: `Syrc`
373
- * @HB_SCRIPT_THAANA: `Thaa`
374
- * @HB_SCRIPT_YI: `Yiii`
375
- * @HB_SCRIPT_DESERET: `Dsrt`
376
- * @HB_SCRIPT_GOTHIC: `Goth`
377
- * @HB_SCRIPT_OLD_ITALIC: `Ital`
378
- * @HB_SCRIPT_BUHID: `Buhd`
379
- * @HB_SCRIPT_HANUNOO: `Hano`
380
- * @HB_SCRIPT_TAGALOG: `Tglg`
381
- * @HB_SCRIPT_TAGBANWA: `Tagb`
382
- * @HB_SCRIPT_CYPRIOT: `Cprt`
383
- * @HB_SCRIPT_LIMBU: `Limb`
384
- * @HB_SCRIPT_LINEAR_B: `Linb`
385
- * @HB_SCRIPT_OSMANYA: `Osma`
386
- * @HB_SCRIPT_SHAVIAN: `Shaw`
387
- * @HB_SCRIPT_TAI_LE: `Tale`
388
- * @HB_SCRIPT_UGARITIC: `Ugar`
389
- * @HB_SCRIPT_BUGINESE: `Bugi`
390
- * @HB_SCRIPT_COPTIC: `Copt`
391
- * @HB_SCRIPT_GLAGOLITIC: `Glag`
392
- * @HB_SCRIPT_KHAROSHTHI: `Khar`
393
- * @HB_SCRIPT_NEW_TAI_LUE: `Talu`
394
- * @HB_SCRIPT_OLD_PERSIAN: `Xpeo`
395
- * @HB_SCRIPT_SYLOTI_NAGRI: `Sylo`
396
- * @HB_SCRIPT_TIFINAGH: `Tfng`
397
- * @HB_SCRIPT_BALINESE: `Bali`
398
- * @HB_SCRIPT_CUNEIFORM: `Xsux`
399
- * @HB_SCRIPT_NKO: `Nkoo`
400
- * @HB_SCRIPT_PHAGS_PA: `Phag`
401
- * @HB_SCRIPT_PHOENICIAN: `Phnx`
402
- * @HB_SCRIPT_CARIAN: `Cari`
403
- * @HB_SCRIPT_CHAM: `Cham`
404
- * @HB_SCRIPT_KAYAH_LI: `Kali`
405
- * @HB_SCRIPT_LEPCHA: `Lepc`
406
- * @HB_SCRIPT_LYCIAN: `Lyci`
407
- * @HB_SCRIPT_LYDIAN: `Lydi`
408
- * @HB_SCRIPT_OL_CHIKI: `Olck`
409
- * @HB_SCRIPT_REJANG: `Rjng`
410
- * @HB_SCRIPT_SAURASHTRA: `Saur`
411
- * @HB_SCRIPT_SUNDANESE: `Sund`
412
- * @HB_SCRIPT_VAI: `Vaii`
413
- * @HB_SCRIPT_AVESTAN: `Avst`
414
- * @HB_SCRIPT_BAMUM: `Bamu`
415
- * @HB_SCRIPT_EGYPTIAN_HIEROGLYPHS: `Egyp`
416
- * @HB_SCRIPT_IMPERIAL_ARAMAIC: `Armi`
417
- * @HB_SCRIPT_INSCRIPTIONAL_PAHLAVI: `Phli`
418
- * @HB_SCRIPT_INSCRIPTIONAL_PARTHIAN: `Prti`
419
- * @HB_SCRIPT_JAVANESE: `Java`
420
- * @HB_SCRIPT_KAITHI: `Kthi`
421
- * @HB_SCRIPT_LISU: `Lisu`
422
- * @HB_SCRIPT_MEETEI_MAYEK: `Mtei`
423
- * @HB_SCRIPT_OLD_SOUTH_ARABIAN: `Sarb`
424
- * @HB_SCRIPT_OLD_TURKIC: `Orkh`
425
- * @HB_SCRIPT_SAMARITAN: `Samr`
426
- * @HB_SCRIPT_TAI_THAM: `Lana`
427
- * @HB_SCRIPT_TAI_VIET: `Tavt`
428
- * @HB_SCRIPT_BATAK: `Batk`
429
- * @HB_SCRIPT_BRAHMI: `Brah`
430
- * @HB_SCRIPT_MANDAIC: `Mand`
431
- * @HB_SCRIPT_CHAKMA: `Cakm`
432
- * @HB_SCRIPT_MEROITIC_CURSIVE: `Merc`
433
- * @HB_SCRIPT_MEROITIC_HIEROGLYPHS: `Mero`
434
- * @HB_SCRIPT_MIAO: `Plrd`
435
- * @HB_SCRIPT_SHARADA: `Shrd`
436
- * @HB_SCRIPT_SORA_SOMPENG: `Sora`
437
- * @HB_SCRIPT_TAKRI: `Takr`
438
- * @HB_SCRIPT_BASSA_VAH: `Bass`, Since: 0.9.30
439
- * @HB_SCRIPT_CAUCASIAN_ALBANIAN: `Aghb`, Since: 0.9.30
440
- * @HB_SCRIPT_DUPLOYAN: `Dupl`, Since: 0.9.30
441
- * @HB_SCRIPT_ELBASAN: `Elba`, Since: 0.9.30
442
- * @HB_SCRIPT_GRANTHA: `Gran`, Since: 0.9.30
443
- * @HB_SCRIPT_KHOJKI: `Khoj`, Since: 0.9.30
444
- * @HB_SCRIPT_KHUDAWADI: `Sind`, Since: 0.9.30
445
- * @HB_SCRIPT_LINEAR_A: `Lina`, Since: 0.9.30
446
- * @HB_SCRIPT_MAHAJANI: `Mahj`, Since: 0.9.30
447
- * @HB_SCRIPT_MANICHAEAN: `Mani`, Since: 0.9.30
448
- * @HB_SCRIPT_MENDE_KIKAKUI: `Mend`, Since: 0.9.30
449
- * @HB_SCRIPT_MODI: `Modi`, Since: 0.9.30
450
- * @HB_SCRIPT_MRO: `Mroo`, Since: 0.9.30
451
- * @HB_SCRIPT_NABATAEAN: `Nbat`, Since: 0.9.30
452
- * @HB_SCRIPT_OLD_NORTH_ARABIAN: `Narb`, Since: 0.9.30
453
- * @HB_SCRIPT_OLD_PERMIC: `Perm`, Since: 0.9.30
454
- * @HB_SCRIPT_PAHAWH_HMONG: `Hmng`, Since: 0.9.30
455
- * @HB_SCRIPT_PALMYRENE: `Palm`, Since: 0.9.30
456
- * @HB_SCRIPT_PAU_CIN_HAU: `Pauc`, Since: 0.9.30
457
- * @HB_SCRIPT_PSALTER_PAHLAVI: `Phlp`, Since: 0.9.30
458
- * @HB_SCRIPT_SIDDHAM: `Sidd`, Since: 0.9.30
459
- * @HB_SCRIPT_TIRHUTA: `Tirh`, Since: 0.9.30
460
- * @HB_SCRIPT_WARANG_CITI: `Wara`, Since: 0.9.30
461
- * @HB_SCRIPT_AHOM: `Ahom`, Since: 0.9.30
462
- * @HB_SCRIPT_ANATOLIAN_HIEROGLYPHS: `Hluw`, Since: 0.9.30
463
- * @HB_SCRIPT_HATRAN: `Hatr`, Since: 0.9.30
464
- * @HB_SCRIPT_MULTANI: `Mult`, Since: 0.9.30
465
- * @HB_SCRIPT_OLD_HUNGARIAN: `Hung`, Since: 0.9.30
466
- * @HB_SCRIPT_SIGNWRITING: `Sgnw`, Since: 0.9.30
467
- * @HB_SCRIPT_ADLAM: `Adlm`, Since: 1.3.0
468
- * @HB_SCRIPT_BHAIKSUKI: `Bhks`, Since: 1.3.0
469
- * @HB_SCRIPT_MARCHEN: `Marc`, Since: 1.3.0
470
- * @HB_SCRIPT_OSAGE: `Osge`, Since: 1.3.0
471
- * @HB_SCRIPT_TANGUT: `Tang`, Since: 1.3.0
472
- * @HB_SCRIPT_NEWA: `Newa`, Since: 1.3.0
473
- * @HB_SCRIPT_MASARAM_GONDI: `Gonm`, Since: 1.6.0
474
- * @HB_SCRIPT_NUSHU: `Nshu`, Since: 1.6.0
475
- * @HB_SCRIPT_SOYOMBO: `Soyo`, Since: 1.6.0
476
- * @HB_SCRIPT_ZANABAZAR_SQUARE: `Zanb`, Since: 1.6.0
477
- * @HB_SCRIPT_DOGRA: `Dogr`, Since: 1.8.0
478
- * @HB_SCRIPT_GUNJALA_GONDI: `Gong`, Since: 1.8.0
479
- * @HB_SCRIPT_HANIFI_ROHINGYA: `Rohg`, Since: 1.8.0
480
- * @HB_SCRIPT_MAKASAR: `Maka`, Since: 1.8.0
481
- * @HB_SCRIPT_MEDEFAIDRIN: `Medf`, Since: 1.8.0
482
- * @HB_SCRIPT_OLD_SOGDIAN: `Sogo`, Since: 1.8.0
483
- * @HB_SCRIPT_SOGDIAN: `Sogd`, Since: 1.8.0
484
- * @HB_SCRIPT_ELYMAIC: `Elym`, Since: 2.4.0
485
- * @HB_SCRIPT_NANDINAGARI: `Nand`, Since: 2.4.0
486
- * @HB_SCRIPT_NYIAKENG_PUACHUE_HMONG: `Hmnp`, Since: 2.4.0
487
- * @HB_SCRIPT_WANCHO: `Wcho`, Since: 2.4.0
488
- * @HB_SCRIPT_CHORASMIAN: `Chrs`, Since: 2.6.7
489
- * @HB_SCRIPT_DIVES_AKURU: `Diak`, Since: 2.6.7
490
- * @HB_SCRIPT_KHITAN_SMALL_SCRIPT: `Kits`, Since: 2.6.7
491
- * @HB_SCRIPT_YEZIDI: `Yezi`, Since: 2.6.7
492
- * @HB_SCRIPT_CYPRO_MINOAN: `Cpmn`, Since: 3.0.0
493
- * @HB_SCRIPT_OLD_UYGHUR: `Ougr`, Since: 3.0.0
494
- * @HB_SCRIPT_TANGSA: `Tnsa`, Since: 3.0.0
495
- * @HB_SCRIPT_TOTO: `Toto`, Since: 3.0.0
496
- * @HB_SCRIPT_VITHKUQI: `Vith`, Since: 3.0.0
497
- * @HB_SCRIPT_MATH: `Zmth`, Since: 3.4.0
498
- * @HB_SCRIPT_KAWI: `Kawi`, Since: 5.2.0
499
- * @HB_SCRIPT_NAG_MUNDARI: `Nagm`, Since: 5.2.0
500
- * @HB_SCRIPT_INVALID: No script set
501
- *
502
- * Data type for scripts. Each #hb_script_t's value is an #hb_tag_t corresponding
503
- * to the four-letter values defined by [ISO 15924](https://unicode.org/iso15924/).
504
- *
505
- * See also the Script (sc) property of the Unicode Character Database.
506
- *
507
- **/
508
-
509
- /* https://docs.google.com/spreadsheets/d/1Y90M0Ie3MUJ6UVCRDOypOtijlMDLNNyyLk36T6iMu0o */
510
- typedef enum
511
- {
512
- HB_SCRIPT_COMMON = HB_TAG ('Z','y','y','y'), /*1.1*/
513
- HB_SCRIPT_INHERITED = HB_TAG ('Z','i','n','h'), /*1.1*/
514
- HB_SCRIPT_UNKNOWN = HB_TAG ('Z','z','z','z'), /*5.0*/
515
-
516
- HB_SCRIPT_ARABIC = HB_TAG ('A','r','a','b'), /*1.1*/
517
- HB_SCRIPT_ARMENIAN = HB_TAG ('A','r','m','n'), /*1.1*/
518
- HB_SCRIPT_BENGALI = HB_TAG ('B','e','n','g'), /*1.1*/
519
- HB_SCRIPT_CYRILLIC = HB_TAG ('C','y','r','l'), /*1.1*/
520
- HB_SCRIPT_DEVANAGARI = HB_TAG ('D','e','v','a'), /*1.1*/
521
- HB_SCRIPT_GEORGIAN = HB_TAG ('G','e','o','r'), /*1.1*/
522
- HB_SCRIPT_GREEK = HB_TAG ('G','r','e','k'), /*1.1*/
523
- HB_SCRIPT_GUJARATI = HB_TAG ('G','u','j','r'), /*1.1*/
524
- HB_SCRIPT_GURMUKHI = HB_TAG ('G','u','r','u'), /*1.1*/
525
- HB_SCRIPT_HANGUL = HB_TAG ('H','a','n','g'), /*1.1*/
526
- HB_SCRIPT_HAN = HB_TAG ('H','a','n','i'), /*1.1*/
527
- HB_SCRIPT_HEBREW = HB_TAG ('H','e','b','r'), /*1.1*/
528
- HB_SCRIPT_HIRAGANA = HB_TAG ('H','i','r','a'), /*1.1*/
529
- HB_SCRIPT_KANNADA = HB_TAG ('K','n','d','a'), /*1.1*/
530
- HB_SCRIPT_KATAKANA = HB_TAG ('K','a','n','a'), /*1.1*/
531
- HB_SCRIPT_LAO = HB_TAG ('L','a','o','o'), /*1.1*/
532
- HB_SCRIPT_LATIN = HB_TAG ('L','a','t','n'), /*1.1*/
533
- HB_SCRIPT_MALAYALAM = HB_TAG ('M','l','y','m'), /*1.1*/
534
- HB_SCRIPT_ORIYA = HB_TAG ('O','r','y','a'), /*1.1*/
535
- HB_SCRIPT_TAMIL = HB_TAG ('T','a','m','l'), /*1.1*/
536
- HB_SCRIPT_TELUGU = HB_TAG ('T','e','l','u'), /*1.1*/
537
- HB_SCRIPT_THAI = HB_TAG ('T','h','a','i'), /*1.1*/
538
-
539
- HB_SCRIPT_TIBETAN = HB_TAG ('T','i','b','t'), /*2.0*/
540
-
541
- HB_SCRIPT_BOPOMOFO = HB_TAG ('B','o','p','o'), /*3.0*/
542
- HB_SCRIPT_BRAILLE = HB_TAG ('B','r','a','i'), /*3.0*/
543
- HB_SCRIPT_CANADIAN_SYLLABICS = HB_TAG ('C','a','n','s'), /*3.0*/
544
- HB_SCRIPT_CHEROKEE = HB_TAG ('C','h','e','r'), /*3.0*/
545
- HB_SCRIPT_ETHIOPIC = HB_TAG ('E','t','h','i'), /*3.0*/
546
- HB_SCRIPT_KHMER = HB_TAG ('K','h','m','r'), /*3.0*/
547
- HB_SCRIPT_MONGOLIAN = HB_TAG ('M','o','n','g'), /*3.0*/
548
- HB_SCRIPT_MYANMAR = HB_TAG ('M','y','m','r'), /*3.0*/
549
- HB_SCRIPT_OGHAM = HB_TAG ('O','g','a','m'), /*3.0*/
550
- HB_SCRIPT_RUNIC = HB_TAG ('R','u','n','r'), /*3.0*/
551
- HB_SCRIPT_SINHALA = HB_TAG ('S','i','n','h'), /*3.0*/
552
- HB_SCRIPT_SYRIAC = HB_TAG ('S','y','r','c'), /*3.0*/
553
- HB_SCRIPT_THAANA = HB_TAG ('T','h','a','a'), /*3.0*/
554
- HB_SCRIPT_YI = HB_TAG ('Y','i','i','i'), /*3.0*/
555
-
556
- HB_SCRIPT_DESERET = HB_TAG ('D','s','r','t'), /*3.1*/
557
- HB_SCRIPT_GOTHIC = HB_TAG ('G','o','t','h'), /*3.1*/
558
- HB_SCRIPT_OLD_ITALIC = HB_TAG ('I','t','a','l'), /*3.1*/
559
-
560
- HB_SCRIPT_BUHID = HB_TAG ('B','u','h','d'), /*3.2*/
561
- HB_SCRIPT_HANUNOO = HB_TAG ('H','a','n','o'), /*3.2*/
562
- HB_SCRIPT_TAGALOG = HB_TAG ('T','g','l','g'), /*3.2*/
563
- HB_SCRIPT_TAGBANWA = HB_TAG ('T','a','g','b'), /*3.2*/
564
-
565
- HB_SCRIPT_CYPRIOT = HB_TAG ('C','p','r','t'), /*4.0*/
566
- HB_SCRIPT_LIMBU = HB_TAG ('L','i','m','b'), /*4.0*/
567
- HB_SCRIPT_LINEAR_B = HB_TAG ('L','i','n','b'), /*4.0*/
568
- HB_SCRIPT_OSMANYA = HB_TAG ('O','s','m','a'), /*4.0*/
569
- HB_SCRIPT_SHAVIAN = HB_TAG ('S','h','a','w'), /*4.0*/
570
- HB_SCRIPT_TAI_LE = HB_TAG ('T','a','l','e'), /*4.0*/
571
- HB_SCRIPT_UGARITIC = HB_TAG ('U','g','a','r'), /*4.0*/
572
-
573
- HB_SCRIPT_BUGINESE = HB_TAG ('B','u','g','i'), /*4.1*/
574
- HB_SCRIPT_COPTIC = HB_TAG ('C','o','p','t'), /*4.1*/
575
- HB_SCRIPT_GLAGOLITIC = HB_TAG ('G','l','a','g'), /*4.1*/
576
- HB_SCRIPT_KHAROSHTHI = HB_TAG ('K','h','a','r'), /*4.1*/
577
- HB_SCRIPT_NEW_TAI_LUE = HB_TAG ('T','a','l','u'), /*4.1*/
578
- HB_SCRIPT_OLD_PERSIAN = HB_TAG ('X','p','e','o'), /*4.1*/
579
- HB_SCRIPT_SYLOTI_NAGRI = HB_TAG ('S','y','l','o'), /*4.1*/
580
- HB_SCRIPT_TIFINAGH = HB_TAG ('T','f','n','g'), /*4.1*/
581
-
582
- HB_SCRIPT_BALINESE = HB_TAG ('B','a','l','i'), /*5.0*/
583
- HB_SCRIPT_CUNEIFORM = HB_TAG ('X','s','u','x'), /*5.0*/
584
- HB_SCRIPT_NKO = HB_TAG ('N','k','o','o'), /*5.0*/
585
- HB_SCRIPT_PHAGS_PA = HB_TAG ('P','h','a','g'), /*5.0*/
586
- HB_SCRIPT_PHOENICIAN = HB_TAG ('P','h','n','x'), /*5.0*/
587
-
588
- HB_SCRIPT_CARIAN = HB_TAG ('C','a','r','i'), /*5.1*/
589
- HB_SCRIPT_CHAM = HB_TAG ('C','h','a','m'), /*5.1*/
590
- HB_SCRIPT_KAYAH_LI = HB_TAG ('K','a','l','i'), /*5.1*/
591
- HB_SCRIPT_LEPCHA = HB_TAG ('L','e','p','c'), /*5.1*/
592
- HB_SCRIPT_LYCIAN = HB_TAG ('L','y','c','i'), /*5.1*/
593
- HB_SCRIPT_LYDIAN = HB_TAG ('L','y','d','i'), /*5.1*/
594
- HB_SCRIPT_OL_CHIKI = HB_TAG ('O','l','c','k'), /*5.1*/
595
- HB_SCRIPT_REJANG = HB_TAG ('R','j','n','g'), /*5.1*/
596
- HB_SCRIPT_SAURASHTRA = HB_TAG ('S','a','u','r'), /*5.1*/
597
- HB_SCRIPT_SUNDANESE = HB_TAG ('S','u','n','d'), /*5.1*/
598
- HB_SCRIPT_VAI = HB_TAG ('V','a','i','i'), /*5.1*/
599
-
600
- HB_SCRIPT_AVESTAN = HB_TAG ('A','v','s','t'), /*5.2*/
601
- HB_SCRIPT_BAMUM = HB_TAG ('B','a','m','u'), /*5.2*/
602
- HB_SCRIPT_EGYPTIAN_HIEROGLYPHS = HB_TAG ('E','g','y','p'), /*5.2*/
603
- HB_SCRIPT_IMPERIAL_ARAMAIC = HB_TAG ('A','r','m','i'), /*5.2*/
604
- HB_SCRIPT_INSCRIPTIONAL_PAHLAVI = HB_TAG ('P','h','l','i'), /*5.2*/
605
- HB_SCRIPT_INSCRIPTIONAL_PARTHIAN = HB_TAG ('P','r','t','i'), /*5.2*/
606
- HB_SCRIPT_JAVANESE = HB_TAG ('J','a','v','a'), /*5.2*/
607
- HB_SCRIPT_KAITHI = HB_TAG ('K','t','h','i'), /*5.2*/
608
- HB_SCRIPT_LISU = HB_TAG ('L','i','s','u'), /*5.2*/
609
- HB_SCRIPT_MEETEI_MAYEK = HB_TAG ('M','t','e','i'), /*5.2*/
610
- HB_SCRIPT_OLD_SOUTH_ARABIAN = HB_TAG ('S','a','r','b'), /*5.2*/
611
- HB_SCRIPT_OLD_TURKIC = HB_TAG ('O','r','k','h'), /*5.2*/
612
- HB_SCRIPT_SAMARITAN = HB_TAG ('S','a','m','r'), /*5.2*/
613
- HB_SCRIPT_TAI_THAM = HB_TAG ('L','a','n','a'), /*5.2*/
614
- HB_SCRIPT_TAI_VIET = HB_TAG ('T','a','v','t'), /*5.2*/
615
-
616
- HB_SCRIPT_BATAK = HB_TAG ('B','a','t','k'), /*6.0*/
617
- HB_SCRIPT_BRAHMI = HB_TAG ('B','r','a','h'), /*6.0*/
618
- HB_SCRIPT_MANDAIC = HB_TAG ('M','a','n','d'), /*6.0*/
619
-
620
- HB_SCRIPT_CHAKMA = HB_TAG ('C','a','k','m'), /*6.1*/
621
- HB_SCRIPT_MEROITIC_CURSIVE = HB_TAG ('M','e','r','c'), /*6.1*/
622
- HB_SCRIPT_MEROITIC_HIEROGLYPHS = HB_TAG ('M','e','r','o'), /*6.1*/
623
- HB_SCRIPT_MIAO = HB_TAG ('P','l','r','d'), /*6.1*/
624
- HB_SCRIPT_SHARADA = HB_TAG ('S','h','r','d'), /*6.1*/
625
- HB_SCRIPT_SORA_SOMPENG = HB_TAG ('S','o','r','a'), /*6.1*/
626
- HB_SCRIPT_TAKRI = HB_TAG ('T','a','k','r'), /*6.1*/
627
-
628
- /*
629
- * Since: 0.9.30
630
- */
631
- HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), /*7.0*/
632
- HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), /*7.0*/
633
- HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), /*7.0*/
634
- HB_SCRIPT_ELBASAN = HB_TAG ('E','l','b','a'), /*7.0*/
635
- HB_SCRIPT_GRANTHA = HB_TAG ('G','r','a','n'), /*7.0*/
636
- HB_SCRIPT_KHOJKI = HB_TAG ('K','h','o','j'), /*7.0*/
637
- HB_SCRIPT_KHUDAWADI = HB_TAG ('S','i','n','d'), /*7.0*/
638
- HB_SCRIPT_LINEAR_A = HB_TAG ('L','i','n','a'), /*7.0*/
639
- HB_SCRIPT_MAHAJANI = HB_TAG ('M','a','h','j'), /*7.0*/
640
- HB_SCRIPT_MANICHAEAN = HB_TAG ('M','a','n','i'), /*7.0*/
641
- HB_SCRIPT_MENDE_KIKAKUI = HB_TAG ('M','e','n','d'), /*7.0*/
642
- HB_SCRIPT_MODI = HB_TAG ('M','o','d','i'), /*7.0*/
643
- HB_SCRIPT_MRO = HB_TAG ('M','r','o','o'), /*7.0*/
644
- HB_SCRIPT_NABATAEAN = HB_TAG ('N','b','a','t'), /*7.0*/
645
- HB_SCRIPT_OLD_NORTH_ARABIAN = HB_TAG ('N','a','r','b'), /*7.0*/
646
- HB_SCRIPT_OLD_PERMIC = HB_TAG ('P','e','r','m'), /*7.0*/
647
- HB_SCRIPT_PAHAWH_HMONG = HB_TAG ('H','m','n','g'), /*7.0*/
648
- HB_SCRIPT_PALMYRENE = HB_TAG ('P','a','l','m'), /*7.0*/
649
- HB_SCRIPT_PAU_CIN_HAU = HB_TAG ('P','a','u','c'), /*7.0*/
650
- HB_SCRIPT_PSALTER_PAHLAVI = HB_TAG ('P','h','l','p'), /*7.0*/
651
- HB_SCRIPT_SIDDHAM = HB_TAG ('S','i','d','d'), /*7.0*/
652
- HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/
653
- HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), /*7.0*/
654
-
655
- HB_SCRIPT_AHOM = HB_TAG ('A','h','o','m'), /*8.0*/
656
- HB_SCRIPT_ANATOLIAN_HIEROGLYPHS = HB_TAG ('H','l','u','w'), /*8.0*/
657
- HB_SCRIPT_HATRAN = HB_TAG ('H','a','t','r'), /*8.0*/
658
- HB_SCRIPT_MULTANI = HB_TAG ('M','u','l','t'), /*8.0*/
659
- HB_SCRIPT_OLD_HUNGARIAN = HB_TAG ('H','u','n','g'), /*8.0*/
660
- HB_SCRIPT_SIGNWRITING = HB_TAG ('S','g','n','w'), /*8.0*/
661
-
662
- /*
663
- * Since 1.3.0
664
- */
665
- HB_SCRIPT_ADLAM = HB_TAG ('A','d','l','m'), /*9.0*/
666
- HB_SCRIPT_BHAIKSUKI = HB_TAG ('B','h','k','s'), /*9.0*/
667
- HB_SCRIPT_MARCHEN = HB_TAG ('M','a','r','c'), /*9.0*/
668
- HB_SCRIPT_OSAGE = HB_TAG ('O','s','g','e'), /*9.0*/
669
- HB_SCRIPT_TANGUT = HB_TAG ('T','a','n','g'), /*9.0*/
670
- HB_SCRIPT_NEWA = HB_TAG ('N','e','w','a'), /*9.0*/
671
-
672
- /*
673
- * Since 1.6.0
674
- */
675
- HB_SCRIPT_MASARAM_GONDI = HB_TAG ('G','o','n','m'), /*10.0*/
676
- HB_SCRIPT_NUSHU = HB_TAG ('N','s','h','u'), /*10.0*/
677
- HB_SCRIPT_SOYOMBO = HB_TAG ('S','o','y','o'), /*10.0*/
678
- HB_SCRIPT_ZANABAZAR_SQUARE = HB_TAG ('Z','a','n','b'), /*10.0*/
679
-
680
- /*
681
- * Since 1.8.0
682
- */
683
- HB_SCRIPT_DOGRA = HB_TAG ('D','o','g','r'), /*11.0*/
684
- HB_SCRIPT_GUNJALA_GONDI = HB_TAG ('G','o','n','g'), /*11.0*/
685
- HB_SCRIPT_HANIFI_ROHINGYA = HB_TAG ('R','o','h','g'), /*11.0*/
686
- HB_SCRIPT_MAKASAR = HB_TAG ('M','a','k','a'), /*11.0*/
687
- HB_SCRIPT_MEDEFAIDRIN = HB_TAG ('M','e','d','f'), /*11.0*/
688
- HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'), /*11.0*/
689
- HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'), /*11.0*/
690
-
691
- /*
692
- * Since 2.4.0
693
- */
694
- HB_SCRIPT_ELYMAIC = HB_TAG ('E','l','y','m'), /*12.0*/
695
- HB_SCRIPT_NANDINAGARI = HB_TAG ('N','a','n','d'), /*12.0*/
696
- HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = HB_TAG ('H','m','n','p'), /*12.0*/
697
- HB_SCRIPT_WANCHO = HB_TAG ('W','c','h','o'), /*12.0*/
698
-
699
- /*
700
- * Since 2.6.7
701
- */
702
- HB_SCRIPT_CHORASMIAN = HB_TAG ('C','h','r','s'), /*13.0*/
703
- HB_SCRIPT_DIVES_AKURU = HB_TAG ('D','i','a','k'), /*13.0*/
704
- HB_SCRIPT_KHITAN_SMALL_SCRIPT = HB_TAG ('K','i','t','s'), /*13.0*/
705
- HB_SCRIPT_YEZIDI = HB_TAG ('Y','e','z','i'), /*13.0*/
706
-
707
- /*
708
- * Since 3.0.0
709
- */
710
- HB_SCRIPT_CYPRO_MINOAN = HB_TAG ('C','p','m','n'), /*14.0*/
711
- HB_SCRIPT_OLD_UYGHUR = HB_TAG ('O','u','g','r'), /*14.0*/
712
- HB_SCRIPT_TANGSA = HB_TAG ('T','n','s','a'), /*14.0*/
713
- HB_SCRIPT_TOTO = HB_TAG ('T','o','t','o'), /*14.0*/
714
- HB_SCRIPT_VITHKUQI = HB_TAG ('V','i','t','h'), /*14.0*/
715
-
716
- /*
717
- * Since 3.4.0
718
- */
719
- HB_SCRIPT_MATH = HB_TAG ('Z','m','t','h'),
720
-
721
- /*
722
- * Since 5.2.0
723
- */
724
- HB_SCRIPT_KAWI = HB_TAG ('K','a','w','i'), /*15.0*/
725
- HB_SCRIPT_NAG_MUNDARI = HB_TAG ('N','a','g','m'), /*15.0*/
726
-
727
- /* No script set. */
728
- HB_SCRIPT_INVALID = HB_TAG_NONE,
729
-
730
- /*< private >*/
731
-
732
- /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t
733
- * without risking undefined behavior. We have two, for historical reasons.
734
- * HB_TAG_MAX used to be unsigned, but that was invalid Ansi C, so was changed
735
- * to _HB_SCRIPT_MAX_VALUE to be equal to HB_TAG_MAX_SIGNED as well.
736
- *
737
- * See this thread for technicalities:
738
- *
739
- * https://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html
740
- */
741
- _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX_SIGNED, /*< skip >*/
742
- _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/
743
-
744
- } hb_script_t;
745
-
746
-
747
- /* Script functions */
748
-
749
- HB_EXTERN hb_script_t
750
- hb_script_from_iso15924_tag (hb_tag_t tag);
751
-
752
- HB_EXTERN hb_script_t
753
- hb_script_from_string (const char *str, int len);
754
-
755
- HB_EXTERN hb_tag_t
756
- hb_script_to_iso15924_tag (hb_script_t script);
757
-
758
- HB_EXTERN hb_direction_t
759
- hb_script_get_horizontal_direction (hb_script_t script);
760
-
761
-
762
- /* User data */
763
-
764
- /**
765
- * hb_user_data_key_t:
766
- *
767
- * Data structure for holding user-data keys.
768
- *
769
- **/
770
- typedef struct hb_user_data_key_t {
771
- /*< private >*/
772
- char unused;
773
- } hb_user_data_key_t;
774
-
775
- /**
776
- * hb_destroy_func_t:
777
- * @user_data: the data to be destroyed
778
- *
779
- * A virtual method for destroy user-data callbacks.
780
- *
781
- */
782
- typedef void (*hb_destroy_func_t) (void *user_data);
783
-
784
-
785
- /* Font features and variations. */
786
-
787
- /**
788
- * HB_FEATURE_GLOBAL_START:
789
- *
790
- * Special setting for #hb_feature_t.start to apply the feature from the start
791
- * of the buffer.
792
- *
793
- * Since: 2.0.0
794
- */
795
- #define HB_FEATURE_GLOBAL_START 0
796
-
797
- /**
798
- * HB_FEATURE_GLOBAL_END:
799
- *
800
- * Special setting for #hb_feature_t.end to apply the feature from to the end
801
- * of the buffer.
802
- *
803
- * Since: 2.0.0
804
- */
805
- #define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
806
-
807
- /**
808
- * hb_feature_t:
809
- * @tag: The #hb_tag_t tag of the feature
810
- * @value: The value of the feature. 0 disables the feature, non-zero (usually
811
- * 1) enables the feature. For features implemented as lookup type 3 (like
812
- * 'salt') the @value is a one based index into the alternates.
813
- * @start: the cluster to start applying this feature setting (inclusive).
814
- * @end: the cluster to end applying this feature setting (exclusive).
815
- *
816
- * The #hb_feature_t is the structure that holds information about requested
817
- * feature application. The feature will be applied with the given value to all
818
- * glyphs which are in clusters between @start (inclusive) and @end (exclusive).
819
- * Setting start to #HB_FEATURE_GLOBAL_START and end to #HB_FEATURE_GLOBAL_END
820
- * specifies that the feature always applies to the entire buffer.
821
- */
822
- typedef struct hb_feature_t {
823
- hb_tag_t tag;
824
- uint32_t value;
825
- unsigned int start;
826
- unsigned int end;
827
- } hb_feature_t;
828
-
829
- HB_EXTERN hb_bool_t
830
- hb_feature_from_string (const char *str, int len,
831
- hb_feature_t *feature);
832
-
833
- HB_EXTERN void
834
- hb_feature_to_string (hb_feature_t *feature,
835
- char *buf, unsigned int size);
836
-
837
- /**
838
- * hb_variation_t:
839
- * @tag: The #hb_tag_t tag of the variation-axis name
840
- * @value: The value of the variation axis
841
- *
842
- * Data type for holding variation data. Registered OpenType
843
- * variation-axis tags are listed in
844
- * [OpenType Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg).
845
- *
846
- * Since: 1.4.2
847
- */
848
- typedef struct hb_variation_t {
849
- hb_tag_t tag;
850
- float value;
851
- } hb_variation_t;
852
-
853
- HB_EXTERN hb_bool_t
854
- hb_variation_from_string (const char *str, int len,
855
- hb_variation_t *variation);
856
-
857
- HB_EXTERN void
858
- hb_variation_to_string (hb_variation_t *variation,
859
- char *buf, unsigned int size);
860
-
861
- /**
862
- * hb_color_t:
863
- *
864
- * Data type for holding color values. Colors are eight bits per
865
- * channel RGB plus alpha transparency.
866
- *
867
- * Since: 2.1.0
868
- */
869
- typedef uint32_t hb_color_t;
870
-
871
- /**
872
- * HB_COLOR:
873
- * @b: blue channel value
874
- * @g: green channel value
875
- * @r: red channel value
876
- * @a: alpha channel value
877
- *
878
- * Constructs an #hb_color_t from four integers.
879
- *
880
- * Since: 2.1.0
881
- */
882
- #define HB_COLOR(b,g,r,a) ((hb_color_t) HB_TAG ((b),(g),(r),(a)))
883
-
884
- HB_EXTERN uint8_t
885
- hb_color_get_alpha (hb_color_t color);
886
- #define hb_color_get_alpha(color) ((color) & 0xFF)
887
-
888
- HB_EXTERN uint8_t
889
- hb_color_get_red (hb_color_t color);
890
- #define hb_color_get_red(color) (((color) >> 8) & 0xFF)
891
-
892
- HB_EXTERN uint8_t
893
- hb_color_get_green (hb_color_t color);
894
- #define hb_color_get_green(color) (((color) >> 16) & 0xFF)
895
-
896
- HB_EXTERN uint8_t
897
- hb_color_get_blue (hb_color_t color);
898
- #define hb_color_get_blue(color) (((color) >> 24) & 0xFF)
899
-
900
- HB_END_DECLS
901
-
902
- #endif /* HB_COMMON_H */