(root)/
fribidi-1.0.13/
lib/
fribidi-arabic.h
       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   */
      60  FRIBIDI_ENTRY void
      61  fribidi_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   */