Index: icu46/source/i18n/regextxt.cpp |
=================================================================== |
--- icu46/source/i18n/regextxt.cpp (revision 0) |
+++ icu46/source/i18n/regextxt.cpp (revision 0) |
@@ -0,0 +1,45 @@ |
+/******************************************************************** |
+ * COPYRIGHT: |
+ * Copyright (c) 2008-2010, International Business Machines Corporation and |
+ * others. All Rights Reserved. |
+ ********************************************************************/ |
+// |
+// file: regextxt.cpp |
+// |
+// This file contains utility code for supporting UText in the regular expression engine. |
+// |
+ |
+#include "regextxt.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+U_CFUNC UChar U_CALLCONV |
+uregex_utext_unescape_charAt(int32_t offset, void *ct) { |
+ struct URegexUTextUnescapeCharContext *context = (struct URegexUTextUnescapeCharContext *)ct; |
+ UChar32 c; |
+ if (offset == context->lastOffset + 1) { |
+ c = UTEXT_NEXT32(context->text); |
+ context->lastOffset++; |
+ } else if (offset == context->lastOffset) { |
+ c = UTEXT_PREVIOUS32(context->text); |
+ UTEXT_NEXT32(context->text); |
+ } else { |
+ utext_moveIndex32(context->text, offset - context->lastOffset - 1); |
+ c = UTEXT_NEXT32(context->text); |
+ context->lastOffset = offset; |
+ } |
+ |
+ // !!!: Doesn't handle characters outside BMP |
+ if (U_IS_BMP(c)) { |
+ return (UChar)c; |
+ } else { |
+ return 0; |
+ } |
+} |
+ |
+U_CFUNC UChar U_CALLCONV |
+uregex_ucstr_unescape_charAt(int32_t offset, void *context) { |
+ return ((UChar *)context)[offset]; |
+} |
+ |
+U_NAMESPACE_END |
Property changes on: icu46/source/i18n/regextxt.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |