]>
git.saurik.com Git - apple/icu.git/blob - icuSources/samples/translit/answers/unaccent.cpp
1 /********************************************************************
3 * Copyright (c) 1999-2002, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
12 UnaccentTransliterator::UnaccentTransliterator() :
13 normalizer("", Normalizer::DECOMP
),
14 Transliterator("Unaccent", 0) {
20 UnaccentTransliterator::~UnaccentTransliterator() {
24 * Remove accents from a character using Normalizer.
26 UChar
UnaccentTransliterator::unaccent(UChar c
) const {
28 UErrorCode status
= U_ZERO_ERROR
;
29 UnaccentTransliterator
* t
= (UnaccentTransliterator
*)this;
31 t
->normalizer
.setText(str
, status
);
32 if (U_FAILURE(status
)) {
35 return (UChar
) t
->normalizer
.next();
39 * Implement Transliterator API
41 void UnaccentTransliterator::handleTransliterate(Replaceable
& text
,
42 UTransPosition
& index
,
43 UBool incremental
) const {
44 UnicodeString
str("a");
45 while (index
.start
< index
.limit
) {
46 UChar c
= text
.charAt(index
.start
);
47 UChar d
= unaccent(c
);
50 text
.handleReplaceBetween(index
.start
, index
.start
+1, str
);