1/* fribidi-arabic.h - do Arabic shaping to presentation forms
2 *
3 * Copyright (C) 2005 Behdad Esfahbod
4 *
5 * This file is part of GNU FriBidi.
6 *
7 * GNU FriBidi is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * as published by the Free Software Foundation; either version 2.1
10 * of the License, or (at your option) any later version.
11 *
12 * GNU FriBidi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with GNU FriBidi; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 *
21 * For licensing issues, contact <fribidi.license@gmail.com> or write to
22 * Sharif FarsiWeb, Inc., PO Box 13445-389, Tehran, Iran.
23 *
24 * Author(s):
25 * Behdad Esfahbod, 2005
26 */
27#ifndef _FRIBIDI_ARABIC_H
28#define _FRIBIDI_ARABIC_H
29
30#include "fribidi-common.h"
31
32#include "fribidi-types.h"
33#include "fribidi-flags.h"
34#include "fribidi-bidi-types.h"
35#include "fribidi-joining.h"
36
37#include "fribidi-begindecls.h"
38
39
40/* fribidi_shape_arabic - do Arabic shaping
41 *
42 * The actual shaping that is done depends on the flags set. Only flags
43 * starting with FRIBIDI_FLAG_SHAPE_ARAB_ affect this function.
44 * Currently these are:
45 *
46 * * FRIBIDI_FLAG_SHAPE_MIRRORING: Do mirroring.
47 * * FRIBIDI_FLAG_SHAPE_ARAB_PRES: Shape Arabic characters to their
48 * presentation form glyphs.
49 * * FRIBIDI_FLAG_SHAPE_ARAB_LIGA: Form mandatory Arabic ligatures.
50 * * FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE: Perform additional Arabic shaping
51 * suitable for text rendered on
52 * grid terminals with no mark
53 * rendering capabilities.
54 *
55 * Of the above, FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE is only used in special
56 * cases, but the rest are recommended in any environment that doesn't have
57 * other means for doing Arabic shaping. The set of extra flags that enable
58 * this level of Arabic support has a shortcut named FRIBIDI_FLAGS_ARABIC.
59 */
60FRIBIDI_ENTRY void
61fribidi_shape_arabic (
62 FriBidiFlags flags, /* shaping flags */
63 const FriBidiLevel *embedding_levels,
64 const FriBidiStrIndex len, /* input string length */
65 FriBidiArabicProp *ar_props, /* input/output Arabic properties as
66 * computed by fribidi_join_arabic */
67 FriBidiChar *str /* string to shape */
68);
69
70#include "fribidi-enddecls.h"
71
72#endif /* !_FRIBIDI_ARABIC_H */
73/* Editor directions:
74 * Local Variables:
75 * mode: c
76 * c-basic-offset: 2
77 * indent-tabs-mode: t
78 * tab-width: 8
79 * End:
80 * vim: textwidth=78: autoindent: cindent: shiftwidth=2: tabstop=8:
81 */
82

source code of gtk/subprojects/fribidi/lib/fribidi-arabic.h