summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Hausmann <shausman@rhea.troll.no>2007-02-22 09:11:16 +0100
committerSimon Hausmann <shausman@rhea.troll.no>2007-03-28 12:52:34 +0200
commitcd92eb47d95c6ae4d212398cdf40fefbda75b1eb (patch)
tree779be0f78a9b45e1707cd37733f1df9eb4a37e63 /src
parent5682e499bfc901435c2853001b5edecb96511eed (diff)
Compile the Myanmar shaper as C source code
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/harfbuzz-myanmar.c (renamed from src/harfbuzz-myanmar.cpp)232
2 files changed, 122 insertions, 112 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 97ca84a..9e9f160 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,7 +18,7 @@ MAINSOURCES = \
harfbuzz-hebrew.cpp \
harfbuzz-arabic.cpp \
harfbuzz-hangul.cpp \
- harfbuzz-myanmar.cpp
+ harfbuzz-myanmar.c
EXTRA_SOURCES = harfbuzz.c
diff --git a/src/harfbuzz-myanmar.cpp b/src/harfbuzz-myanmar.c
index 9a47bee..8d92166 100644
--- a/src/harfbuzz-myanmar.cpp
+++ b/src/harfbuzz-myanmar.c
@@ -130,58 +130,60 @@ getMyanmarCharClass (HB_UChar16 ch)
static const signed char mymrStateTable[][Mymr_CC_COUNT] =
{
-// xx c1, c2 ng ya ra wa ha id zwnj vi dl db da dr sa sb sp zwj
- { 1, 4, 4, 2, 4, 4, 4, 4, 24, 1, 27, 17, 18, 19, 20, 21, 1, 1, 4}, // 0 - ground state
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 1 - exit state (or sp to the right of the syllable)
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 17, 18, 19, 20, 21, -1, -1, 4}, // 2 - NGA
- {-1, 4, 4, 4, 4, 4, 4, 4, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 3 - Virama after NGA
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 17, 18, 19, 20, 21, 1, 1, -1}, // 4 - Base consonant
- {-2, 6, -2, -2, 7, 8, 9, 10, -2, 23, -2, -2, -2, -2, -2, -2, -2, -2, -2}, // 5 - First virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 17, 18, 19, 20, 21, -1, -1, -1}, // 6 - c1 after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, // 7 - ya after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, // 8 - ra after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, // 9 - wa after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, // 10 - ha after virama
- {-1, -1, -1, -1, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 11 - Virama after NGA+zwj
- {-2, -2, -2, -2, -2, -2, 13, 14, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, // 12 - Second virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 17, 18, 19, 20, 21, -1, -1, -1}, // 13 - wa after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, // 14 - ha after virama
- {-2, -2, -2, -2, -2, -2, -2, 16, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, // 15 - Third virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, // 16 - ha after virama
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, 1, 1, -1}, // 17 - dl, Dependent vowel e
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, 1, 1, -1}, // 18 - db, Dependent vowel u,uu
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1}, // 19 - da, Dependent vowel i,ii,ai
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 1, 1, -1}, // 20 - dr, Dependent vowel aa
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1}, // 21 - sa, Sign anusvara
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 22 - atha
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1}, // 23 - zwnj for atha
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1}, // 24 - Independent vowel
- {-2, -2, -2, -2, 26, 26, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, // 25 - Virama after subscript consonant
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, 1, -1}, // 26 - ra/ya after subscript consonant + virama
- {-1, 6, -1, -1, 7, 8, 9, 10, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 27 - Virama after ground state
-// exit state -2 is for invalid order of medials and combination of invalids
-// with virama where virama should treat as start of next syllable
+/* xx c1, c2 ng ya ra wa ha id zwnj vi dl db da dr sa sb sp zwj */
+ { 1, 4, 4, 2, 4, 4, 4, 4, 24, 1, 27, 17, 18, 19, 20, 21, 1, 1, 4}, /* 0 - ground state */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, /* 1 - exit state (or sp to the right of the syllable) */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 17, 18, 19, 20, 21, -1, -1, 4}, /* 2 - NGA */
+ {-1, 4, 4, 4, 4, 4, 4, 4, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, /* 3 - Virama after NGA */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 17, 18, 19, 20, 21, 1, 1, -1}, /* 4 - Base consonant */
+ {-2, 6, -2, -2, 7, 8, 9, 10, -2, 23, -2, -2, -2, -2, -2, -2, -2, -2, -2}, /* 5 - First virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 17, 18, 19, 20, 21, -1, -1, -1}, /* 6 - c1 after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, /* 7 - ya after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, /* 8 - ra after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, -1, -1}, /* 9 - wa after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, /* 10 - ha after virama */
+ {-1, -1, -1, -1, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, /* 11 - Virama after NGA+zwj */
+ {-2, -2, -2, -2, -2, -2, 13, 14, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, /* 12 - Second virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 17, 18, 19, 20, 21, -1, -1, -1}, /* 13 - wa after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, /* 14 - ha after virama */
+ {-2, -2, -2, -2, -2, -2, -2, 16, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, /* 15 - Third virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, -1}, /* 16 - ha after virama */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, 1, 1, -1}, /* 17 - dl, Dependent vowel e */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, 1, 1, -1}, /* 18 - db, Dependent vowel u,uu */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1}, /* 19 - da, Dependent vowel i,ii,ai */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 1, 1, -1}, /* 20 - dr, Dependent vowel aa */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1}, /* 21 - sa, Sign anusvara */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, /* 22 - atha */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1}, /* 23 - zwnj for atha */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1}, /* 24 - Independent vowel */
+ {-2, -2, -2, -2, 26, 26, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}, /* 25 - Virama after subscript consonant */
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 17, 18, 19, 20, 21, -1, 1, -1}, /* 26 - ra/ya after subscript consonant + virama */
+ {-1, 6, -1, -1, 7, 8, 9, 10, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1}, /* 27 - Virama after ground state */
+/* exit state -2 is for invalid order of medials and combination of invalids
+ with virama where virama should treat as start of next syllable
+ */
};
-//#define MYANMAR_DEBUG
+/*#define MYANMAR_DEBUG */
#ifdef MYANMAR_DEBUG
#define MMDEBUG qDebug
#else
#define MMDEBUG if(0) printf
#endif
+/*
// Given an input string of characters and a location in which to start looking
// calculate, using the state table, which one is the last character of the syllable
// that starts in the starting position.
-//
-static inline int myanmar_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, bool *invalid)
+*/
+static int myanmar_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid)
{
- *invalid = false;
const HB_UChar16 *uc = s + start;
int state = 0;
int pos = start;
+ *invalid = FALSE;
while (pos < end) {
MymrCharClass charClass = getMyanmarCharClass(*uc);
@@ -203,8 +205,8 @@ static inline int myanmar_nextSyllableBoundary(const HB_UChar16 *s, int start, i
}
#ifndef NO_OPENTYPE
-// ###### might have to change order of above and below forms and substitutions,
-// but according to Unicode below comes before above
+/* ###### might have to change order of above and below forms and substitutions,
+ but according to Unicode below comes before above */
static const HB_OpenTypeFeature myanmar_features[] = {
{ HB_MAKE_TAG('p', 'r', 'e', 'f'), PreFormProperty },
{ HB_MAKE_TAG('b', 'l', 'w', 'f'), BelowFormProperty },
@@ -214,12 +216,13 @@ static const HB_OpenTypeFeature myanmar_features[] = {
{ HB_MAKE_TAG('b', 'l', 'w', 's'), BelowSubstProperty },
{ HB_MAKE_TAG('a', 'b', 'v', 's'), AboveSubstProperty },
{ HB_MAKE_TAG('p', 's', 't', 's'), PostSubstProperty },
- { HB_MAKE_TAG('r', 'l', 'i', 'g'), CligProperty }, // Myanmar1 uses this instead of the other features
+ { HB_MAKE_TAG('r', 'l', 'i', 'g'), CligProperty }, /* Myanmar1 uses this instead of the other features */
{ 0, 0 }
};
#endif
+/*
// Visual order before shaping should be:
//
// [Vowel Mark E]
@@ -232,28 +235,48 @@ static const HB_OpenTypeFeature myanmar_features[] = {
//
// This means that we can keep the logical order apart from having to
// move the pre vowel, medial ra and kinzi
+*/
-static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool invalid)
+static HB_Bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, HB_Bool invalid)
{
- // according to the table the max length of a syllable should be around 14 chars
- assert(item->item.length < 32);
-
+ /*
// MMDEBUG("\nsyllable from %d len %d, str='%s'", item->item.pos, item->item.length,
// item->string->mid(item->from, item->length).toUtf8().data());
+ */
- const HB_UChar16 *uc = item->string + item->item.pos;
-#ifdef MYANMAR_DEBUG
- printf("original:");
- for (int i = 0; i < item->item.length; i++) {
- printf(" %d: %4x", i, uc[i]);
- }
+#ifndef NO_OPENTYPE
+ const int availableGlyphs = item->num_glyphs;
#endif
+ const HB_UChar16 *uc = item->string + item->item.pos;
int vowel_e = -1;
int kinzi = -1;
int medial_ra = -1;
int base = -1;
+ int i;
+ int len = 0;
+ unsigned short reordered[32];
+ unsigned char properties[32];
+ enum {
+ AboveForm = 0x01,
+ PreForm = 0x02,
+ PostForm = 0x04,
+ BelowForm = 0x08
+ };
+ HB_Bool lastWasVirama = FALSE;
+ int basePos = -1;
+
+ memset(properties, 0, 32*sizeof(unsigned char));
- for (uint32_t i = 0; i < item->item.length; ++i) {
+ /* according to the table the max length of a syllable should be around 14 chars */
+ assert(item->item.length < 32);
+
+#ifdef MYANMAR_DEBUG
+ printf("original:");
+ for (i = 0; i < (int)item->item.length; i++) {
+ printf(" %d: %4x", i, uc[i]);
+ }
+#endif
+ for (i = 0; i < (int)item->item.length; ++i) {
HB_UChar16 chr = uc[i];
if (chr == Mymr_C_VOWEL_E) {
@@ -262,10 +285,10 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
}
if (i == 0
&& chr == Mymr_C_NGA
- && i + 2 < item->item.length
+ && i + 2 < (int)item->item.length
&& uc[i+1] == Mymr_C_VIRAMA) {
int mc = getMyanmarCharClass(uc[i+2]);
- //MMDEBUG("maybe kinzi: mc=%x", mc);
+ /*MMDEBUG("maybe kinzi: mc=%x", mc);*/
if ((mc & Mymr_CF_CONSONANT) == Mymr_CF_CONSONANT) {
kinzi = i;
continue;
@@ -273,7 +296,7 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
}
if (base >= 0
&& chr == Mymr_C_VIRAMA
- && i + 1 < item->item.length
+ && i + 1 < (int)item->item.length
&& uc[i+1] == Mymr_C_RA) {
medial_ra = i;
continue;
@@ -283,23 +306,12 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
}
MMDEBUG("\n base=%d, vowel_e=%d, kinzi=%d, medial_ra=%d", base, vowel_e, kinzi, medial_ra);
- int len = 0;
- unsigned short reordered[32];
- unsigned char properties[32];
- enum {
- AboveForm = 0x01,
- PreForm = 0x02,
- PostForm = 0x04,
- BelowForm = 0x08
- };
- memset(properties, 0, 32*sizeof(unsigned char));
-
- // write vowel_e if found
+ /* write vowel_e if found */
if (vowel_e >= 0) {
reordered[0] = Mymr_C_VOWEL_E;
len = 1;
}
- // write medial_ra
+ /* write medial_ra */
if (medial_ra >= 0) {
reordered[len] = Mymr_C_VIRAMA;
reordered[len+1] = Mymr_C_RA;
@@ -308,20 +320,20 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
len += 2;
}
- // shall we add a dotted circle?
- // If in the position in which the base should be (first char in the string) there is
- // a character that has the Dotted circle flag (a character that cannot be a base)
- // then write a dotted circle
+ /* shall we add a dotted circle?
+ If in the position in which the base should be (first char in the string) there is
+ a character that has the Dotted circle flag (a character that cannot be a base)
+ then write a dotted circle */
if (invalid) {
reordered[len] = C_DOTTED_CIRCLE;
++len;
}
- bool lastWasVirama = false;
- int basePos = -1;
- // copy the rest of the syllable to the output, inserting the kinzi
- // at the correct place
- for (int i = 0; i < (int)item->item.length; ++i) {
+ /* copy the rest of the syllable to the output, inserting the kinzi
+ at the correct place */
+ for (i = 0; i < (int)item->item.length; ++i) {
+ uint16_t chr = uc[i];
+ MymrCharClass cc;
if (i == vowel_e)
continue;
if (i == medial_ra || i == kinzi) {
@@ -329,8 +341,7 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
continue;
}
- ushort chr = uc[i];
- MymrCharClass cc = getMyanmarCharClass(uc[i]);
+ cc = getMyanmarCharClass(uc[i]);
if (kinzi >= 0 && i > base && (cc & Mymr_CF_AFTER_KINZI)) {
reordered[len] = Mymr_C_NGA;
reordered[len+1] = Mymr_C_VIRAMA;
@@ -380,35 +391,32 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
len += 2;
}
-#ifndef NO_OPENTYPE
- const int availableGlyphs = item->num_glyphs;
-#endif
if (!item->font->klass->stringToGlyphs(item->font,
reordered, len,
item->glyphs, &item->num_glyphs,
item->item.bidiLevel % 2))
- return false;
+ return FALSE;
MMDEBUG("after shaping: len=%d", len);
- for (int i = 0; i < len; i++) {
- item->attributes[i].mark = false;
- item->attributes[i].clusterStart = false;
+ for (i = 0; i < len; i++) {
+ item->attributes[i].mark = FALSE;
+ item->attributes[i].clusterStart = FALSE;
item->attributes[i].justification = 0;
- item->attributes[i].zeroWidth = false;
+ item->attributes[i].zeroWidth = FALSE;
MMDEBUG(" %d: %4x property=%x", i, reordered[i], properties[i]);
}
- // now we have the syllable in the right order, and can start running it through open type.
+ /* now we have the syllable in the right order, and can start running it through open type. */
#ifndef NO_OPENTYPE
if (openType) {
unsigned short logClusters[32];
- for (int i = 0; i < len; ++i)
- logClusters[i] = i;
+ uint32_t where[32];
- uint where[32];
+ for (i = 0; i < len; ++i)
+ logClusters[i] = i;
- for (int i = 0; i < len; ++i) {
+ for (i = 0; i < len; ++i) {
where[i] = ~(PreSubstProperty
| BelowSubstProperty
| AboveSubstProperty
@@ -426,26 +434,21 @@ static bool myanmar_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool i
}
HB_OpenTypeShape(item, where);
- if (!HB_OpenTypePosition(item, availableGlyphs, /*doLogClusters*/false))
- return false;
+ if (!HB_OpenTypePosition(item, availableGlyphs, /*doLogClusters*/FALSE))
+ return FALSE;
} else
#endif
{
MMDEBUG("Not using openType");
}
- item->attributes[0].clusterStart = true;
- return true;
+ item->attributes[0].clusterStart = TRUE;
+ return TRUE;
}
HB_Bool HB_MyanmarShape(HB_ShaperItem *item)
{
- assert(item->item.script == HB_Script_Myanmar);
-
- HB_Bool openType = false;
-#ifndef NO_OPENTYPE
- openType = HB_SelectScript(item, myanmar_features);
-#endif
+ HB_Bool openType = FALSE;
unsigned short *logClusters = item->log_clusters;
HB_ShaperItem syllable = *item;
@@ -453,12 +456,19 @@ HB_Bool HB_MyanmarShape(HB_ShaperItem *item)
int sstart = item->item.pos;
int end = sstart + item->item.length;
+ int i = 0;
+
+ assert(item->item.script == HB_Script_Myanmar);
+#ifndef NO_OPENTYPE
+ openType = HB_SelectScript(item, myanmar_features);
+#endif
+
MMDEBUG("myanmar_shape: from %d length %d", item->item.pos, item->item.length);
while (sstart < end) {
- bool invalid;
+ HB_Bool invalid;
int send = myanmar_nextSyllableBoundary(item->string, sstart, end, &invalid);
MMDEBUG("syllable from %d, length %d, invalid=%s", sstart, send-sstart,
- invalid ? "true" : "false");
+ invalid ? "TRUE" : "FALSE");
syllable.item.pos = sstart;
syllable.item.length = send-sstart;
syllable.glyphs = item->glyphs + first_glyph;
@@ -469,15 +479,15 @@ HB_Bool HB_MyanmarShape(HB_ShaperItem *item)
if (!myanmar_shape_syllable(openType, &syllable, invalid)) {
MMDEBUG("syllable shaping failed, syllable requests %d glyphs", syllable.num_glyphs);
item->num_glyphs += syllable.num_glyphs;
- return false;
+ return FALSE;
}
- // fix logcluster array
+ /* fix logcluster array */
MMDEBUG("syllable:");
- for (uint32_t i = first_glyph; i < first_glyph + syllable.num_glyphs; ++i)
+ for (i = first_glyph; i < first_glyph + (int)syllable.num_glyphs; ++i)
MMDEBUG(" %d -> glyph %x", i, item->glyphs[i]);
MMDEBUG(" logclusters:");
- for (int i = sstart; i < send; ++i) {
+ for (i = sstart; i < send; ++i) {
MMDEBUG(" %d -> glyph %d", i, first_glyph);
logClusters[i-item->item.pos] = first_glyph;
}
@@ -485,20 +495,20 @@ HB_Bool HB_MyanmarShape(HB_ShaperItem *item)
first_glyph += syllable.num_glyphs;
}
item->num_glyphs = first_glyph;
- return true;
+ return TRUE;
}
-void HB_MyanmarAttributes(HB_Script /*script*/, const HB_UChar16 *text, uint32_t from, uint32_t len, HB_CharAttributes *attributes)
+void HB_MyanmarAttributes(HB_Script script, const HB_UChar16 *text, uint32_t from, uint32_t len, HB_CharAttributes *attributes)
{
int end = from + len;
const HB_UChar16 *uc = text + from;
- attributes += from;
uint32_t i = 0;
+ attributes += from;
while (i < len) {
- bool invalid;
+ HB_Bool invalid;
uint32_t boundary = myanmar_nextSyllableBoundary(text, from+i, end, &invalid) - from;
- attributes[i].charStop = true;
+ attributes[i].charStop = TRUE;
if (from || i)
attributes[i-1].lineBreakType = HB_Break;
@@ -506,7 +516,7 @@ void HB_MyanmarAttributes(HB_Script /*script*/, const HB_UChar16 *text, uint32_t
boundary = len;
i++;
while (i < boundary) {
- attributes[i].charStop = false;
+ attributes[i].charStop = FALSE;
++uc;
++i;
}