Overview of changes leading to 0.11.0
Thursday, July 23, 2026
====================================

Update grapheme cluster boundary detection to Unicode 17, conforming to
Unicode UAX #29 and verified against the Unicode conformance test.

Reject input that spans multiple paragraphs; raqm_layout() now fails when
the text contains a paragraph separator.

Fix out-of-bounds read in the UTF-8 and UTF-16 decoders.

Build, CI and documentation updates.

New API:
    * raqm_get_par_detected_direction
    * raqm_allowed_grapheme_boundary

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
====================================

Fix raqm_set_text_utf8/utf16 reading beyond len for multibyte.

Support building against SheenBidi 2.9.

Fix deprecation warning with latest HarfBuzz.

Overview of changes leading to 0.10.2
Sunday, September 22, 2024
====================================

Fix Unicode codepoint conversion from UTF-16.

Overview of changes leading to 0.10.1
Wednesday, April 12, 2023
====================================

Make combining marks always inherit the script of their base.

Overview of changes leading to 0.10.0
Wednesday, January 11, 2023
====================================

Fix font feature ranges.

Fix resolved direction for all-neutral text.

Implement letter and word spacing support.

New API:
    * raqm_set_text_utf16

Overview of changes leading to 0.9.0
Sunday, January 30, 2022
====================================

Raise the minimum versions of Raqm dependencies: no longer conditionally
enabling any features based on specific dependency version.

raqm_t objects can now be reused by calling raqm_clear_contents() before
re-use, to potentially reduce the number memory allocations.

Don't hardcode python3 in tests.

New API:
    * raqm_set_freetype_load_flags_range
    * raqm_clear_contents

Overview of changes leading to 0.8.0
Monday, December 13, 2021
====================================

Remove autotools build.

Support using SheenBiDi instead of FriBiDi for Unicode BiDi support.

Fix running tests with Python <= 3.6.

New API:
  * raqm_get_par_resolved_direction
  * raqm_get_direction_at_index

Overview of changes leading to 0.7.2
Monday, September 27, 2021
====================================

Fix test failure with newer HarfBuzz versions.

Apply FT_Face transformation matrix when built against FreeType 2.11 or later.

Add meson build system. Autotools build system will be dropped in next release.

Improve MSVC support.

Build and documentation fixes.

Overview of changes leading to 0.7.1
Sunday, November 22, 2020
====================================

Require HarfBuzz >= 2.0.0

Build and documentation fixes.

Overview of changes leading to 0.7.0
Monday, May 27, 2019
====================================

New API:
  * raqm_version
  * raqm_version_string
  * raqm_version_atleast
  * RAQM_VERSION_MAJOR
  * RAQM_VERSION_MICRO
  * RAQM_VERSION_MINOR
  * RAQM_VERSION_STRING
  * RAQM_VERSION_ATLEAST

Overview of changes leading to 0.6.0
Sunday, May 5, 2019
====================================

Fix TTB direction regression from the previous release.

Correctly detect script of Common and Inherite characters at start of text.

Undef HAVE_CONFIG_H workaround, for older versions of Fribidi.

Drop test suite dependency on GLib.

Port test runner to Python instead of shell script.

New API:
* raqm_set_invisible_glyph()

Overview of changes leading to 0.5.0
Saturday, February 24, 2018
====================================

Use FriBiDi 1.x API when available.

Overview of changes leading to 0.4.0
Sunday, January 21, 2018
====================================

Set begin-of-text and end-of-text HarfBuzz buffer flags.

Dynamically allocate memory instead of using stack allocation for input text.

Accept zero length text and do nothing instead of treating it as error.

Overview of changes leading to 0.3.0
Monday, August 21, 2017
====================================

Fix stack corruption on MSVC.

New API:
* raqm_set_freetype_load_flags

Overview of changes leading to 0.2.0
Wednesday, August 25, 2016
====================================

Fix building with MSVC due to lacking C99 support.

Make multiple fonts support actually work. Start and length now respect the
input encoding.

New API:
* raqm_index_to_position
* raqm_position_to_index
* raqm_set_language

Overview of changes leading to 0.1.1
Sunday, May 1, 2016
====================================

Fix make check on 32-bit systems.

Overview of changes leading to 0.1.0
Wednesday, January 20, 2016
====================================

First release.
