67 lines
2.3 KiB
C
67 lines
2.3 KiB
C
/****************************************************************************/
|
|
/* */
|
|
/* The FreeType project -- a free and portable quality TrueType renderer. */
|
|
/* */
|
|
/* Copyright 1996-1999 by */
|
|
/* D. Turner, R.Wilhelm, and W. Lemberg */
|
|
/* */
|
|
/* arabic -- An implementation of the contextual algorithm given in the */
|
|
/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */
|
|
/* `final' properties to an input string of character codes for the Arabic */
|
|
/* script. */
|
|
/* */
|
|
/****************************************************************************/
|
|
|
|
|
|
#include "freetype.h"
|
|
#include "ftxopen.h"
|
|
|
|
|
|
enum joining_type_
|
|
{
|
|
isolated = 1, /* nominal */
|
|
final = 2, /* right_joining */
|
|
initial = 4, /* left_joining */
|
|
medial = 8 /* double_joining */
|
|
};
|
|
|
|
typedef enum joining_type_ joining_type;
|
|
|
|
|
|
/* A glyph's property value as needed by e.g. TT_GSUB_Apply_String()
|
|
specifies which features should *not* be applied */
|
|
|
|
enum arabic_glyph_property_
|
|
{
|
|
isolated_p = final | initial | medial,
|
|
final_p = isolated | initial | medial,
|
|
initial_p = isolated | final | medial,
|
|
medial_p = isolated | final | initial
|
|
};
|
|
|
|
typedef enum arabic_glyph_property_ arabic_glyph_property;
|
|
|
|
|
|
enum joining_class_
|
|
{
|
|
right,
|
|
left, /* not used */
|
|
dual,
|
|
causing,
|
|
none,
|
|
transparent
|
|
};
|
|
|
|
typedef enum joining_class_ joining_class;
|
|
|
|
|
|
TT_Error Assign_Arabic_Properties( TT_UShort* string,
|
|
TT_UShort* properties,
|
|
TT_UShort length );
|
|
TT_Error Build_Arabic_Glyph_Properties( TT_CharMap char_map,
|
|
TT_UShort max_glyphs,
|
|
TTO_GDEFHeader** gdef );
|
|
|
|
|
|
/* End */
|