You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CMake support added for easier integration into modern build systems (thanks @glebm)
C++ compatibility for public headers to support mixed-language codebases (thanks @glebm)
GitHub Actions replaced Travis CI as the CI system (thanks @AJenbo)
CI now runs on Linux, macOS, and Windows, performing both build and test using CMake and Meson:
Linux and macOS workflows use GCC and Clang
Windows workflow uses MSVC only
Valgrind job added in Linux CI using Make to detect uninitialized memory usage
Public version header <SheenBidi/SBVersion.h> introduced for programmatic version checks
SB_PUBLIC macro introduced to handle visibility of public functions across platforms
SB_DEPRECATED macro introduced to annotate deprecated APIs with compiler-specific attributes
UTF decoding helpers introduced for single code points:
SBCodepointDecodeNextFromUTF8
SBCodepointDecodePreviousFromUTF8
SBCodepointDecodeNextFromUTF16
SBCodepointDecodePreviousFromUTF16
SBScriptGetUnicodeTag(SBScript) introduced to return a single Unicode script tag (4-letter abbreviation) corresponding to the passed-in script, usable with HarfBuzz
Internal Object class introduced for consistent memory management across all major types (SBAlgorithm, SBParagraph, SBLine, etc.)
Unified versioning implemented across all build systems using the public version header
Support for building the library as a DLL on Windows added in both CMake and Meson
pkg-config support added in both CMake and Meson builds
Support for running individual test classes added (when the STANDALONE_TESTING macro is defined)
Dedicated targets for each test class added in CMake and Meson, allowing execution via ctest or meson test
Updates
SBCodepointSequence now uses a const buffer (thanks @glebm)
Source tree restructured:
Public headers moved to Headers/SheenBidi/
Test sources moved to Tests/
Internal Parser library rewritten to more robustly parse Unicode data files
General category lookup generator improved using Unicode’s DerivedGeneralCategory.txt
SBScriptGetOpenTypeTag data updated to match Microsoft’s OpenType script tags (as of 2024‑05‑31)
SBScriptGetOpenTypeTag marked as deprecated in favor of SBScriptGetUnicodeTag
Support for default property values of unassigned code points improved using enhanced parsing logic
Tests added for:
RunQueue
Script-to-tag conversion (OpenType & Unicode)
Bracket matching with canonical equivalence
Fixes
Fixed [#19]: eliminated uninitialized memory warning in Valgrind by introducing a flags array for BidiLink state tracking
Canonical bracket equivalence added for code points U+2329 and U+3008
Test coverage increased to 97% through targeted test additions