|
||||
File indexing completed on 2025-01-18 09:57:27
0001 /* FriBidi 0002 * fribidi-joining.h - Arabic joining algorithm 0003 * 0004 * Authors: 0005 * Behdad Esfahbod, 2004 0006 * 0007 * Copyright (C) 2004 Sharif FarsiWeb, Inc 0008 * Copyright (C) 2004 Behdad Esfahbod 0009 * 0010 * This library is free software; you can redistribute it and/or 0011 * modify it under the terms of the GNU Lesser General Public 0012 * License as published by the Free Software Foundation; either 0013 * version 2.1 of the License, or (at your option) any later version. 0014 * 0015 * This library is distributed in the hope that it will be useful, 0016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0018 * Lesser General Public License for more details. 0019 * 0020 * You should have received a copy of the GNU Lesser General Public License 0021 * along with this library, in a file named COPYING; if not, write to the 0022 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0023 * Boston, MA 02110-1301, USA 0024 * 0025 * For licensing issues, contact <fribidi.license@gmail.com>. 0026 */ 0027 #ifndef _FRIBIDI_JOINING_H 0028 #define _FRIBIDI_JOINING_H 0029 0030 #include "fribidi-common.h" 0031 0032 #include "fribidi-types.h" 0033 #include "fribidi-bidi-types.h" 0034 #include "fribidi-joining-types.h" 0035 0036 #include "fribidi-begindecls.h" 0037 0038 /* fribidi_join_arabic - do Arabic joining 0039 * 0040 * This function does the Arabic joining algorithm. Means, given Arabic 0041 * joining types of the characters in ar_props (don't worry, 0042 * FriBidiJoiningType can be casted to FriBidiArabicProp automagically), this 0043 * function modifies this properties to grasp the effect of neighboring 0044 * characters. You probably need this information later to do Arabic shaping. 0045 * 0046 * This function implements rules R1 to R7 inclusive (all rules) of the Arabic 0047 * Cursive Joining algorithm of the Unicode standard as available at 0048 * http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462. It also 0049 * interacts correctly with the bidirection algorithm as defined in Section 0050 * 3.5 Shaping of the Unicode Bidirectional Algorithm available at 0051 * http://www.unicode.org/reports/tr9/#Shaping. 0052 * 0053 * There are a few macros defined in fribidi-joining-types.h for querying the 0054 * Arabic properties computed by this function. 0055 */ 0056 FRIBIDI_ENTRY void fribidi_join_arabic ( 0057 const FriBidiCharType *bidi_types, /* input list of bidi types as 0058 returned by 0059 fribidi_get_bidi_types() */ 0060 const FriBidiStrIndex len, /* input string length */ 0061 const FriBidiLevel *embedding_levels, /* input list of embedding 0062 levels, as returned by 0063 fribidi_get_par_embedding_levels */ 0064 FriBidiArabicProp *ar_props /* Arabic properties to analyze, initialized by 0065 joining types, as returned by 0066 fribidi_get_joining_types */ 0067 ); 0068 0069 #include "fribidi-enddecls.h" 0070 0071 #endif /* !_FRIBIDI_JOINING_H */ 0072 /* Editor directions: 0073 * vim:textwidth=78:tabstop=8:shiftwidth=2:autoindent:cindent 0074 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |