From 142850ae2cc0900a04316b0ac51df31f4904a66d Mon Sep 17 00:00:00 2001 From: Fredrik Roubert Date: Tue, 19 Mar 2024 17:11:20 +0100 Subject: [PATCH] ICU-22691 Make sample code possible to compile with current ICU4C. --- icu4c/source/samples/translit/answers/main_1.cpp | 1 - icu4c/source/samples/translit/answers/main_2.cpp | 3 +-- icu4c/source/samples/translit/answers/main_3.cpp | 7 +++++-- icu4c/source/samples/translit/answers/main_4.cpp | 7 +++++-- icu4c/source/samples/translit/answers/unaccent.cpp | 4 +++- icu4c/source/samples/translit/answers/unaccent.h | 3 +++ 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/icu4c/source/samples/translit/answers/main_1.cpp b/icu4c/source/samples/translit/answers/main_1.cpp index d8227df8a1b..9191c9b930b 100644 --- a/icu4c/source/samples/translit/answers/main_1.cpp +++ b/icu4c/source/samples/translit/answers/main_1.cpp @@ -9,7 +9,6 @@ ***********************************************************************/ #include "unicode/translit.h" -#include "unicode/rbt.h" #include "unicode/unistr.h" #include "unicode/calendar.h" #include "unicode/datefmt.h" diff --git a/icu4c/source/samples/translit/answers/main_2.cpp b/icu4c/source/samples/translit/answers/main_2.cpp index 1c70f1e7037..f418ca1ce6c 100644 --- a/icu4c/source/samples/translit/answers/main_2.cpp +++ b/icu4c/source/samples/translit/answers/main_2.cpp @@ -9,7 +9,6 @@ ***********************************************************************/ #include "unicode/translit.h" -#include "unicode/rbt.h" #include "unicode/unistr.h" #include "unicode/calendar.h" #include "unicode/datefmt.h" @@ -43,7 +42,7 @@ int main(int argc, char **argv) { defFmt->setCalendar(*cal); // Create a Greek-Latin Transliterator - greek_latin = Transliterator::createInstance("Greek-Latin"); + greek_latin = Transliterator::createInstance("Greek-Latin", UTRANS_FORWARD, status); if (greek_latin == nullptr) { printf("ERROR: Transliterator::createInstance() failed\n"); exit(1); diff --git a/icu4c/source/samples/translit/answers/main_3.cpp b/icu4c/source/samples/translit/answers/main_3.cpp index 1c97f394074..63a0822a773 100644 --- a/icu4c/source/samples/translit/answers/main_3.cpp +++ b/icu4c/source/samples/translit/answers/main_3.cpp @@ -9,7 +9,7 @@ ***********************************************************************/ #include "unicode/translit.h" -#include "unicode/rbt.h" +#include "rbt.h" #include "unicode/unistr.h" #include "unicode/calendar.h" #include "unicode/datefmt.h" @@ -55,16 +55,19 @@ int main(int argc, char **argv) { defFmt->setCalendar(*cal); // Create a Greek-Latin Transliterator - greek_latin = Transliterator::createInstance("Greek-Latin"); + greek_latin = Transliterator::createInstance("Greek-Latin", UTRANS_FORWARD, status); if (greek_latin == nullptr) { printf("ERROR: Transliterator::createInstance() failed\n"); exit(1); } // Create a custom Transliterator + UParseError parseError; rbtUnaccent = new RuleBasedTransliterator("RBTUnaccent", UNACCENT_RULES, UTRANS_FORWARD, + nullptr, + parseError, status); check(status, "RuleBasedTransliterator::ct"); diff --git a/icu4c/source/samples/translit/answers/main_4.cpp b/icu4c/source/samples/translit/answers/main_4.cpp index 249f3751d8e..bfe85171615 100644 --- a/icu4c/source/samples/translit/answers/main_4.cpp +++ b/icu4c/source/samples/translit/answers/main_4.cpp @@ -9,7 +9,7 @@ ***********************************************************************/ #include "unicode/translit.h" -#include "unicode/rbt.h" +#include "rbt.h" #include "unicode/unistr.h" #include "unicode/calendar.h" #include "unicode/datefmt.h" @@ -56,16 +56,19 @@ int main(int argc, char **argv) { defFmt->setCalendar(*cal); // Create a Greek-Latin Transliterator - greek_latin = Transliterator::createInstance("Greek-Latin"); + greek_latin = Transliterator::createInstance("Greek-Latin", UTRANS_FORWARD, status); if (greek_latin == nullptr) { printf("ERROR: Transliterator::createInstance() failed\n"); exit(1); } // Create a custom Transliterator + UParseError parseError; rbtUnaccent = new RuleBasedTransliterator("RBTUnaccent", UNACCENT_RULES, UTRANS_FORWARD, + nullptr, + parseError, status); check(status, "RuleBasedTransliterator::ct"); diff --git a/icu4c/source/samples/translit/answers/unaccent.cpp b/icu4c/source/samples/translit/answers/unaccent.cpp index c934b10eb73..3592f0db081 100644 --- a/icu4c/source/samples/translit/answers/unaccent.cpp +++ b/icu4c/source/samples/translit/answers/unaccent.cpp @@ -13,11 +13,13 @@ using icu::Replaceable; using icu::Transliterator; using icu::UnicodeString; +UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UnaccentTransliterator) + /** * Constructor */ UnaccentTransliterator::UnaccentTransliterator() : - normalizer("", Normalizer::DECOMP), + normalizer("", UNORM_NFD), Transliterator("Unaccent", nullptr) { } diff --git a/icu4c/source/samples/translit/answers/unaccent.h b/icu4c/source/samples/translit/answers/unaccent.h index 38859ca3deb..839d4a95df8 100644 --- a/icu4c/source/samples/translit/answers/unaccent.h +++ b/icu4c/source/samples/translit/answers/unaccent.h @@ -29,6 +29,9 @@ class UnaccentTransliterator : public Transliterator { */ virtual ~UnaccentTransliterator(); + virtual UClassID getDynamicClassID() const override; + U_I18N_API static UClassID U_EXPORT2 getStaticClassID(); + protected: /**