Index: icu46/source/common/chariter.cpp |
=================================================================== |
--- icu46/source/common/chariter.cpp (revision 0) |
+++ icu46/source/common/chariter.cpp (revision 0) |
@@ -0,0 +1,96 @@ |
+/* |
+********************************************************************** |
+* Copyright (C) 1999-2004, 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(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: icu46/source/common/chariter.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |