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,799 +0,0 @@
1
- /*
2
- * Copyright © 1998-2004 David Turner and Werner Lemberg
3
- * Copyright © 2004,2007,2009 Red Hat, Inc.
4
- * Copyright © 2011,2012 Google, Inc.
5
- *
6
- * This is part of HarfBuzz, a text shaping library.
7
- *
8
- * Permission is hereby granted, without written agreement and without
9
- * license or royalty fees, to use, copy, modify, and distribute this
10
- * software and its documentation for any purpose, provided that the
11
- * above copyright notice and the following two paragraphs appear in
12
- * all copies of this software.
13
- *
14
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18
- * DAMAGE.
19
- *
20
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
25
- *
26
- * Red Hat Author(s): Owen Taylor, Behdad Esfahbod
27
- * Google Author(s): Behdad Esfahbod
28
- */
29
-
30
- #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
31
- #error "Include <hb.h> instead."
32
- #endif
33
-
34
- #ifndef HB_BUFFER_H
35
- #define HB_BUFFER_H
36
-
37
- #include "hb-common.h"
38
- #include "hb-unicode.h"
39
- #include "hb-font.h"
40
-
41
- HB_BEGIN_DECLS
42
-
43
- /**
44
- * hb_glyph_info_t:
45
- * @codepoint: either a Unicode code point (before shaping) or a glyph index
46
- * (after shaping).
47
- * @cluster: the index of the character in the original text that corresponds
48
- * to this #hb_glyph_info_t, or whatever the client passes to
49
- * hb_buffer_add(). More than one #hb_glyph_info_t can have the same
50
- * @cluster value, if they resulted from the same character (e.g. one
51
- * to many glyph substitution), and when more than one character gets
52
- * merged in the same glyph (e.g. many to one glyph substitution) the
53
- * #hb_glyph_info_t will have the smallest cluster value of them.
54
- * By default some characters are merged into the same cluster
55
- * (e.g. combining marks have the same cluster as their bases)
56
- * even if they are separate glyphs, hb_buffer_set_cluster_level()
57
- * allow selecting more fine-grained cluster handling.
58
- *
59
- * The #hb_glyph_info_t is the structure that holds information about the
60
- * glyphs and their relation to input text.
61
- */
62
- typedef struct hb_glyph_info_t {
63
- hb_codepoint_t codepoint;
64
- /*< private >*/
65
- hb_mask_t mask;
66
- /*< public >*/
67
- uint32_t cluster;
68
-
69
- /*< private >*/
70
- hb_var_int_t var1;
71
- hb_var_int_t var2;
72
- } hb_glyph_info_t;
73
-
74
- /**
75
- * hb_glyph_flags_t:
76
- * @HB_GLYPH_FLAG_UNSAFE_TO_BREAK: Indicates that if input text is broken at the
77
- * beginning of the cluster this glyph is part of,
78
- * then both sides need to be re-shaped, as the
79
- * result might be different.
80
- * On the flip side, it means that when this
81
- * flag is not present, then it is safe to break
82
- * the glyph-run at the beginning of this
83
- * cluster, and the two sides will represent the
84
- * exact same result one would get if breaking
85
- * input text at the beginning of this cluster
86
- * and shaping the two sides separately.
87
- * This can be used to optimize paragraph
88
- * layout, by avoiding re-shaping of each line
89
- * after line-breaking.
90
- * @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT: Indicates that if input text is changed on one
91
- * side of the beginning of the cluster this glyph
92
- * is part of, then the shaping results for the
93
- * other side might change.
94
- * Note that the absence of this flag will NOT by
95
- * itself mean that it IS safe to concat text.
96
- * Only two pieces of text both of which clear of
97
- * this flag can be concatenated safely.
98
- * This can be used to optimize paragraph
99
- * layout, by avoiding re-shaping of each line
100
- * after line-breaking, by limiting the
101
- * reshaping to a small piece around the
102
- * breaking positin only, even if the breaking
103
- * position carries the
104
- * #HB_GLYPH_FLAG_UNSAFE_TO_BREAK or when
105
- * hyphenation or other text transformation
106
- * happens at line-break position, in the following
107
- * way:
108
- * 1. Iterate back from the line-break position
109
- * until the first cluster start position that is
110
- * NOT unsafe-to-concat, 2. shape the segment from
111
- * there till the end of line, 3. check whether the
112
- * resulting glyph-run also is clear of the
113
- * unsafe-to-concat at its start-of-text position;
114
- * if it is, just splice it into place and the line
115
- * is shaped; If not, move on to a position further
116
- * back that is clear of unsafe-to-concat and retry
117
- * from there, and repeat.
118
- * At the start of next line a similar algorithm can
119
- * be implemented. That is: 1. Iterate forward from
120
- * the line-break position until the first cluster
121
- * start position that is NOT unsafe-to-concat, 2.
122
- * shape the segment from beginning of the line to
123
- * that position, 3. check whether the resulting
124
- * glyph-run also is clear of the unsafe-to-concat
125
- * at its end-of-text position; if it is, just splice
126
- * it into place and the beginning is shaped; If not,
127
- * move on to a position further forward that is clear
128
- * of unsafe-to-concat and retry up to there, and repeat.
129
- * A slight complication will arise in the
130
- * implementation of the algorithm above,
131
- * because while our buffer API has a way to
132
- * return flags for position corresponding to
133
- * start-of-text, there is currently no position
134
- * corresponding to end-of-text. This limitation
135
- * can be alleviated by shaping more text than needed
136
- * and looking for unsafe-to-concat flag within text
137
- * clusters.
138
- * The #HB_GLYPH_FLAG_UNSAFE_TO_BREAK flag will
139
- * always imply this flag.
140
- * To use this flag, you must enable the buffer flag
141
- * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT during
142
- * shaping, otherwise the buffer flag will not be
143
- * reliably produced.
144
- * Since: 4.0.0
145
- * @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL: In scripts that use elongation (Arabic,
146
- Mongolian, Syriac, etc.), this flag signifies
147
- that it is safe to insert a U+0640 TATWEEL
148
- character before this cluster for elongation.
149
- This flag does not determine the
150
- script-specific elongation places, but only
151
- when it is safe to do the elongation without
152
- interrupting text shaping.
153
- Since: 5.1.0
154
- * @HB_GLYPH_FLAG_DEFINED: All the currently defined flags.
155
- *
156
- * Flags for #hb_glyph_info_t.
157
- *
158
- * Since: 1.5.0
159
- */
160
- typedef enum { /*< flags >*/
161
- HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001,
162
- HB_GLYPH_FLAG_UNSAFE_TO_CONCAT = 0x00000002,
163
- HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL = 0x00000004,
164
-
165
- HB_GLYPH_FLAG_DEFINED = 0x00000007 /* OR of all defined flags */
166
- } hb_glyph_flags_t;
167
-
168
- HB_EXTERN hb_glyph_flags_t
169
- hb_glyph_info_get_glyph_flags (const hb_glyph_info_t *info);
170
-
171
- #define hb_glyph_info_get_glyph_flags(info) \
172
- ((hb_glyph_flags_t) ((unsigned int) (info)->mask & HB_GLYPH_FLAG_DEFINED))
173
-
174
-
175
- /**
176
- * hb_glyph_position_t:
177
- * @x_advance: how much the line advances after drawing this glyph when setting
178
- * text in horizontal direction.
179
- * @y_advance: how much the line advances after drawing this glyph when setting
180
- * text in vertical direction.
181
- * @x_offset: how much the glyph moves on the X-axis before drawing it, this
182
- * should not affect how much the line advances.
183
- * @y_offset: how much the glyph moves on the Y-axis before drawing it, this
184
- * should not affect how much the line advances.
185
- *
186
- * The #hb_glyph_position_t is the structure that holds the positions of the
187
- * glyph in both horizontal and vertical directions. All positions in
188
- * #hb_glyph_position_t are relative to the current point.
189
- *
190
- */
191
- typedef struct hb_glyph_position_t {
192
- hb_position_t x_advance;
193
- hb_position_t y_advance;
194
- hb_position_t x_offset;
195
- hb_position_t y_offset;
196
-
197
- /*< private >*/
198
- hb_var_int_t var;
199
- } hb_glyph_position_t;
200
-
201
- /**
202
- * hb_segment_properties_t:
203
- * @direction: the #hb_direction_t of the buffer, see hb_buffer_set_direction().
204
- * @script: the #hb_script_t of the buffer, see hb_buffer_set_script().
205
- * @language: the #hb_language_t of the buffer, see hb_buffer_set_language().
206
- *
207
- * The structure that holds various text properties of an #hb_buffer_t. Can be
208
- * set and retrieved using hb_buffer_set_segment_properties() and
209
- * hb_buffer_get_segment_properties(), respectively.
210
- */
211
- typedef struct hb_segment_properties_t {
212
- hb_direction_t direction;
213
- hb_script_t script;
214
- hb_language_t language;
215
- /*< private >*/
216
- void *reserved1;
217
- void *reserved2;
218
- } hb_segment_properties_t;
219
-
220
- /**
221
- * HB_SEGMENT_PROPERTIES_DEFAULT:
222
- *
223
- * The default #hb_segment_properties_t of of freshly created #hb_buffer_t.
224
- */
225
- #define HB_SEGMENT_PROPERTIES_DEFAULT {HB_DIRECTION_INVALID, \
226
- HB_SCRIPT_INVALID, \
227
- HB_LANGUAGE_INVALID, \
228
- (void *) 0, \
229
- (void *) 0}
230
-
231
- HB_EXTERN hb_bool_t
232
- hb_segment_properties_equal (const hb_segment_properties_t *a,
233
- const hb_segment_properties_t *b);
234
-
235
- HB_EXTERN unsigned int
236
- hb_segment_properties_hash (const hb_segment_properties_t *p);
237
-
238
- HB_EXTERN void
239
- hb_segment_properties_overlay (hb_segment_properties_t *p,
240
- const hb_segment_properties_t *src);
241
-
242
-
243
- /**
244
- * hb_buffer_t:
245
- *
246
- * The main structure holding the input text and its properties before shaping,
247
- * and output glyphs and their information after shaping.
248
- */
249
-
250
- typedef struct hb_buffer_t hb_buffer_t;
251
-
252
- HB_EXTERN hb_buffer_t *
253
- hb_buffer_create (void);
254
-
255
- HB_EXTERN hb_buffer_t *
256
- hb_buffer_create_similar (const hb_buffer_t *src);
257
-
258
- HB_EXTERN void
259
- hb_buffer_reset (hb_buffer_t *buffer);
260
-
261
-
262
- HB_EXTERN hb_buffer_t *
263
- hb_buffer_get_empty (void);
264
-
265
- HB_EXTERN hb_buffer_t *
266
- hb_buffer_reference (hb_buffer_t *buffer);
267
-
268
- HB_EXTERN void
269
- hb_buffer_destroy (hb_buffer_t *buffer);
270
-
271
- HB_EXTERN hb_bool_t
272
- hb_buffer_set_user_data (hb_buffer_t *buffer,
273
- hb_user_data_key_t *key,
274
- void * data,
275
- hb_destroy_func_t destroy,
276
- hb_bool_t replace);
277
-
278
- HB_EXTERN void *
279
- hb_buffer_get_user_data (const hb_buffer_t *buffer,
280
- hb_user_data_key_t *key);
281
-
282
-
283
- /**
284
- * hb_buffer_content_type_t:
285
- * @HB_BUFFER_CONTENT_TYPE_INVALID: Initial value for new buffer.
286
- * @HB_BUFFER_CONTENT_TYPE_UNICODE: The buffer contains input characters (before shaping).
287
- * @HB_BUFFER_CONTENT_TYPE_GLYPHS: The buffer contains output glyphs (after shaping).
288
- *
289
- * The type of #hb_buffer_t contents.
290
- */
291
- typedef enum {
292
- HB_BUFFER_CONTENT_TYPE_INVALID = 0,
293
- HB_BUFFER_CONTENT_TYPE_UNICODE,
294
- HB_BUFFER_CONTENT_TYPE_GLYPHS
295
- } hb_buffer_content_type_t;
296
-
297
- HB_EXTERN void
298
- hb_buffer_set_content_type (hb_buffer_t *buffer,
299
- hb_buffer_content_type_t content_type);
300
-
301
- HB_EXTERN hb_buffer_content_type_t
302
- hb_buffer_get_content_type (const hb_buffer_t *buffer);
303
-
304
-
305
- HB_EXTERN void
306
- hb_buffer_set_unicode_funcs (hb_buffer_t *buffer,
307
- hb_unicode_funcs_t *unicode_funcs);
308
-
309
- HB_EXTERN hb_unicode_funcs_t *
310
- hb_buffer_get_unicode_funcs (const hb_buffer_t *buffer);
311
-
312
- HB_EXTERN void
313
- hb_buffer_set_direction (hb_buffer_t *buffer,
314
- hb_direction_t direction);
315
-
316
- HB_EXTERN hb_direction_t
317
- hb_buffer_get_direction (const hb_buffer_t *buffer);
318
-
319
- HB_EXTERN void
320
- hb_buffer_set_script (hb_buffer_t *buffer,
321
- hb_script_t script);
322
-
323
- HB_EXTERN hb_script_t
324
- hb_buffer_get_script (const hb_buffer_t *buffer);
325
-
326
- HB_EXTERN void
327
- hb_buffer_set_language (hb_buffer_t *buffer,
328
- hb_language_t language);
329
-
330
-
331
- HB_EXTERN hb_language_t
332
- hb_buffer_get_language (const hb_buffer_t *buffer);
333
-
334
- HB_EXTERN void
335
- hb_buffer_set_segment_properties (hb_buffer_t *buffer,
336
- const hb_segment_properties_t *props);
337
-
338
- HB_EXTERN void
339
- hb_buffer_get_segment_properties (const hb_buffer_t *buffer,
340
- hb_segment_properties_t *props);
341
-
342
- HB_EXTERN void
343
- hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
344
-
345
-
346
- /**
347
- * hb_buffer_flags_t:
348
- * @HB_BUFFER_FLAG_DEFAULT: the default buffer flag.
349
- * @HB_BUFFER_FLAG_BOT: flag indicating that special handling of the beginning
350
- * of text paragraph can be applied to this buffer. Should usually
351
- * be set, unless you are passing to the buffer only part
352
- * of the text without the full context.
353
- * @HB_BUFFER_FLAG_EOT: flag indicating that special handling of the end of text
354
- * paragraph can be applied to this buffer, similar to
355
- * @HB_BUFFER_FLAG_BOT.
356
- * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES:
357
- * flag indication that character with Default_Ignorable
358
- * Unicode property should use the corresponding glyph
359
- * from the font, instead of hiding them (done by
360
- * replacing them with the space glyph and zeroing the
361
- * advance width.) This flag takes precedence over
362
- * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES.
363
- * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES:
364
- * flag indication that character with Default_Ignorable
365
- * Unicode property should be removed from glyph string
366
- * instead of hiding them (done by replacing them with the
367
- * space glyph and zeroing the advance width.)
368
- * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes
369
- * precedence over this flag. Since: 1.8.0
370
- * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE:
371
- * flag indicating that a dotted circle should
372
- * not be inserted in the rendering of incorrect
373
- * character sequences (such at <0905 093E>). Since: 2.4.0
374
- * @HB_BUFFER_FLAG_VERIFY:
375
- * flag indicating that the hb_shape() call and its variants
376
- * should perform various verification processes on the results
377
- * of the shaping operation on the buffer. If the verification
378
- * fails, then either a buffer message is sent, if a message
379
- * handler is installed on the buffer, or a message is written
380
- * to standard error. In either case, the shaping result might
381
- * be modified to show the failed output. Since: 3.4.0
382
- * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT:
383
- * flag indicating that the @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT
384
- * glyph-flag should be produced by the shaper. By default
385
- * it will not be produced since it incurs a cost. Since: 4.0.0
386
- * @HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL:
387
- * flag indicating that the @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL
388
- * glyph-flag should be produced by the shaper. By default
389
- * it will not be produced. Since: 5.1.0
390
- * @HB_BUFFER_FLAG_DEFINED: All currently defined flags: Since: 4.4.0
391
- *
392
- * Flags for #hb_buffer_t.
393
- *
394
- * Since: 0.9.20
395
- */
396
- typedef enum { /*< flags >*/
397
- HB_BUFFER_FLAG_DEFAULT = 0x00000000u,
398
- HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */
399
- HB_BUFFER_FLAG_EOT = 0x00000002u, /* End-of-text */
400
- HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u,
401
- HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u,
402
- HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 0x00000010u,
403
- HB_BUFFER_FLAG_VERIFY = 0x00000020u,
404
- HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT = 0x00000040u,
405
- HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL = 0x00000080u,
406
-
407
- HB_BUFFER_FLAG_DEFINED = 0x000000FFu
408
- } hb_buffer_flags_t;
409
-
410
- HB_EXTERN void
411
- hb_buffer_set_flags (hb_buffer_t *buffer,
412
- hb_buffer_flags_t flags);
413
-
414
- HB_EXTERN hb_buffer_flags_t
415
- hb_buffer_get_flags (const hb_buffer_t *buffer);
416
-
417
- /**
418
- * hb_buffer_cluster_level_t:
419
- * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES: Return cluster values grouped by graphemes into
420
- * monotone order.
421
- * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS: Return cluster values grouped into monotone order.
422
- * @HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: Don't group cluster values.
423
- * @HB_BUFFER_CLUSTER_LEVEL_DEFAULT: Default cluster level,
424
- * equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES.
425
- *
426
- * Data type for holding HarfBuzz's clustering behavior options. The cluster level
427
- * dictates one aspect of how HarfBuzz will treat non-base characters
428
- * during shaping.
429
- *
430
- * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES, non-base
431
- * characters are merged into the cluster of the base character that precedes them.
432
- *
433
- * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS, non-base characters are initially
434
- * assigned their own cluster values, which are not merged into preceding base
435
- * clusters. This allows HarfBuzz to perform additional operations like reorder
436
- * sequences of adjacent marks.
437
- *
438
- * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES is the default, because it maintains
439
- * backward compatibility with older versions of HarfBuzz. New client programs that
440
- * do not need to maintain such backward compatibility are recommended to use
441
- * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS instead of the default.
442
- *
443
- * Since: 0.9.42
444
- */
445
- typedef enum {
446
- HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0,
447
- HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1,
448
- HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2,
449
- HB_BUFFER_CLUSTER_LEVEL_DEFAULT = HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES
450
- } hb_buffer_cluster_level_t;
451
-
452
- HB_EXTERN void
453
- hb_buffer_set_cluster_level (hb_buffer_t *buffer,
454
- hb_buffer_cluster_level_t cluster_level);
455
-
456
- HB_EXTERN hb_buffer_cluster_level_t
457
- hb_buffer_get_cluster_level (const hb_buffer_t *buffer);
458
-
459
- /**
460
- * HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT:
461
- *
462
- * The default code point for replacing invalid characters in a given encoding.
463
- * Set to U+FFFD REPLACEMENT CHARACTER.
464
- *
465
- * Since: 0.9.31
466
- */
467
- #define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
468
-
469
- HB_EXTERN void
470
- hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
471
- hb_codepoint_t replacement);
472
-
473
- HB_EXTERN hb_codepoint_t
474
- hb_buffer_get_replacement_codepoint (const hb_buffer_t *buffer);
475
-
476
- HB_EXTERN void
477
- hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
478
- hb_codepoint_t invisible);
479
-
480
- HB_EXTERN hb_codepoint_t
481
- hb_buffer_get_invisible_glyph (const hb_buffer_t *buffer);
482
-
483
- HB_EXTERN void
484
- hb_buffer_set_not_found_glyph (hb_buffer_t *buffer,
485
- hb_codepoint_t not_found);
486
-
487
- HB_EXTERN hb_codepoint_t
488
- hb_buffer_get_not_found_glyph (const hb_buffer_t *buffer);
489
-
490
-
491
- /*
492
- * Content API.
493
- */
494
-
495
- HB_EXTERN void
496
- hb_buffer_clear_contents (hb_buffer_t *buffer);
497
-
498
- HB_EXTERN hb_bool_t
499
- hb_buffer_pre_allocate (hb_buffer_t *buffer,
500
- unsigned int size);
501
-
502
-
503
- HB_EXTERN hb_bool_t
504
- hb_buffer_allocation_successful (hb_buffer_t *buffer);
505
-
506
- HB_EXTERN void
507
- hb_buffer_reverse (hb_buffer_t *buffer);
508
-
509
- HB_EXTERN void
510
- hb_buffer_reverse_range (hb_buffer_t *buffer,
511
- unsigned int start, unsigned int end);
512
-
513
- HB_EXTERN void
514
- hb_buffer_reverse_clusters (hb_buffer_t *buffer);
515
-
516
-
517
- /* Filling the buffer in */
518
-
519
- HB_EXTERN void
520
- hb_buffer_add (hb_buffer_t *buffer,
521
- hb_codepoint_t codepoint,
522
- unsigned int cluster);
523
-
524
- HB_EXTERN void
525
- hb_buffer_add_utf8 (hb_buffer_t *buffer,
526
- const char *text,
527
- int text_length,
528
- unsigned int item_offset,
529
- int item_length);
530
-
531
- HB_EXTERN void
532
- hb_buffer_add_utf16 (hb_buffer_t *buffer,
533
- const uint16_t *text,
534
- int text_length,
535
- unsigned int item_offset,
536
- int item_length);
537
-
538
- HB_EXTERN void
539
- hb_buffer_add_utf32 (hb_buffer_t *buffer,
540
- const uint32_t *text,
541
- int text_length,
542
- unsigned int item_offset,
543
- int item_length);
544
-
545
- HB_EXTERN void
546
- hb_buffer_add_latin1 (hb_buffer_t *buffer,
547
- const uint8_t *text,
548
- int text_length,
549
- unsigned int item_offset,
550
- int item_length);
551
-
552
- HB_EXTERN void
553
- hb_buffer_add_codepoints (hb_buffer_t *buffer,
554
- const hb_codepoint_t *text,
555
- int text_length,
556
- unsigned int item_offset,
557
- int item_length);
558
-
559
- HB_EXTERN void
560
- hb_buffer_append (hb_buffer_t *buffer,
561
- const hb_buffer_t *source,
562
- unsigned int start,
563
- unsigned int end);
564
-
565
- HB_EXTERN hb_bool_t
566
- hb_buffer_set_length (hb_buffer_t *buffer,
567
- unsigned int length);
568
-
569
- HB_EXTERN unsigned int
570
- hb_buffer_get_length (const hb_buffer_t *buffer);
571
-
572
- /* Getting glyphs out of the buffer */
573
-
574
- HB_EXTERN hb_glyph_info_t *
575
- hb_buffer_get_glyph_infos (hb_buffer_t *buffer,
576
- unsigned int *length);
577
-
578
- HB_EXTERN hb_glyph_position_t *
579
- hb_buffer_get_glyph_positions (hb_buffer_t *buffer,
580
- unsigned int *length);
581
-
582
- HB_EXTERN hb_bool_t
583
- hb_buffer_has_positions (hb_buffer_t *buffer);
584
-
585
-
586
- HB_EXTERN void
587
- hb_buffer_normalize_glyphs (hb_buffer_t *buffer);
588
-
589
-
590
- /*
591
- * Serialize
592
- */
593
-
594
- /**
595
- * hb_buffer_serialize_flags_t:
596
- * @HB_BUFFER_SERIALIZE_FLAG_DEFAULT: serialize glyph names, clusters and positions.
597
- * @HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: do not serialize glyph cluster.
598
- * @HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: do not serialize glyph position information.
599
- * @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name.
600
- * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents.
601
- * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS: serialize glyph flags. Since: 1.5.0
602
- * @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances,
603
- * glyph offsets will reflect absolute glyph positions. Since: 1.8.0
604
- * @HB_BUFFER_SERIALIZE_FLAG_DEFINED: All currently defined flags. Since: 4.4.0
605
- *
606
- * Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs().
607
- *
608
- * Since: 0.9.20
609
- */
610
- typedef enum { /*< flags >*/
611
- HB_BUFFER_SERIALIZE_FLAG_DEFAULT = 0x00000000u,
612
- HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS = 0x00000001u,
613
- HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS = 0x00000002u,
614
- HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 0x00000004u,
615
- HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS = 0x00000008u,
616
- HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS = 0x00000010u,
617
- HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES = 0x00000020u,
618
-
619
- HB_BUFFER_SERIALIZE_FLAG_DEFINED = 0x0000003Fu
620
- } hb_buffer_serialize_flags_t;
621
-
622
- /**
623
- * hb_buffer_serialize_format_t:
624
- * @HB_BUFFER_SERIALIZE_FORMAT_TEXT: a human-readable, plain text format.
625
- * @HB_BUFFER_SERIALIZE_FORMAT_JSON: a machine-readable JSON format.
626
- * @HB_BUFFER_SERIALIZE_FORMAT_INVALID: invalid format.
627
- *
628
- * The buffer serialization and de-serialization format used in
629
- * hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs().
630
- *
631
- * Since: 0.9.2
632
- */
633
- typedef enum {
634
- HB_BUFFER_SERIALIZE_FORMAT_TEXT = HB_TAG('T','E','X','T'),
635
- HB_BUFFER_SERIALIZE_FORMAT_JSON = HB_TAG('J','S','O','N'),
636
- HB_BUFFER_SERIALIZE_FORMAT_INVALID = HB_TAG_NONE
637
- } hb_buffer_serialize_format_t;
638
-
639
- HB_EXTERN hb_buffer_serialize_format_t
640
- hb_buffer_serialize_format_from_string (const char *str, int len);
641
-
642
- HB_EXTERN const char *
643
- hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format);
644
-
645
- HB_EXTERN const char **
646
- hb_buffer_serialize_list_formats (void);
647
-
648
- HB_EXTERN unsigned int
649
- hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
650
- unsigned int start,
651
- unsigned int end,
652
- char *buf,
653
- unsigned int buf_size,
654
- unsigned int *buf_consumed,
655
- hb_font_t *font,
656
- hb_buffer_serialize_format_t format,
657
- hb_buffer_serialize_flags_t flags);
658
-
659
- HB_EXTERN unsigned int
660
- hb_buffer_serialize_unicode (hb_buffer_t *buffer,
661
- unsigned int start,
662
- unsigned int end,
663
- char *buf,
664
- unsigned int buf_size,
665
- unsigned int *buf_consumed,
666
- hb_buffer_serialize_format_t format,
667
- hb_buffer_serialize_flags_t flags);
668
-
669
- HB_EXTERN unsigned int
670
- hb_buffer_serialize (hb_buffer_t *buffer,
671
- unsigned int start,
672
- unsigned int end,
673
- char *buf,
674
- unsigned int buf_size,
675
- unsigned int *buf_consumed,
676
- hb_font_t *font,
677
- hb_buffer_serialize_format_t format,
678
- hb_buffer_serialize_flags_t flags);
679
-
680
- HB_EXTERN hb_bool_t
681
- hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
682
- const char *buf,
683
- int buf_len,
684
- const char **end_ptr,
685
- hb_font_t *font,
686
- hb_buffer_serialize_format_t format);
687
-
688
- HB_EXTERN hb_bool_t
689
- hb_buffer_deserialize_unicode (hb_buffer_t *buffer,
690
- const char *buf,
691
- int buf_len,
692
- const char **end_ptr,
693
- hb_buffer_serialize_format_t format);
694
-
695
-
696
-
697
- /*
698
- * Compare buffers
699
- */
700
-
701
- /**
702
- * hb_buffer_diff_flags_t:
703
- * @HB_BUFFER_DIFF_FLAG_EQUAL: equal buffers.
704
- * @HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH: buffers with different
705
- * #hb_buffer_content_type_t.
706
- * @HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH: buffers with differing length.
707
- * @HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT: `.notdef` glyph is present in the
708
- * reference buffer.
709
- * @HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT: dotted circle glyph is present
710
- * in the reference buffer.
711
- * @HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH: difference in #hb_glyph_info_t.codepoint
712
- * @HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH: difference in #hb_glyph_info_t.cluster
713
- * @HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH: difference in #hb_glyph_flags_t.
714
- * @HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH: difference in #hb_glyph_position_t.
715
- *
716
- * Flags from comparing two #hb_buffer_t's.
717
- *
718
- * Buffer with different #hb_buffer_content_type_t cannot be meaningfully
719
- * compared in any further detail.
720
- *
721
- * For buffers with differing length, the per-glyph comparison is not
722
- * attempted, though we do still scan reference buffer for dotted circle and
723
- * `.notdef` glyphs.
724
- *
725
- * If the buffers have the same length, we compare them glyph-by-glyph and
726
- * report which aspect(s) of the glyph info/position are different.
727
- *
728
- * Since: 1.5.0
729
- */
730
- typedef enum { /*< flags >*/
731
- HB_BUFFER_DIFF_FLAG_EQUAL = 0x0000,
732
-
733
- /* Buffers with different content_type cannot be meaningfully compared
734
- * in any further detail. */
735
- HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0x0001,
736
-
737
- /* For buffers with differing length, the per-glyph comparison is not
738
- * attempted, though we do still scan reference for dottedcircle / .notdef
739
- * glyphs. */
740
- HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 0x0002,
741
-
742
- /* We want to know if dottedcircle / .notdef glyphs are present in the
743
- * reference, as we may not care so much about other differences in this
744
- * case. */
745
- HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT = 0x0004,
746
- HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT = 0x0008,
747
-
748
- /* If the buffers have the same length, we compare them glyph-by-glyph
749
- * and report which aspect(s) of the glyph info/position are different. */
750
- HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH = 0x0010,
751
- HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH = 0x0020,
752
- HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH = 0x0040,
753
- HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH = 0x0080
754
-
755
- } hb_buffer_diff_flags_t;
756
-
757
- /* Compare the contents of two buffers, report types of differences. */
758
- HB_EXTERN hb_buffer_diff_flags_t
759
- hb_buffer_diff (hb_buffer_t *buffer,
760
- hb_buffer_t *reference,
761
- hb_codepoint_t dottedcircle_glyph,
762
- unsigned int position_fuzz);
763
-
764
-
765
- /*
766
- * Debugging.
767
- */
768
-
769
- /**
770
- * hb_buffer_message_func_t:
771
- * @buffer: An #hb_buffer_t to work upon
772
- * @font: The #hb_font_t the @buffer is shaped with
773
- * @message: `NULL`-terminated message passed to the function
774
- * @user_data: User data pointer passed by the caller
775
- *
776
- * A callback method for #hb_buffer_t. The method gets called with the
777
- * #hb_buffer_t it was set on, the #hb_font_t the buffer is shaped with and a
778
- * message describing what step of the shaping process will be performed.
779
- * Returning `false` from this method will skip this shaping step and move to
780
- * the next one.
781
- *
782
- * Return value: `true` to perform the shaping step, `false` to skip it.
783
- *
784
- * Since: 1.1.3
785
- */
786
- typedef hb_bool_t (*hb_buffer_message_func_t) (hb_buffer_t *buffer,
787
- hb_font_t *font,
788
- const char *message,
789
- void *user_data);
790
-
791
- HB_EXTERN void
792
- hb_buffer_set_message_func (hb_buffer_t *buffer,
793
- hb_buffer_message_func_t func,
794
- void *user_data, hb_destroy_func_t destroy);
795
-
796
-
797
- HB_END_DECLS
798
-
799
- #endif /* HB_BUFFER_H */