Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:27

0001 /* fribidi-arabic.h - do Arabic shaping to presentation forms
0002  *
0003  * Copyright (C) 2005  Behdad Esfahbod
0004  * 
0005  * This file is part of GNU FriBidi.
0006  * 
0007  * GNU FriBidi is free software; you can redistribute it and/or
0008  * modify it under the terms of the GNU Lesser General Public License
0009  * as published by the Free Software Foundation; either version 2.1
0010  * of the License, or (at your option) any later version.
0011  * 
0012  * GNU FriBidi is distributed in the hope that it will be useful,
0013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015  * GNU Lesser General Public License for more details.
0016  * 
0017  * You should have received a copy of the GNU Lesser General Public License
0018  * along with GNU FriBidi; if not, write to the Free Software
0019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0020  * 
0021  * For licensing issues, contact <fribidi.license@gmail.com> or write to
0022  * Sharif FarsiWeb, Inc., PO Box 13445-389, Tehran, Iran.
0023  *
0024  * Author(s):
0025  *   Behdad Esfahbod, 2005
0026  */
0027 #ifndef _FRIBIDI_ARABIC_H
0028 #define _FRIBIDI_ARABIC_H
0029 
0030 #include "fribidi-common.h"
0031 
0032 #include "fribidi-types.h"
0033 #include "fribidi-flags.h"
0034 #include "fribidi-bidi-types.h"
0035 #include "fribidi-joining.h"
0036 
0037 #include "fribidi-begindecls.h"
0038 
0039 
0040 /* fribidi_shape_arabic - do Arabic shaping
0041  *
0042  * The actual shaping that is done depends on the flags set.  Only flags
0043  * starting with FRIBIDI_FLAG_SHAPE_ARAB_ affect this function.
0044  * Currently these are:
0045  *
0046  *  * FRIBIDI_FLAG_SHAPE_MIRRORING: Do mirroring.
0047  *  * FRIBIDI_FLAG_SHAPE_ARAB_PRES: Shape Arabic characters to their
0048  *                  presentation form glyphs.
0049  *  * FRIBIDI_FLAG_SHAPE_ARAB_LIGA: Form mandatory Arabic ligatures.
0050  *  * FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE: Perform additional Arabic shaping
0051  *                     suitable for text rendered on
0052  *                     grid terminals with no mark
0053  *                     rendering capabilities.
0054  *
0055  * Of the above, FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE is only used in special
0056  * cases, but the rest are recommended in any environment that doesn't have
0057  * other means for doing Arabic shaping.  The set of extra flags that enable
0058  * this level of Arabic support has a shortcut named FRIBIDI_FLAGS_ARABIC.
0059  */
0060 FRIBIDI_ENTRY void
0061 fribidi_shape_arabic (
0062   FriBidiFlags flags, /* shaping flags */
0063   const FriBidiLevel *embedding_levels,
0064   const FriBidiStrIndex len,    /* input string length */
0065   FriBidiArabicProp *ar_props, /* input/output Arabic properties as
0066                 * computed by fribidi_join_arabic */
0067   FriBidiChar *str      /* string to shape */
0068 );
0069 
0070 #include "fribidi-enddecls.h"
0071 
0072 #endif /* !_FRIBIDI_ARABIC_H */
0073 /* Editor directions:
0074  * Local Variables:
0075  *   mode: c
0076  *   c-basic-offset: 2
0077  *   indent-tabs-mode: t
0078  *   tab-width: 8
0079  * End:
0080  * vim: textwidth=78: autoindent: cindent: shiftwidth=2: tabstop=8:
0081  */