| 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
|
|
|
|
|