Skip to content

Commit f358c9b

Browse files
committed
Merge commit '33a3f8de60dcad7535f14f07d6710144548853ac'
2 parents 9e41e9d + 33a3f8d commit f358c9b

40 files changed

+1443
-702
lines changed

.ci/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ ninja==1.11.1.4 \
8181
# via -r requirements.in
8282

8383
# The following packages are considered to be unsafe in a requirements file:
84-
setuptools==80.0.0 \
85-
--hash=sha256:a38f898dcd6e5380f4da4381a87ec90bd0a7eec23d204a5552e80ee3cab6bd27 \
86-
--hash=sha256:c40a5b3729d58dd749c0f08f1a07d134fb8a0a3d7f87dc33e7c5e1f762138650
84+
setuptools==80.4.0 \
85+
--hash=sha256:5a78f61820bc088c8e4add52932ae6b8cf423da2aff268c23f813cfbb13b4006 \
86+
--hash=sha256:6cdc8cb9a7d590b237dbe4493614a9b75d0559b888047c1f67d49ba50fc3edb2
8787
# via -r requirements.in

NEWS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
Overview of changes leading to 11.2.1
2+
Monday, May 12, 2025
3+
====================================
4+
- Various build improvements.
5+
- Fix build with HB_NO_DRAW and HB_NO_PAINT
6+
- Add an optional “harfruzz” shaper that uses HarfRuzz; an ongoing Rust port of
7+
HarfBuzz shaping. This shaper is mainly used for testing the output of the
8+
Rust implementation.
9+
- Fox regression that caused applying unsafe_to_break() to the whole buffer to
10+
be ignored.
11+
- Update USE data files.
12+
- Fix getting advances of out-of-rage glyph indices in DirectWrite font
13+
functions.
14+
15+
116
Overview of changes leading to 11.2.0
217
Monday, April 28, 2025
318
====================================
@@ -21,6 +36,7 @@ Monday, April 28, 2025
2136
-hb_font_funcs_set_draw_glyph_func()
2237
-hb_font_funcs_set_paint_glyph_func()
2338

39+
2440
Overview of changes leading to 11.1.0
2541
Wednesday, April 16, 2025
2642
====================================

meson.build

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project('harfbuzz', ['c', 'cpp'],
22
meson_version: '>= 0.60.0',
3-
version: '11.2.0',
3+
version: '11.2.1',
44
default_options: [
55
'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway
66
# 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI
@@ -205,6 +205,12 @@ if get_option('fontations').enabled()
205205
fontations_dep_found = true
206206
endif
207207

208+
harfruzz_dep_found = false
209+
if get_option('harfruzz').enabled()
210+
add_languages(['rust'], native: false, required : true)
211+
harfruzz_dep_found = true
212+
endif
213+
208214
conf = configuration_data()
209215
incconfig = include_directories('.')
210216

@@ -250,6 +256,10 @@ if fontations_dep_found
250256
conf.set('HAVE_FONTATIONS', 1)
251257
endif
252258

259+
if harfruzz_dep_found
260+
conf.set('HAVE_HARFRUZZ', 1)
261+
endif
262+
253263
if wasm_dep.found()
254264
conf.set('HAVE_WASM', 1)
255265
conf.set('HB_WASM_MODULE_DIR', '"'+get_option('prefix')+'/'+get_option('libdir')+'/harfbuzz/wasm"')
@@ -479,8 +489,9 @@ build_summary = {
479489
},
480490
'Platform shapers (not normally needed)':
481491
{'CoreText': conf.get('HAVE_CORETEXT', 0) == 1,
482-
'DirectWrite (experimental)': conf.get('HAVE_DIRECTWRITE', 0) == 1,
492+
'DirectWrite': conf.get('HAVE_DIRECTWRITE', 0) == 1,
483493
'GDI/Uniscribe': (conf.get('HAVE_GDI', 0) == 1) and (conf.get('HAVE_UNISCRIBE', 0) == 1),
494+
'HarfRuzz': conf.get('HAVE_HARFRUZZ', 0) == 1,
484495
},
485496
'Other features':
486497
{'Documentation': conf.get('HAVE_GTK_DOC', 0) == 1,

meson_options.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,17 @@ option('graphite', type: 'feature', value: 'disabled',
1414
option('graphite2', type: 'feature', value: 'disabled',
1515
description: 'Enable Graphite2 complementary shaper')
1616
option('freetype', type: 'feature', value: 'auto',
17-
description: 'Enable freetype interop helpers')
17+
description: 'Enable freetype font backend')
1818
option('fontations', type: 'feature', value: 'disabled',
19-
description: 'Enabled fontations font functions')
19+
description: 'Enable fontations font backend')
2020
option('gdi', type: 'feature', value: 'disabled',
21-
description: 'Enable GDI helpers and Uniscribe shaper backend (Windows only)')
21+
description: 'Enable GDI helpers and Uniscribe shaper backend on Windows')
2222
option('directwrite', type: 'feature', value: 'disabled',
23-
description: 'Enable DirectWrite shaper backend on Windows')
23+
description: 'Enable DirectWrite shaper and font backend on Windows')
2424
option('coretext', type: 'feature', value: 'disabled',
25-
description: 'Enable CoreText shaper backend on macOS')
25+
description: 'Enable CoreText shaper and font backend on Apple platforms')
26+
option('harfruzz', type: 'feature', value: 'disabled',
27+
description: 'Enable HarfRuzz shaper backend')
2628
option('wasm', type: 'feature', value: 'disabled',
2729
description: 'Enable WebAssembly shaper backend (experimental)')
2830

src/OT/Layout/GPOS/CursivePosFormat1.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ struct CursivePosFormat1
130130
unlikely (!this_record.entryAnchor.sanitize (&c->sanitizer, this))) return_trace (false);
131131
hb_barrier ();
132132

133-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
133+
auto &skippy_iter = c->iter_input;
134134
skippy_iter.reset_fast (buffer->idx);
135135
unsigned unsafe_from;
136136
if (unlikely (!skippy_iter.prev (&unsafe_from)))

src/OT/Layout/GPOS/MarkBasePosFormat1.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ struct MarkBasePosFormat1_2
119119
/* Now we search backwards for a non-mark glyph.
120120
* We don't use skippy_iter.prev() to avoid O(n^2) behavior. */
121121

122-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
122+
auto &skippy_iter = c->iter_input;
123123
skippy_iter.set_lookup_props (LookupFlag::IgnoreMarks);
124124

125125
if (c->last_base_until > buffer->idx)

src/OT/Layout/GPOS/MarkLigPosFormat1.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ struct MarkLigPosFormat1_2
101101

102102
/* Now we search backwards for a non-mark glyph */
103103

104-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
104+
auto &skippy_iter = c->iter_input;
105105
skippy_iter.set_lookup_props (LookupFlag::IgnoreMarks);
106106

107107
if (c->last_base_until > buffer->idx)

src/OT/Layout/GPOS/MarkMarkPosFormat1.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ struct MarkMarkPosFormat1_2
100100
if (likely (mark1_index == NOT_COVERED)) return_trace (false);
101101

102102
/* now we search backwards for a suitable mark glyph until a non-mark glyph */
103-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
103+
auto &skippy_iter = c->iter_input;
104104
skippy_iter.reset_fast (buffer->idx);
105105
skippy_iter.set_lookup_props (c->lookup_props & ~(uint32_t)LookupFlag::IgnoreFlags);
106106
unsigned unsafe_from;

src/OT/Layout/GPOS/PairPosFormat1.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ struct PairPosFormat1_3
148148
#endif
149149
if (index == NOT_COVERED) return_trace (false);
150150

151-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
151+
auto &skippy_iter = c->iter_input;
152152
skippy_iter.reset_fast (buffer->idx);
153153
unsigned unsafe_to;
154154
if (unlikely (!skippy_iter.next (&unsafe_to)))

src/OT/Layout/GPOS/PairPosFormat2.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ struct PairPosFormat2_4 : ValueBase
179179
#endif
180180
if (index == NOT_COVERED) return_trace (false);
181181

182-
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_input;
182+
auto &skippy_iter = c->iter_input;
183183
skippy_iter.reset_fast (buffer->idx);
184184
unsigned unsafe_to;
185185
if (unlikely (!skippy_iter.next (&unsafe_to)))

0 commit comments

Comments
 (0)