libunicode 0.9.0

libunicode 0.9.0

Die Version 0.9.0 der Bibliothek für die Programmiersprache C++ (Standard C++20) wurde veröffentlicht libunicode. Das Projekt wird von einem Team von Entwicklern des Terminalemulators Contour und der Shell Endo (in aktiver Entwicklung) und wird unter der Lizenz Apache 2.0 vertrieben.

Funktionen der Bibliothek:

Das Paket enthält auch das Konsolendienstprogramm unicode-query zur Abfrage ausführlicher Informationen zu Strings.

Änderungen:

  • API grapheme_cluster_width hinzugefügt;
  • Verbesserungen bei der Arbeit mit Unicode-Versionen ("Alter");
  • vollständige Unterstützung UAX #15 Unicode-Normalisierungsformen mit Unterstützung für Stream-Verarbeitung:

normalizer norm(Normalization_Form::NFC); // Füttere zerlegte e + kombinierende akute, dann einen neuen Starter zur Auslösung der Emission auto result = norm.feed(U'e'); CHECK(result.empty()); // immer noch im Puffer result = norm.feed(U'u0301'); CHECK(result.empty()); // immer noch im Puffer (kombinierendes Zeichen) result = norm.feed(U'x'); // Starter löst Emission des vorherigen Segments aus REQUIRE_FALSE(result.empty()); CHECK(result == U"u00E9"); // e + akute zusammengefügt zu e-akute result = norm.flush(); CHECK(result == U"x"); // finales Segment

  • Die Funktion script_extensions gibt jetzt std::optional<std::span<Script const>> zurück;
  • Die Regel GB9c für die Segmentierung von Graphemgruppen für Zeichenkombinationen in Sprachen der Gruppe Indic wurde implementiert;
  • In grapheme_segmenter wurden die Regeln für GB11 und GB4/GB5 korrigiert; veraltete APIs wurden entfernt;
  • Eine SIMD-optimierte Konvertierung von UTF-8 nach UTF-16/UTF-32 wurde implementiert;
  • Die Breite kombinierender Zeichen Hangul V/T ist jetzt null;
  • Segmentierung nach Wortgrenzen wurde implementiert;
  • Korrekturen im C API;
  • Refactoring des Build-Systems und des Hilfsgenerators für C++;
  • Komplexe Tests zur Umwandlung von UTF-16/UTF-32 wurden hinzugefügt;
  • Im CI wurde ein statisches Build des Dienstprogramms unicode-query hinzugefügt.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4