| Index: icu51/source/common/chariter.cpp
|
| ===================================================================
|
| --- icu51/source/common/chariter.cpp (revision 0)
|
| +++ icu51/source/common/chariter.cpp (revision 0)
|
| @@ -0,0 +1,98 @@
|
| +/*
|
| +**********************************************************************
|
| +* Copyright (C) 1999-2011, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +**********************************************************************
|
| +*/
|
| +
|
| +#include "unicode/chariter.h"
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +ForwardCharacterIterator::~ForwardCharacterIterator() {}
|
| +ForwardCharacterIterator::ForwardCharacterIterator()
|
| +: UObject()
|
| +{}
|
| +ForwardCharacterIterator::ForwardCharacterIterator(const ForwardCharacterIterator &other)
|
| +: UObject(other)
|
| +{}
|
| +
|
| +
|
| +CharacterIterator::CharacterIterator()
|
| +: textLength(0), pos(0), begin(0), end(0) {
|
| +}
|
| +
|
| +CharacterIterator::CharacterIterator(int32_t length)
|
| +: textLength(length), pos(0), begin(0), end(length) {
|
| + if(textLength < 0) {
|
| + textLength = end = 0;
|
| + }
|
| +}
|
| +
|
| +CharacterIterator::CharacterIterator(int32_t length, int32_t position)
|
| +: textLength(length), pos(position), begin(0), end(length) {
|
| + if(textLength < 0) {
|
| + textLength = end = 0;
|
| + }
|
| + if(pos < 0) {
|
| + pos = 0;
|
| + } else if(pos > end) {
|
| + pos = end;
|
| + }
|
| +}
|
| +
|
| +CharacterIterator::CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
|
| +: textLength(length), pos(position), begin(textBegin), end(textEnd) {
|
| + if(textLength < 0) {
|
| + textLength = 0;
|
| + }
|
| + if(begin < 0) {
|
| + begin = 0;
|
| + } else if(begin > textLength) {
|
| + begin = textLength;
|
| + }
|
| + if(end < begin) {
|
| + end = begin;
|
| + } else if(end > textLength) {
|
| + end = textLength;
|
| + }
|
| + if(pos < begin) {
|
| + pos = begin;
|
| + } else if(pos > end) {
|
| + pos = end;
|
| + }
|
| +}
|
| +
|
| +CharacterIterator::~CharacterIterator() {}
|
| +
|
| +CharacterIterator::CharacterIterator(const CharacterIterator &that) :
|
| +ForwardCharacterIterator(that),
|
| +textLength(that.textLength), pos(that.pos), begin(that.begin), end(that.end)
|
| +{
|
| +}
|
| +
|
| +CharacterIterator &
|
| +CharacterIterator::operator=(const CharacterIterator &that) {
|
| + ForwardCharacterIterator::operator=(that);
|
| + textLength = that.textLength;
|
| + pos = that.pos;
|
| + begin = that.begin;
|
| + end = that.end;
|
| + return *this;
|
| +}
|
| +
|
| +// implementing first[32]PostInc() directly in a subclass should be faster
|
| +// but these implementations make subclassing a little easier
|
| +UChar
|
| +CharacterIterator::firstPostInc(void) {
|
| + setToStart();
|
| + return nextPostInc();
|
| +}
|
| +
|
| +UChar32
|
| +CharacterIterator::first32PostInc(void) {
|
| + setToStart();
|
| + return next32PostInc();
|
| +}
|
| +
|
| +U_NAMESPACE_END
|
|
|
| Property changes on: icu51/source/common/chariter.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|