| /******************************************************************** | 
 |  * COPYRIGHT:  | 
 |  * Copyright (c) 1997-2001, International Business Machines Corporation and | 
 |  * others. All Rights Reserved. | 
 |  ********************************************************************/ | 
 | /*   file name:  cbiditst.h | 
 | *   encoding:   US-ASCII | 
 | *   tab size:   8 (not used) | 
 | *   indentation:4 | 
 | * | 
 | *   created on: 1999sep22 | 
 | *   created by: Markus W. Scherer | 
 | */ | 
 |  | 
 | #ifndef CBIDITST_H | 
 | #define CBIDITST_H | 
 |  | 
 | #include "unicode/utypes.h" | 
 | #include "unicode/uchar.h" | 
 | #include "unicode/ubidi.h" | 
 |  | 
 | #ifdef XP_CPLUSPLUS | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | #define MAX_STRING_LENGTH 200 | 
 |  | 
 | /* length of an array */ | 
 | #define ARRAY_LENGTH(array) (sizeof(array)/sizeof(array[0])) | 
 |  | 
 | /*  Comparing the description of the BiDi algorithm with this implementation | 
 |     is easier with the same names for the BiDi types in the code as there. | 
 |     See UCharDirection in uchar.h . | 
 | */ | 
 | enum {  | 
 |     L=  U_LEFT_TO_RIGHT, | 
 |     R=  U_RIGHT_TO_LEFT, | 
 |     EN= U_EUROPEAN_NUMBER, | 
 |     ES= U_EUROPEAN_NUMBER_SEPARATOR, | 
 |     ET= U_EUROPEAN_NUMBER_TERMINATOR, | 
 |     AN= U_ARABIC_NUMBER, | 
 |     CS= U_COMMON_NUMBER_SEPARATOR, | 
 |     B=  U_BLOCK_SEPARATOR, | 
 |     S=  U_SEGMENT_SEPARATOR, | 
 |     WS= U_WHITE_SPACE_NEUTRAL, | 
 |     ON= U_OTHER_NEUTRAL, | 
 |     LRE=U_LEFT_TO_RIGHT_EMBEDDING, | 
 |     LRO=U_LEFT_TO_RIGHT_OVERRIDE, | 
 |     AL= U_RIGHT_TO_LEFT_ARABIC, | 
 |     RLE=U_RIGHT_TO_LEFT_EMBEDDING, | 
 |     RLO=U_RIGHT_TO_LEFT_OVERRIDE, | 
 |     PDF=U_POP_DIRECTIONAL_FORMAT, | 
 |     NSM=U_DIR_NON_SPACING_MARK, | 
 |     BN= U_BOUNDARY_NEUTRAL, | 
 |     dirPropCount | 
 | }; | 
 |  | 
 | extern const char * | 
 | dirPropNames[dirPropCount]; | 
 |  | 
 | extern const UChar | 
 | charFromDirProp[dirPropCount]; | 
 |  | 
 | typedef struct { | 
 |     const uint8_t *text; | 
 |     UTextOffset length; | 
 |     UBiDiLevel paraLevel; | 
 |     UTextOffset lineStart, lineLimit; | 
 |     UBiDiDirection direction; | 
 |     UBiDiLevel resultLevel; | 
 |     const UBiDiLevel *levels; | 
 |     const uint8_t *visualMap; | 
 | } BiDiTestData; | 
 |  | 
 | extern BiDiTestData | 
 | tests[]; | 
 |  | 
 | extern int | 
 | bidiTestCount; | 
 |  | 
 | #ifdef XP_CPLUSPLUS | 
 | } | 
 | #endif | 
 |  | 
 | #endif |