Skip to content

Commit

Permalink
harfbuzz 10.1.0
Browse files Browse the repository at this point in the history
git-svn-id: svn://tug.org/texlive/trunk/Build/source@72778 c570f23f-e606-0410-a88d-b1316a301751
  • Loading branch information
Akira Kakuto committed Nov 6, 2024
1 parent c31644c commit d889ae4
Show file tree
Hide file tree
Showing 42 changed files with 1,579 additions and 793 deletions.
2 changes: 1 addition & 1 deletion libs/README
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ graphite2 1.3.14 - checked 10apr20
https://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)

harfbuzz 10.0.1 - checked 25sep24
harfbuzz 10.1.0 - checked 06nov24
https://github.com/harfbuzz/harfbuzz/releases/latest

icu 76.1 - checked 27oct24 (requires C++17, e.g., g++13)
Expand Down
5 changes: 5 additions & 0 deletions libs/harfbuzz/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2024-11-06 Akira Kakuto <[email protected]>

Import harfbuzz-10.1.0.
* version.ac: Adjusted.

2024-09-25 Akira Kakuto <[email protected]>

Import harfbuzz-10.0.1.
Expand Down
5 changes: 5 additions & 0 deletions libs/harfbuzz/TLpatches/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2024-11-06 Akira Kakuto <[email protected]>

Imported harfbuzz-10.1.0 source tree from:
https://github.com/harfbuzz/harfbuzz/releases/download/10.1.0/

2024-09-25 Akira Kakuto <[email protected]>

Imported harfbuzz-10.0.1 source tree from:
Expand Down
4 changes: 2 additions & 2 deletions libs/harfbuzz/TLpatches/TL-Changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Changes applied to the harfbuzz-10.0.1/ tree as obtained from:
https://github.com/harfbuzz/harfbuzz/releases/download/10.0.1/
Changes applied to the harfbuzz-10.1.0/ tree as obtained from:
https://github.com/harfbuzz/harfbuzz/releases/download/10.1.0/

Removed:
.clang-format
Expand Down
26 changes: 13 additions & 13 deletions libs/harfbuzz/configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 10.0.1.
# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 10.1.0.
#
# Report bugs to <[email protected]>.
#
Expand Down Expand Up @@ -604,8 +604,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
PACKAGE_VERSION='10.0.1'
PACKAGE_STRING='harfbuzz (TeX Live) 10.0.1'
PACKAGE_VERSION='10.1.0'
PACKAGE_STRING='harfbuzz (TeX Live) 10.1.0'
PACKAGE_BUGREPORT='[email protected]'
PACKAGE_URL=''

Expand Down Expand Up @@ -1341,7 +1341,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures harfbuzz (TeX Live) 10.0.1 to adapt to many kinds of systems.
'configure' configures harfbuzz (TeX Live) 10.1.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
Expand Down Expand Up @@ -1413,7 +1413,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of harfbuzz (TeX Live) 10.0.1:";;
short | recursive ) echo "Configuration of harfbuzz (TeX Live) 10.1.0:";;
esac
cat <<\_ACEOF
Expand Down Expand Up @@ -1518,7 +1518,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
harfbuzz (TeX Live) configure 10.0.1
harfbuzz (TeX Live) configure 10.1.0
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
Expand Down Expand Up @@ -2075,7 +2075,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by harfbuzz (TeX Live) $as_me 10.0.1, which was
It was created by harfbuzz (TeX Live) $as_me 10.1.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -5252,7 +5252,7 @@ fi

# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
VERSION='10.0.1'
VERSION='10.1.0'


# Some tools Automake needs.
Expand Down Expand Up @@ -5441,9 +5441,9 @@ echo 'tldbg:KPSE_BASIC done (pkg=harfbuzz, amopt=no-define)' >&5


HB_VERSION_MAJOR=10
HB_VERSION_MINOR=0
HB_VERSION_MICRO=1
HB_VERSION=10.0.1
HB_VERSION_MINOR=1
HB_VERSION_MICRO=0
HB_VERSION=10.1.0

ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
Expand Down Expand Up @@ -9292,7 +9292,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by harfbuzz (TeX Live) $as_me 10.0.1, which was
This file was extended by harfbuzz (TeX Live) $as_me 10.1.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -9360,7 +9360,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
harfbuzz (TeX Live) config.status 10.0.1
harfbuzz (TeX Live) config.status 10.1.0
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
Expand Down
27 changes: 25 additions & 2 deletions libs/harfbuzz/harfbuzz-src/NEWS
Original file line number Diff line number Diff line change
@@ -1,12 +1,35 @@
Overview of changes leading to 10.1.0
Tuesday, November 5, 2024
====================================
- Fix the sign of fallback vertical glyph advance (used when font has no
vertical advance data).
- Increase maximum “CFF” operands limit 20 times to support more complex fonts.
- Add “--face-loader” option to command line utilities.
- Support “COLR” v0 table in hb_font_get_glyph_extents().
- Add support for font functions that use Core Text APIs, similar to FreeType
font functions. This allows, for example, using drawing fonts that use the new
(and undocumented) “hvgl” table.
- Update IANA and OT language registries, as well ase USE data files.
- Fix build with ICU 76.
- Various compiler warnings and build fixes.
- Various subsetter fixes.

- New API:
+hb_face_create_or_fail()
+hb_face_create_from_file_or_fail()
+hb_coretext_face_create_from_file_or_fail()
+hb_coretext_font_set_funcs()
+hb_ft_face_create_from_file_or_fail()

Overview of changes leading to 10.0.1
Tuesday, Sep 24, 2024
Tuesday, September 24, 2024
====================================
- Relax sanitization checks for “morx” subtables to fix broken AAT shaping of
macOS 15.0 version of GeezaPro.


Overview of changes leading to 10.0.0
Monday, Sep 23, 2024
Monday, September 23, 2024
====================================
- Unicode 16.0.0 support.
- Various documentation fixes.
Expand Down
2 changes: 1 addition & 1 deletion libs/harfbuzz/harfbuzz-src/meson.build
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
project('harfbuzz', 'c', 'cpp',
meson_version: '>= 0.55.0',
version: '10.0.1',
version: '10.1.0',
default_options: [
'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway
# 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI
Expand Down
47 changes: 26 additions & 21 deletions libs/harfbuzz/harfbuzz-src/src/OT/Color/COLR/COLR.hh
Original file line number Diff line number Diff line change
Expand Up @@ -2058,7 +2058,7 @@ struct delta_set_index_map_subset_plan_t
unsigned outer = (*var_idx) >> 16;
unsigned bit_count = (outer == 0) ? 1 : hb_bit_storage (outer);
outer_bit_count = hb_max (bit_count, outer_bit_count);

unsigned inner = (*var_idx) & 0xFFFF;
bit_count = (inner == 0) ? 1 : hb_bit_storage (inner);
inner_bit_count = hb_max (bit_count, inner_bit_count);
Expand All @@ -2080,7 +2080,7 @@ struct COLR
bool has_v0_data () const { return numBaseGlyphs; }
bool has_v1_data () const
{
if (version != 1)
if (version < 1)
return false;
hb_barrier ();

Expand Down Expand Up @@ -2180,7 +2180,7 @@ struct COLR
hb_set_t *variation_indices,
hb_set_t *delta_set_indices) const
{
if (version != 1) return;
if (version < 1) return;
hb_barrier ();

hb_set_t visited_glyphs;
Expand Down Expand Up @@ -2222,16 +2222,22 @@ struct COLR
{ return (this+baseGlyphList); }

bool has_var_store () const
{ return version >= 1 && varStore != 0; }
{ return version >= 1 && hb_barrier () && varStore != 0; }

bool has_delta_set_index_map () const
{ return version >= 1 && varIdxMap != 0; }
{ return version >= 1 && hb_barrier () && varIdxMap != 0; }

bool has_clip_list () const
{ return version >= 1 && hb_barrier () && clipList != 0; }

const DeltaSetIndexMap &get_delta_set_index_map () const
{ return (version == 0 || varIdxMap == 0) ? Null (DeltaSetIndexMap) : this+varIdxMap; }
{ return has_delta_set_index_map () && hb_barrier () ? this+varIdxMap : Null (DeltaSetIndexMap); }

const ItemVariationStore &get_var_store () const
{ return (version == 0 || varStore == 0) ? Null (ItemVariationStore) : this+varStore; }
{ return has_var_store () && hb_barrier () ? this+varStore : Null (ItemVariationStore); }

const ClipList &get_clip_list () const
{ return has_clip_list () && hb_barrier () ? this+clipList : Null (ClipList); }

bool sanitize (hb_sanitize_context_t *c) const
{
Expand All @@ -2242,7 +2248,6 @@ struct COLR
(this+layersZ).sanitize (c, numLayers) &&
(version == 0 ||
(hb_barrier () &&
version == 1 &&
baseGlyphList.sanitize (c, this) &&
layerList.sanitize (c, this) &&
clipList.sanitize (c, this) &&
Expand Down Expand Up @@ -2465,7 +2470,9 @@ struct COLR
if (unlikely (!c->serializer->extend_min (colr_prime))) return_trace (false);

if (version == 0 || downgrade_to_V0 (glyphset))
return_trace (colr_prime->serialize_V0 (c->serializer, 0, base_it, layer_it));
return_trace (colr_prime->serialize_V0 (c->serializer, 0, base_it, layer_it));

hb_barrier ();

//start version 1
if (!c->serializer->allocate_size<void> (5 * HBUINT32::static_size)) return_trace (false);
Expand All @@ -2475,8 +2482,8 @@ struct COLR
* after instancing */
if (!subset_varstore (c, colr_prime)) return_trace (false);

ItemVarStoreInstancer instancer (varStore ? &(this+varStore) : nullptr,
varIdxMap ? &(this+varIdxMap) : nullptr,
ItemVarStoreInstancer instancer (&(get_var_store ()),
&(get_delta_set_index_map ()),
c->plan->normalized_coords.as_array ());

if (!colr_prime->baseGlyphList.serialize_subset (c, baseGlyphList, this, instancer))
Expand Down Expand Up @@ -2505,12 +2512,10 @@ struct COLR
bool
get_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents) const
{
if (version != 1)
return false;

ItemVarStoreInstancer instancer (&(this+varStore),
&(this+varIdxMap),
hb_array (font->coords, font->num_coords));
ItemVarStoreInstancer instancer (&(get_var_store ()),
&(get_delta_set_index_map ()),
hb_array (font->coords, font->num_coords));

if (get_clip (glyph, extents, instancer))
{
Expand Down Expand Up @@ -2545,7 +2550,7 @@ struct COLR
bool
has_paint_for_glyph (hb_codepoint_t glyph) const
{
if (version == 1)
if (version >= 1)
{
hb_barrier ();

Expand All @@ -2561,7 +2566,7 @@ struct COLR
hb_glyph_extents_t *extents,
const ItemVarStoreInstancer instancer) const
{
return (this+clipList).get_extents (glyph,
return get_clip_list ().get_extents (glyph,
extents,
instancer);
}
Expand All @@ -2570,13 +2575,13 @@ struct COLR
bool
paint_glyph (hb_font_t *font, hb_codepoint_t glyph, hb_paint_funcs_t *funcs, void *data, unsigned int palette_index, hb_color_t foreground, bool clip = true) const
{
ItemVarStoreInstancer instancer (&(this+varStore),
&(this+varIdxMap),
ItemVarStoreInstancer instancer (&(get_var_store ()),
&(get_delta_set_index_map ()),
hb_array (font->coords, font->num_coords));
hb_paint_context_t c (this, funcs, data, font, palette_index, foreground, instancer);
c.current_glyphs.add (glyph);

if (version == 1)
if (version >= 1)
{
hb_barrier ();

Expand Down
17 changes: 11 additions & 6 deletions libs/harfbuzz/harfbuzz-src/src/gen-tag-table.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,14 +345,18 @@ def __init__ (self):
self.from_bcp_47_uninherited = None
# Whether the parser is in a <td> element
self._td = False
# Whether the parser is after a <br> element within the current <tr> element
self._br = False
# Whether the parser ignores the rest of the current <td> element
self._disengaged = False
# The text of the <td> elements of the current <tr> element.
self._current_tr = []

def handle_starttag (self, tag, attrs):
if tag == 'br':
self._br = True
if tag == 'a':
if self._current_tr and not self._disengaged:
self._current_tr[-1] = ''
self._disengaged = True
elif tag == 'br':
self._disengaged = True
elif tag == 'meta':
for attr, value in attrs:
if attr == 'name' and value == 'updated_at':
Expand All @@ -362,12 +366,13 @@ def handle_starttag (self, tag, attrs):
self._td = True
self._current_tr.append ('')
elif tag == 'tr':
self._br = False
self._disengaged = False
self._current_tr = []

def handle_endtag (self, tag):
if tag == 'td':
self._td = False
self._disengaged = False
elif tag == 'tr' and self._current_tr:
expect (2 <= len (self._current_tr) <= 3)
name = self._current_tr[0].strip ()
Expand All @@ -387,7 +392,7 @@ def handle_endtag (self, tag):
self.ranks[tag] = rank

def handle_data (self, data):
if self._td and not self._br:
if self._td and not self._disengaged:
self._current_tr[-1] += data

def handle_charref (self, name):
Expand Down
5 changes: 5 additions & 0 deletions libs/harfbuzz/harfbuzz-src/src/gen-use-table.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
'Nukta',
'Virama',
'Pure_Killer',
'Reordering_Killer',
'Invisible_Stacker',
'Vowel_Independent',
'Vowel_Dependent',
Expand Down Expand Up @@ -263,6 +264,8 @@ def is_OTHER(U, UISC, UDI, UGC, AJT):
and not is_SYM_MOD(U, UISC, UDI, UGC, AJT)
and not is_Word_Joiner(U, UISC, UDI, UGC, AJT)
)
def is_REORDERING_KILLER(U, UISC, UDI, UGC, AJT):
return UISC == Reordering_Killer
def is_REPHA(U, UISC, UDI, UGC, AJT):
return UISC in [Consonant_Preceding_Repha, Consonant_Prefixed]
def is_SAKOT(U, UISC, UDI, UGC, AJT):
Expand Down Expand Up @@ -306,6 +309,7 @@ def is_Word_Joiner(U, UISC, UDI, UGC, AJT):
'SE': is_HIEROGLYPH_SEGMENT_END,
'ZWNJ': is_ZWNJ,
'O': is_OTHER,
'RK': is_REORDERING_KILLER,
'R': is_REPHA,
'Sk': is_SAKOT,
'SM': is_SYM_MOD,
Expand Down Expand Up @@ -358,6 +362,7 @@ def is_Word_Joiner(U, UISC, UDI, UGC, AJT):
'Pst': [Not_Applicable],
},
'R': None,
'RK': None,
'SUB': None,
}

Expand Down
Loading

0 comments on commit d889ae4

Please sign in to comment.