libunicode 0.9.0

libunicode 0.9.0

Wydano wersję 0.9.0 biblioteki dla języka C++ (standard C++20) libunicode. Projekt jest rozwijany przez zespół twórców emulatora terminala Contour i interfejsu Endo (w aktywnym rozwoju), dystrybuowane na licencji Apache 2.0.

Możliwości biblioteki:

W zestawie znajduje się także konsolowa narzędzie unicode-query do uzyskiwania szczegółowych informacji o ciągach.

Zmiany:

  • dodano API grapheme_cluster_width;
  • ulepszenia w pracy z wersjami Unicode ("Age");
  • pełne wsparcie UAX #15 Formy normalizacji Unicode z obsługą przetwarzania strumieniowego:

normalizer norm(Normalization_Form::NFC); // Przekaż rozłożoną e + akcent łączący, następnie nowy start, aby wyzwolić emisję auto result = norm.feed(U’e’); CHECK(result.empty()); // nadal buforuje result = norm.feed(U’u0301′); CHECK(result.empty()); // nadal buforuje (znak łączący) result = norm.feed(U’x’); // start wyzwala emisję poprzedniego segmentu REQUIRE_FALSE(result.empty()); CHECK(result == U"u00E9"); // e + akcent połączone w e-acute result = norm.flush(); CHECK(result == U"x"); // ostatni segment

  • funkcja script_extensions teraz zwraca std::optional<std::span>;
  • wdrożono regułę GB9c podziału grup graficznych dla kombinacji znaków w językach grupy Indic;
  • w grapheme_segmenter poprawiono zasady dla GB11 i GB4/GB5; usunięto przestarzałe API;
  • wdrożono optymalizowaną SIMD konwersję UTF-8 do UTF-16/UTF-32;
  • szerokość znaków łączących Hangul V/T teraz wynosi zero;
  • wdrożono segmentację po granicach słów;
  • poprawki w C API;
  • refaktoryzacja systemu kompilacji i pomocniczego generatora tabel C++;
  • dodano kompleksowe testy konwersji UTF-16/UTF-32;
  • w CI dodano statyczną kompilację narzędzia unicode-query.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster