On Thu Oct 6, 2022 at 11:23 PM CEST, Laslo Hunhold wrote: > 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/
Hurray, I'll probably try it soon, as I was waiting for case conversion to happen. Too bad I still need to roll my theoretically incorrect but de facto usable wcwidth analog, but I understand the reasoning behind this choice.