X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..249c4c5ea9376c24572daf9c2effa7484a282f14:/icuSources/i18n/remtrans.cpp diff --git a/icuSources/i18n/remtrans.cpp b/icuSources/i18n/remtrans.cpp index 04c7372c..70a6ed39 100644 --- a/icuSources/i18n/remtrans.cpp +++ b/icuSources/i18n/remtrans.cpp @@ -1,6 +1,8 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** -* Copyright (c) 2001, International Business Machines +* Copyright (c) 2001-2011, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * Date Name Description @@ -13,38 +15,45 @@ #if !UCONFIG_NO_TRANSLITERATION #include "remtrans.h" +#include "unicode/unifilt.h" -static const UChar ID[] = {65, 110, 121, 45, 0x52, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x00}; /* "Any-Remove" */ +static const UChar CURR_ID[] = {65, 110, 121, 45, 0x52, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x00}; /* "Any-Remove" */ U_NAMESPACE_BEGIN -const char RemoveTransliterator::fgClassID=0; +UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RemoveTransliterator) + +/** + * Factory method + */ +static Transliterator* RemoveTransliterator_create(const UnicodeString& /*ID*/, + Transliterator::Token /*context*/) { + /* We don't need the ID or context. We just remove data */ + return new RemoveTransliterator(); +} /** * System registration hook. */ void RemoveTransliterator::registerIDs() { - Transliterator::_registerFactory(::ID, _create, integerToken(0)); + Transliterator::_registerFactory(UnicodeString(TRUE, ::CURR_ID, -1), + RemoveTransliterator_create, integerToken(0)); Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("Remove"), UNICODE_STRING_SIMPLE("Null"), FALSE); } -/** - * Factory method - */ -Transliterator* RemoveTransliterator::_create(const UnicodeString& ID, - Token /*context*/) { - return new RemoveTransliterator(); -} - -RemoveTransliterator::RemoveTransliterator() : Transliterator(::ID, 0) {} +RemoveTransliterator::RemoveTransliterator() : Transliterator(UnicodeString(TRUE, ::CURR_ID, -1), 0) {} RemoveTransliterator::~RemoveTransliterator() {} Transliterator* RemoveTransliterator::clone(void) const { - return new RemoveTransliterator(); + Transliterator* result = new RemoveTransliterator(); + if (result != NULL && getFilter() != 0) { + result->adoptFilter((UnicodeFilter*)(getFilter()->clone())); + } + return result; } void RemoveTransliterator::handleTransliterate(Replaceable& text, UTransPosition& index,