Dear fellow hackers, I'm pleased to announce version 2.0.0 of libgrapheme[0][1], a library for Unicode string handling.
This version adds - word segmentation - sentence segmentation - detection of permissible line break opportunities - case detection - case conversion and has been heavily refactored for correctness and conformance. The library now is freestanding (i.e. not dependant on a standard library), which allows you to link it into pretty much anything. There has been a small API-change: grapheme_next_character_break() has been renamed to grapheme_next_character_break_utf8() and GRAPHEME_STATE has been dropped in favor of an explicit uint_least16_t-state-variable for the single function it's being used with. Changing code should be quick and simple. I have made the decision to adopt the semantic versioning scheme[2]. While it is not perfect, it gives the version number more semantic meaning, and in its spirit, I bumped the major version given there's been a breaking API change, but I don't expect many major version bumps in the future, if at all. Take a look at the README and libgrapheme(7) for an overview. Every function-manual comes with an example and the usage should be more or less obvious. With best regards Laslo Hunhold [0]: https://libs.suckless.org/libgrapheme [1]: https://dl.suckless.org/libgrapheme/libgrapheme-2.0.0.tar.gz [2]: https://semver.org/