It consists of the following parts: unistr.h elementary string functions uniconv.h conversion from/to legacy encodings unistdio.h formatted output to strings uniname.h character names unictype.h character classification and properties uniwidth.h string width when using nonproportional fonts unigbrk.h grapheme cluster breaks uniwbrk.h word breaks unilbrk.h line breaking algorithm uninorm.h normalization (composition and decomposition) unicase.h case folding
It is now available in version 1.2. ==== New in 1.2 ==== * The data tables and algorithms have been updated to Unicode version 15.1.0. * New functions u8_pcpy, u16_pcpy, u32_pcpy, similar to mempcpy. * New functions uc_indic_conjunct_break_name, uc_indic_conjunct_break_byname, uc_indic_conjunct_break. * New functions uc_is_property_prepended_concatenation_mark, uc_is_property_id_compat_math_start, uc_is_property_id_compat_math_continue, uc_is_property_ids_unary_operator and new constants UC_PROPERTY_PREPENDED_CONCATENATION_MARK, UC_PROPERTY_ID_COMPAT_MATH_START, UC_PROPERTY_ID_COMPAT_MATH_CONTINUE, UC_PROPERTY_IDS_UNARY_OPERATOR. * New constant _libunistring_unicode_version. * The UTF-8 decoder functions, especially u8_mbtouc, are now more Unicode Standard compliant. * The *printf functions no longer support the %n directive, for security reasons. * Fixed a bug in the *printf functions: In the %U, %lU, %llU directives, a negative width given as an argument did not trigger left-justification. * The functions u16_strstr and u32_strstr now operate in worst-case linear time. ==== Download ==== Here are the compressed sources: https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz (4.3MB) https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.xz (2.4MB) Here are the GPG detached signatures: https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz.sig https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.xz.sig Here are the SHA1 and SHA256 checksums: File: libunistring-1.2.tar.gz SHA1 sum: a2ff0da8fbc1df47c9b07c68099142f08d17facb SHA256 sum: fd6d5662fa706487c48349a758b57bc149ce94ec6c30624ec9fdc473ceabbc8e File: libunistring-1.2.tar.xz SHA1 sum: 914912b4ab91ab57e0ede4b34f3d92296e4dd6ec SHA256 sum: 632bd65ed74a881ca8a0309a1001c428bd1cbd5cd7ddbf8cedcd2e65f4dcdc44 Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify libunistring-1.2.tar.gz.sig The signature should match the fingerprint of the following key: pub rsa4096 2019-02-12 [SC] 9001 B85A F9E1 B83D F1BD A942 F5BE 8B26 7C6A 406D uid Bruno Haible (Open Source Development) <br...@clisp.org> If that command fails because you don't have the required public key, or that public key has expired, try the following commands to retrieve or refresh it, and then rerun the 'gpg --verify' command. gpg --recv-keys F5BE8B267C6A406D As a last resort to find the key, you can try the official GNU keyring: wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg gpg --keyring gnu-keyring.gpg --verify libunistring-1.2.tar.gz.sig This release was bootstrapped with the following tools: Autoconf 2.72 Automake 1.16.5 Libtool 2.4.7 Gnulib v0.1-7138-g5828723e28