|
||||
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 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |