Home | History | Annotate | Download | only in i18n
      1 /********************************************************************
      2  * COPYRIGHT:
      3  * Copyright (c) 2008-2010, International Business Machines Corporation and
      4  * others. All Rights Reserved.
      5  ********************************************************************/
      6 //
      7 //  file:  regextxt.h
      8 //
      9 //  This file contains utility code for supporting UText in the regular expression engine.
     10 //
     11 //  This class is internal to the regular expression implementation.
     12 //  For the public Regular Expression API, see the file "unicode/regex.h"
     13 //
     14 
     15 #ifndef _REGEXTXT_H
     16 #define _REGEXTXT_H
     17 
     18 #include "unicode/utypes.h"
     19 #include "unicode/utext.h"
     20 
     21 U_NAMESPACE_BEGIN
     22 
     23 #define UTEXT_USES_U16(ut) (NULL==((ut)->pFuncs->mapNativeIndexToUTF16))
     24 
     25 #if 0
     26 #define REGEX_DISABLE_CHUNK_MODE 1
     27 #endif
     28 
     29 #ifdef REGEX_DISABLE_CHUNK_MODE
     30 #  define UTEXT_FULL_TEXT_IN_CHUNK(ut,len) (FALSE)
     31 #else
     32 #  define UTEXT_FULL_TEXT_IN_CHUNK(ut,len) ((0==((ut)->chunkNativeStart))&&((len)==((ut)->chunkNativeLimit))&&((len)==((ut)->nativeIndexingLimit)))
     33 #endif
     34 
     35 struct URegexUTextUnescapeCharContext {
     36     UText *text;
     37     int32_t lastOffset;
     38 };
     39 #define U_REGEX_UTEXT_UNESCAPE_CONTEXT(text) { (text), -1 }
     40 
     41 U_CFUNC UChar U_CALLCONV
     42 uregex_utext_unescape_charAt(int32_t offset, void * /* struct URegexUTextUnescapeCharContext* */ context);
     43 U_CFUNC UChar U_CALLCONV
     44 uregex_ucstr_unescape_charAt(int32_t offset, void * /* UChar* */ context);
     45 
     46 U_NAMESPACE_END
     47 
     48 #endif
     49