ICU 73.2  73.2
ushape.h
Go to the documentation of this file.
00001 // © 2016 and later: Unicode, Inc. and others.
00002 // License & terms of use: http://www.unicode.org/copyright.html
00003 /*
00004 ******************************************************************************
00005 *
00006 *   Copyright (C) 2000-2012, International Business Machines
00007 *   Corporation and others.  All Rights Reserved.
00008 *
00009 ******************************************************************************
00010 *   file name:  ushape.h
00011 *   encoding:   UTF-8
00012 *   tab size:   8 (not used)
00013 *   indentation:4
00014 *
00015 *   created on: 2000jun29
00016 *   created by: Markus W. Scherer
00017 */
00018 
00019 #ifndef __USHAPE_H__
00020 #define __USHAPE_H__
00021 
00022 #include "unicode/utypes.h"
00023 
00101 U_CAPI int32_t U_EXPORT2
00102 u_shapeArabic(const UChar *source, int32_t sourceLength,
00103               UChar *dest, int32_t destSize,
00104               uint32_t options,
00105               UErrorCode *pErrorCode);
00106 
00112 #define U_SHAPE_LENGTH_GROW_SHRINK              0
00113 
00120 #define U_SHAPE_LAMALEF_RESIZE                  0 
00121 
00127 #define U_SHAPE_LENGTH_FIXED_SPACES_NEAR        1
00128 
00136 #define U_SHAPE_LAMALEF_NEAR                    1 
00137 
00143 #define U_SHAPE_LENGTH_FIXED_SPACES_AT_END      2
00144 
00152 #define U_SHAPE_LAMALEF_END                     2 
00153 
00159 #define U_SHAPE_LENGTH_FIXED_SPACES_AT_BEGINNING 3
00160 
00168 #define U_SHAPE_LAMALEF_BEGIN                    3 
00169 
00170 
00184 #define U_SHAPE_LAMALEF_AUTO                     0x10000 
00185 
00187 #define U_SHAPE_LENGTH_MASK                      0x10003 /* Changed old value 3 */
00188 
00189 
00194 #define U_SHAPE_LAMALEF_MASK                     0x10003 /* updated */
00195 
00197 #define U_SHAPE_TEXT_DIRECTION_LOGICAL          0
00198 
00206 #define U_SHAPE_TEXT_DIRECTION_VISUAL_RTL       0
00207 
00214 #define U_SHAPE_TEXT_DIRECTION_VISUAL_LTR       4
00215 
00217 #define U_SHAPE_TEXT_DIRECTION_MASK             4
00218 
00219 
00221 #define U_SHAPE_LETTERS_NOOP                    0
00222 
00224 #define U_SHAPE_LETTERS_SHAPE                   8
00225 
00227 #define U_SHAPE_LETTERS_UNSHAPE                 0x10
00228 
00236 #define U_SHAPE_LETTERS_SHAPE_TASHKEEL_ISOLATED 0x18
00237 
00238 
00240 #define U_SHAPE_LETTERS_MASK                        0x18
00241 
00242 
00244 #define U_SHAPE_DIGITS_NOOP                     0
00245 
00251 #define U_SHAPE_DIGITS_EN2AN                    0x20
00252 
00258 #define U_SHAPE_DIGITS_AN2EN                    0x40
00259 
00271 #define U_SHAPE_DIGITS_ALEN2AN_INIT_LR          0x60
00272 
00283 #define U_SHAPE_DIGITS_ALEN2AN_INIT_AL          0x80
00284 
00286 #define U_SHAPE_DIGITS_RESERVED                 0xa0
00287 
00289 #define U_SHAPE_DIGITS_MASK                     0xe0
00290 
00291 
00293 #define U_SHAPE_DIGIT_TYPE_AN                   0
00294 
00296 #define U_SHAPE_DIGIT_TYPE_AN_EXTENDED          0x100
00297 
00299 #define U_SHAPE_DIGIT_TYPE_RESERVED             0x200
00300 
00302 #define U_SHAPE_DIGIT_TYPE_MASK                 0x300 /* I need to change this from 0x3f00 to 0x300 */
00303 
00311 #define U_SHAPE_AGGREGATE_TASHKEEL              0x4000
00312 
00313 #define U_SHAPE_AGGREGATE_TASHKEEL_NOOP         0
00314 
00315 #define U_SHAPE_AGGREGATE_TASHKEEL_MASK         0x4000
00316 
00323 #define U_SHAPE_PRESERVE_PRESENTATION           0x8000
00324 
00329 #define U_SHAPE_PRESERVE_PRESENTATION_NOOP      0
00330 
00331 #define U_SHAPE_PRESERVE_PRESENTATION_MASK      0x8000
00332 
00333 /* Seen Tail option */ 
00346 #define U_SHAPE_SEEN_TWOCELL_NEAR     0x200000
00347 
00352 #define U_SHAPE_SEEN_MASK             0x700000
00353 
00354 /* YehHamza option */ 
00367 #define U_SHAPE_YEHHAMZA_TWOCELL_NEAR      0x1000000
00368 
00369 
00374 #define U_SHAPE_YEHHAMZA_MASK              0x3800000
00375 
00376 /* New Tashkeel options */ 
00386 #define U_SHAPE_TASHKEEL_BEGIN                      0x40000
00387 
00397 #define U_SHAPE_TASHKEEL_END                        0x60000
00398 
00407 #define U_SHAPE_TASHKEEL_RESIZE                     0x80000
00408 
00418 #define U_SHAPE_TASHKEEL_REPLACE_BY_TATWEEL         0xC0000
00419 
00424 #define U_SHAPE_TASHKEEL_MASK                       0xE0000
00425 
00426 
00427 /* Space location Control options */ 
00448 #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_BEGIN_END 0x4000000
00449 
00454 #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_MASK      0x4000000
00455 
00468 #define U_SHAPE_TAIL_NEW_UNICODE        0x8000000
00469 
00474 #define U_SHAPE_TAIL_TYPE_MASK          0x8000000
00475 
00476 #endif