fribidi-arabic.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. #include "fribidi-common.h"
  30. #include "fribidi-types.h"
  31. #include "fribidi-flags.h"
  32. #include "fribidi-bidi-types.h"
  33. #include "fribidi-joining.h"
  34. #include "fribidi-begindecls.h"
  35. /* fribidi_shape_arabic - do Arabic shaping
  36. *
  37. * The actual shaping that is done depends on the flags set. Only flags
  38. * starting with FRIBIDI_FLAG_SHAPE_ARAB_ affect this function.
  39. * Currently these are:
  40. *
  41. * * FRIBIDI_FLAG_SHAPE_MIRRORING: Do mirroring.
  42. * * FRIBIDI_FLAG_SHAPE_ARAB_PRES: Shape Arabic characters to their
  43. * presentation form glyphs.
  44. * * FRIBIDI_FLAG_SHAPE_ARAB_LIGA: Form mandatory Arabic ligatures.
  45. * * FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE: Perform additional Arabic shaping
  46. * suitable for text rendered on
  47. * grid terminals with no mark
  48. * rendering capabilities.
  49. *
  50. * Of the above, FRIBIDI_FLAG_SHAPE_ARAB_CONSOLE is only used in special
  51. * cases, but the rest are recommended in any environment that doesn't have
  52. * other means for doing Arabic shaping. The set of extra flags that enable
  53. * this level of Arabic support has a shortcut named FRIBIDI_FLAGS_ARABIC.
  54. */
  55. FRIBIDI_ENTRY void
  56. fribidi_shape_arabic (
  57. FriBidiFlags flags, /* shaping flags */
  58. const FriBidiLevel *embedding_levels,
  59. const FriBidiStrIndex len, /* input string length */
  60. FriBidiArabicProp *ar_props, /* input/output Arabic properties as
  61. * computed by fribidi_join_arabic */
  62. FriBidiChar *str /* string to shape */
  63. );
  64. #include "fribidi-enddecls.h"
  65. #endif /* !_FRIBIDI_ARABIC_H */
  66. /* Editor directions:
  67. * Local Variables:
  68. * mode: c
  69. * c-basic-offset: 2
  70. * indent-tabs-mode: t
  71. * tab-width: 8
  72. * End:
  73. * vim: textwidth=78: autoindent: cindent: shiftwidth=2: tabstop=8:
  74. */