ICU 4.2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ushape.h
Go to the documentation of this file.
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 2000-2009, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 ******************************************************************************
8 * file name: ushape.h
9 * encoding: US-ASCII
10 * tab size: 8 (not used)
11 * indentation:4
12 *
13 * created on: 2000jun29
14 * created by: Markus W. Scherer
15 */
16 
17 #ifndef __USHAPE_H__
18 #define __USHAPE_H__
19 
20 #include "unicode/utypes.h"
21 
100 u_shapeArabic(const UChar *source, int32_t sourceLength,
101  UChar *dest, int32_t destSize,
102  uint32_t options,
103  UErrorCode *pErrorCode);
104 
110 #define U_SHAPE_LENGTH_GROW_SHRINK 0
111 
117 #define U_SHAPE_LAMALEF_RESIZE 0
118 
124 #define U_SHAPE_LENGTH_FIXED_SPACES_NEAR 1
125 
132 #define U_SHAPE_LAMALEF_NEAR 1
133 
139 #define U_SHAPE_LENGTH_FIXED_SPACES_AT_END 2
140 
147 #define U_SHAPE_LAMALEF_END 2
148 
154 #define U_SHAPE_LENGTH_FIXED_SPACES_AT_BEGINNING 3
155 
162 #define U_SHAPE_LAMALEF_BEGIN 3
163 
164 
177 #define U_SHAPE_LAMALEF_AUTO 0x10000
178 
180 #define U_SHAPE_LENGTH_MASK 0x10003 /* Changed old value 3 */
181 
182 
184 #define U_SHAPE_LAMALEF_MASK 0x10003 /* updated */
185 
187 #define U_SHAPE_TEXT_DIRECTION_LOGICAL 0
188 
195 #define U_SHAPE_TEXT_DIRECTION_VISUAL_RTL 0
196 
203 #define U_SHAPE_TEXT_DIRECTION_VISUAL_LTR 4
204 
206 #define U_SHAPE_TEXT_DIRECTION_MASK 4
207 
208 
210 #define U_SHAPE_LETTERS_NOOP 0
211 
213 #define U_SHAPE_LETTERS_SHAPE 8
214 
216 #define U_SHAPE_LETTERS_UNSHAPE 0x10
217 
225 #define U_SHAPE_LETTERS_SHAPE_TASHKEEL_ISOLATED 0x18
226 
227 
229 #define U_SHAPE_LETTERS_MASK 0x18
230 
231 
233 #define U_SHAPE_DIGITS_NOOP 0
234 
240 #define U_SHAPE_DIGITS_EN2AN 0x20
241 
247 #define U_SHAPE_DIGITS_AN2EN 0x40
248 
260 #define U_SHAPE_DIGITS_ALEN2AN_INIT_LR 0x60
261 
272 #define U_SHAPE_DIGITS_ALEN2AN_INIT_AL 0x80
273 
275 #define U_SHAPE_DIGITS_RESERVED 0xa0
276 
278 #define U_SHAPE_DIGITS_MASK 0xe0
279 
280 
282 #define U_SHAPE_DIGIT_TYPE_AN 0
283 
285 #define U_SHAPE_DIGIT_TYPE_AN_EXTENDED 0x100
286 
288 #define U_SHAPE_DIGIT_TYPE_RESERVED 0x200
289 
291 #define U_SHAPE_DIGIT_TYPE_MASK 0x300 /* I need to change this from 0x3f00 to 0x300 */
292 
300 #define U_SHAPE_AGGREGATE_TASHKEEL 0x4000
301 
302 #define U_SHAPE_AGGREGATE_TASHKEEL_NOOP 0
303 
304 #define U_SHAPE_AGGREGATE_TASHKEEL_MASK 0x4000
305 
312 #define U_SHAPE_PRESERVE_PRESENTATION 0x8000
313 
318 #define U_SHAPE_PRESERVE_PRESENTATION_NOOP 0
319 
320 #define U_SHAPE_PRESERVE_PRESENTATION_MASK 0x8000
321 
322 /* Seen Tail option */
334 #define U_SHAPE_SEEN_TWOCELL_NEAR 0x200000
335 
337 #define U_SHAPE_SEEN_MASK 0x700000
338 
339 /* YehHamza option */
351 #define U_SHAPE_YEHHAMZA_TWOCELL_NEAR 0x1000000
352 
353 
355 #define U_SHAPE_YEHHAMZA_MASK 0x3800000
356 
357 /* New Tashkeel options */
366 #define U_SHAPE_TASHKEEL_BEGIN 0x40000
367 
376 #define U_SHAPE_TASHKEEL_END 0x60000
377 
385 #define U_SHAPE_TASHKEEL_RESIZE 0x80000
386 
395 #define U_SHAPE_TASHKEEL_REPLACE_BY_TATWEEL 0xC0000
396 
398 #define U_SHAPE_TASHKEEL_MASK 0xE0000
399 
400 
401 /* Space location Control options */
421 #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_BEGIN_END 0x4000000
422 
424 #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_MASK 0x4000000
425 
437 #define SHAPE_TAIL_NEW_UNICODE 0x8000000
438 
440 #define SHAPE_TAIL_TYPE_MASK 0x8000000
441 
442 #endif
unsigned int uint32_t
Define 64 bit limits.
Definition: pwin32.h:147
int32_t u_shapeArabic(const UChar *source, int32_t sourceLength, UChar *dest, int32_t destSize, uint32_t options, UErrorCode *pErrorCode)
Shape Arabic text on a character basis.
#define U_EXPORT2
Definition: platform.h:338
uint16_t UChar
Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned.
Definition: umachine.h:299
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:593
Basic definitions for ICU, for both C and C++ APIs.
signed int int32_t
Define 64 bit limits.
Definition: pwin32.h:143
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:117