| Index: icu46/source/i18n/remtrans.cpp
|
| ===================================================================
|
| --- icu46/source/i18n/remtrans.cpp (revision 0)
|
| +++ icu46/source/i18n/remtrans.cpp (revision 0)
|
| @@ -0,0 +1,68 @@
|
| +/*
|
| +**********************************************************************
|
| +* Copyright (c) 2001-2008, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +**********************************************************************
|
| +* Date Name Description
|
| +* 04/02/2001 aliu Creation.
|
| +**********************************************************************
|
| +*/
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +#if !UCONFIG_NO_TRANSLITERATION
|
| +
|
| +#include "remtrans.h"
|
| +#include "unicode/unifilt.h"
|
| +
|
| +static const UChar CURR_ID[] = {65, 110, 121, 45, 0x52, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x00}; /* "Any-Remove" */
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +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(::CURR_ID, RemoveTransliterator_create, integerToken(0));
|
| +
|
| + Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("Remove"),
|
| + UNICODE_STRING_SIMPLE("Null"), FALSE);
|
| +}
|
| +
|
| +RemoveTransliterator::RemoveTransliterator() : Transliterator(::CURR_ID, 0) {}
|
| +
|
| +RemoveTransliterator::~RemoveTransliterator() {}
|
| +
|
| +Transliterator* RemoveTransliterator::clone(void) const {
|
| + Transliterator* result = new RemoveTransliterator();
|
| + if (result != NULL && getFilter() != 0) {
|
| + result->adoptFilter((UnicodeFilter*)(getFilter()->clone()));
|
| + }
|
| + return result;
|
| +}
|
| +
|
| +void RemoveTransliterator::handleTransliterate(Replaceable& text, UTransPosition& index,
|
| + UBool /*isIncremental*/) const {
|
| + // Our caller (filteredTransliterate) has already narrowed us
|
| + // to an unfiltered run. Delete it.
|
| + UnicodeString empty;
|
| + text.handleReplaceBetween(index.start, index.limit, empty);
|
| + int32_t len = index.limit - index.start;
|
| + index.contextLimit -= len;
|
| + index.limit -= len;
|
| +}
|
| +U_NAMESPACE_END
|
| +
|
| +#endif /* #if !UCONFIG_NO_TRANSLITERATION */
|
|
|
| Property changes on: icu46/source/i18n/remtrans.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|