Megjelent a 0.9.0 verzió a C++ nyelvhez készült könyvtárból (C++20 szabvány). libunicode. A projektet a Terminálemulátor fejlesztőcsapata dolgozza ki Contour and the shell Endo (aktív fejlesztés alatt áll), és az Apache 2.0 licenc alapján terjesztik.
- a szabványok támogatása Unicode 17.0:
- API a Unicode tulajdonságok lekérdezésére;
- Néhány funkció SIMD-optimalizálása (std::simd vagy std::experimental::simd használatával, ha elérhető);
- optimalizált UTF-8 <-> UTF-16/UTF-32 konverzió;
- a wcwidth funkció megfelelője (int unicode::width(char32_t));
- szöveg szeparálása grafémák, karakterek, emoji és írásmódok szerint;
- nagyszintű API a szöveg szeparálására, amely alkalmas a szövegformázás megvalósítására.
- magas szintű szövegfeldolgozó API, amely alkalmas megvalósításra szövegformázás.
- A csomagban található egy unicode-query konzolos eszköz is, amely részletes információt nyújt a szövegekről.
új funkciók kerültek bevezetésre:
Változások:
- hozzáadva a grapheme_cluster_width API;
- javítások a Unicode verziókkal („Kor”) való munkában;
- teljes támogatás UAX #15 Unicode normalizációs formák folytonos feldolgozással támogatva:
normalizer norm(Normalization_Form::NFC); // Decomposed e + combining acute beküldése, ezután egy új indító, hogy kiváltja az emissziót auto result = norm.feed(U’e’); CHECK(result.empty()); // még mindig pufferezés result = norm.feed(U’u0301′); CHECK(result.empty()); // még mindig pufferezés (kombináló jel) result = norm.feed(U’x’); // indító kiváltja az előző szegmens kibocsátását REQUIRE_FALSE(result.empty()); CHECK(result == U"u00E9"); // e + acute egybeolvad e-acute-ra result = norm.flush(); CHECK(result == U"x"); // végső szegmens
- a script_extensions funkció most std::optional<std::span<Script const>>-t ad vissza;
- megvalósítva a GB9c szabály az Indic nyelvek karaktercsoportjaiban való grafémák csoportosítására;
- a grapheme_segmenter-ben javítva a GB11 és GB4/GB5 szabályai; a régi API eltávolítva;
- implementálva a SIMD optimalizált UTF-8 és UTF-16/UTF-32 közötti konverzió;
- a Hangul V/T kombináló jelek szélessége most nulla;
- szóhatárok szerinti szegmentálás megvalósítva;
- javítások a C API-ban;
- a C++ építési rendszer és segédprogram táblázatgenerátor újraformázva;
- komplex tesztek hozzáadva az UTF-16/UTF-32 átalakításhoz;
- a CI-be statikus build került a unicode-query segédprogramhoz.
Forrás: linux.org.ru
