Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion depends/install_raqm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# install raqm


archive=libraqm-0.10.3
archive=libraqm-0.10.5

./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/main/$archive.tar.gz

Expand Down
18 changes: 18 additions & 0 deletions src/thirdparty/raqm/NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
Overview of changes leading to 0.10.5
Saturday, April 11, 2026
====================================

Check for NULL return from malloc in couple of places.

Overview of changes leading to 0.10.4
Thursday, February 5, 2026
====================================

Add build option to skip tests.

Add dependency override for use as a subproject.

Fix tests when b_ndebug=true.

Build, CI and documentation updates.

Overview of changes leading to 0.10.3
Tuesday, August 5, 2025
====================================
Expand Down
4 changes: 2 additions & 2 deletions src/thirdparty/raqm/raqm-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@

#define RAQM_VERSION_MAJOR 0
#define RAQM_VERSION_MINOR 10
#define RAQM_VERSION_MICRO 3
#define RAQM_VERSION_MICRO 5

#define RAQM_VERSION_STRING "0.10.3"
#define RAQM_VERSION_STRING "0.10.5"

#define RAQM_VERSION_ATLEAST(major,minor,micro) \
((major)*10000+(minor)*100+(micro) <= \
Expand Down
47 changes: 24 additions & 23 deletions src/thirdparty/raqm/raqm.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
* @short_description: A library for complex text layout
* @include: raqm.h
*
* Raqm is a light weight text layout library with strong emphasis on
* Raqm is a lightweight text layout library with strong emphasis on
* supporting languages and writing systems that require complex text layout.
*
* The main object in Raqm API is #raqm_t, it stores all the states of the
Expand Down Expand Up @@ -338,6 +338,8 @@ _raqm_alloc_run (raqm_t *rq)
else
{
run = malloc (sizeof (raqm_run_t));
if (!run)
return NULL;
run->font = NULL;
run->buffer = NULL;
}
Expand Down Expand Up @@ -515,7 +517,7 @@ raqm_clear_contents (raqm_t *rq)
* @len: the length of @text.
*
* Adds @text to @rq to be used for layout. It must be a valid UTF-32 text, any
* invalid character will be replaced with U+FFFD. The text should typically
* invalid characters will be replaced with U+FFFD. The text should typically
* represent a full paragraph, since doing the layout of chunks of text
* separately can give improper output.
*
Expand Down Expand Up @@ -765,13 +767,13 @@ raqm_set_par_direction (raqm_t *rq,
* raqm_set_language:
* @rq: a #raqm_t.
* @lang: a BCP47 language code.
* @start: index of first character that should use @face.
* @start: index of the first character that should use @face.
* @len: number of characters using @face.
*
* Sets a [BCP47 language
* code](https://www.w3.org/International/articles/language-tags/) to be used
* for @len-number of characters staring at @start. The @start and @len are
* input string array indices (i.e. counting bytes in UTF-8 and scaler values
* for @len-number of characters starting at @start. The @start and @len are
* input string array indices (i.e. counting bytes in UTF-8 and scalar values
* in UTF-32).
*
* This method can be used repeatedly to set different languages for different
Expand Down Expand Up @@ -951,7 +953,7 @@ raqm_set_freetype_face (raqm_t *rq,
* raqm_set_freetype_face_range:
* @rq: a #raqm_t.
* @face: an #FT_Face.
* @start: index of first character that should use @face from the input string.
* @start: index of the first character that should use @face from the input string.
* @len: number of elements using @face.
*
* Sets an #FT_Face to be used for @len-number of characters staring at @start.
Expand All @@ -962,7 +964,7 @@ raqm_set_freetype_face (raqm_t *rq,
*
* This method can be used repeatedly to set different faces for different
* parts of the text. It is the responsibility of the client to make sure that
* face ranges cover the whole text, and is properly aligned.
* face ranges cover the whole text, and are properly aligned.
*
* See also raqm_set_freetype_face().
*
Expand Down Expand Up @@ -1023,9 +1025,6 @@ _raqm_set_freetype_load_flags (raqm_t *rq,
* Sets the load flags passed to FreeType when loading glyphs, should be the
* same flags used by the client when rendering FreeType glyphs.
*
* This requires version of HarfBuzz that has hb_ft_font_set_load_flags(), for
* older version the flags will be ignored.
*
* Return value:
* `true` if no errors happened, `false` otherwise.
*
Expand All @@ -1042,22 +1041,19 @@ raqm_set_freetype_load_flags (raqm_t *rq,
* raqm_set_freetype_load_flags_range:
* @rq: a #raqm_t.
* @flags: FreeType load flags.
* @start: index of first character that should use @flags.
* @start: index of the first character that should use @flags.
* @len: number of characters using @flags.
*
* Sets the load flags passed to FreeType when loading glyphs for @len-number
* of characters staring at @start. Flags should be the same as used by the
* client when rendering corresponding FreeType glyphs. The @start and @len
* are input string array indices (i.e. counting bytes in UTF-8 and scaler
* are input string array indices (i.e. counting bytes in UTF-8 and scalar
* values in UTF-32).
*
* This method can be used repeatedly to set different flags for different
* parts of the text. It is the responsibility of the client to make sure that
* flag ranges cover the whole text.
*
* This requires version of HarfBuzz that has hb_ft_font_set_load_flags(), for
* older version the flags will be ignored.
*
* See also raqm_set_freetype_load_flags().
*
* Return value:
Expand Down Expand Up @@ -1143,7 +1139,7 @@ _raqm_set_spacing (raqm_t *rq,
* raqm_set_letter_spacing_range:
* @rq: a #raqm_t.
* @spacing: amount of spacing in Freetype Font Units (26.6 format).
* @start: index of first character that should use @spacing.
* @start: index of the first character that should use @spacing.
* @len: number of characters using @spacing.
*
* Set the letter spacing or tracking for a given range, the value
Expand Down Expand Up @@ -1200,12 +1196,12 @@ raqm_set_letter_spacing_range(raqm_t *rq,
* raqm_set_word_spacing_range:
* @rq: a #raqm_t.
* @spacing: amount of spacing in Freetype Font Units (26.6 format).
* @start: index of first character that should use @spacing.
* @start: index of the first character that should use @spacing.
* @len: number of characters using @spacing.
*
* Set the word spacing for a given range. Word spacing will only be applied to
* 'word separator' characters, such as 'space', 'no break space' and
* Ethiopic word separator'.
* 'Ethiopic word separator'.
* The value will be added onto the advance and offset for RTL, and the advance
* for other directions.
*
Expand Down Expand Up @@ -1239,7 +1235,7 @@ raqm_set_word_spacing_range(raqm_t *rq,
* @rq: a #raqm_t.
* @gid: glyph id to use for invisible glyphs.
*
* Sets the glyph id to be used for invisible glyhphs.
* Sets the glyph id to be used for invisible glyphs.
*
* If @gid is negative, invisible glyphs will be suppressed from the output.
*
Expand Down Expand Up @@ -1629,6 +1625,11 @@ _raqm_reorder_runs (const FriBidiCharType *types,
}

runs = malloc (sizeof (_raqm_bidi_run) * count);
if (!runs)
{
*run_count = 0;
return NULL;
}

while (run_start < len)
{
Expand Down Expand Up @@ -2747,10 +2748,10 @@ raqm_version_string (void)
* @minor: Library minor version component.
* @micro: Library micro version component.
*
* Checks if library version is less than or equal the specified version.
* Checks if library version is less than or equal to the specified version.
*
* Return value:
* `true` if library version is less than or equal the specified version,
* `true` if library version is less than or equal to the specified version,
* `false` otherwise.
*
* Since: 0.7
Expand All @@ -2769,10 +2770,10 @@ raqm_version_atleast (unsigned int major,
* @minor: Library minor version component.
* @micro: Library micro version component.
*
* Checks if library version is less than or equal the specified version.
* Checks if library version is less than or equal to the specified version.
*
* Return value:
* `true` if library version is less than or equal the specified version,
* `true` if library version is less than or equal to the specified version,
* `false` otherwise.
*
* Since: 0.7
Expand Down
4 changes: 2 additions & 2 deletions src/thirdparty/raqm/raqm.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ extern "C" {
/**
* raqm_t:
*
* This is the main object holding all state of the currently processed text as
* This is the main object holding all the states of the currently processed text as
* well as its output.
*
* Since: 0.1
Expand Down Expand Up @@ -81,7 +81,7 @@ typedef enum
* @y_advance: the glyph advance width in vertical text.
* @x_offset: the horizontal movement of the glyph from the current point.
* @y_offset: the vertical movement of the glyph from the current point.
* @cluster: the index of original character in input text.
* @cluster: the index of the original character in the input text.
* @ftface: the @FT_Face of the glyph.
*
* The structure that holds information about output glyphs, returned from
Expand Down
Loading