summaryrefslogtreecommitdiff
path: root/modules/indic
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2004-07-29 22:37:39 +0000
committerOwen Taylor <otaylor@src.gnome.org>2004-07-29 22:37:39 +0000
commitffdcd28a9a3c87be593d17c8695302e259fdbc4a (patch)
treecad3c628aa48ddad50197ad6b7b00e8e27130eb2 /modules/indic
parent61c32cedb92a6e00c3ec4b29961310cf4b56fe9e (diff)
downloadpango-ffdcd28a9a3c87be593d17c8695302e259fdbc4a.tar.gz
Fix Malayalam double-consonant conjuncts: #121671, Rajkumar S
Thu Jul 29 16:10:06 2004 Owen Taylor <otaylor@redhat.com> Fix Malayalam double-consonant conjuncts: #121671, Rajkumar S * modules/indic/indic-ot.[ch]: Add a new feature set pstf_p and use it for post-base consonants, since the existing nukt_p suppressed the pstf feature. (#121671, Rajkumar S) * modules/indic/indic-ot-class-tables.c (mlymCharClasses): make U+D2F (MALAYALAM LETTER YA) _pb not _ct. * modules/indic/indic-ot-class-tables.c (mlymCharClasses): Classify U/UU/VOCALIC R as _dr not _db since they should be ordered after post-base consonants.
Diffstat (limited to 'modules/indic')
-rw-r--r--modules/indic/indic-ot-class-tables.c4
-rw-r--r--modules/indic/indic-ot.c3
-rw-r--r--modules/indic/indic-ot.h1
3 files changed, 4 insertions, 4 deletions
diff --git a/modules/indic/indic-ot-class-tables.c b/modules/indic/indic-ot-class-tables.c
index 22d0c23f..f0eff95c 100644
--- a/modules/indic/indic-ot-class-tables.c
+++ b/modules/indic/indic-ot-class-tables.c
@@ -185,9 +185,9 @@ static IndicOTCharClass mlymCharClasses[] =
{
_xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, /* 0D00 - 0D0F */
_iv, _xx, _iv, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _bb, /* 0D10 - 0D1F */
- _ct, _ct, _ct, _bb, _ct, _bb, _bb, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _ct, /* 0D20 - 0D2F */
+ _ct, _ct, _ct, _bb, _ct, _bb, _bb, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _pb, /* 0D20 - 0D2F */
_pb, _cn, _bb, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _dr, _dr, /* 0D30 - 0D3F */
- _dr, _db, _db, _db, _xx, _xx, _dl, _dl, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, /* 0D40 - 0D4F */
+ _dr, _dr, _dr, _dr, _xx, _xx, _dl, _dl, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, /* 0D40 - 0D4F */
_xx, _xx, _xx, _xx, _xx, _xx, _xx, _dr, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, /* 0D50 - 0D5F */
_iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx /* 0D60 - 0D6F */
};
diff --git a/modules/indic/indic-ot.c b/modules/indic/indic-ot.c
index 211d3e9c..332638a4 100644
--- a/modules/indic/indic-ot.c
+++ b/modules/indic/indic-ot.c
@@ -370,11 +370,10 @@ glong indic_ot_reorder(const gunichar *chars, const glong *utf8_offsets, glong c
}
/* write post-base consonants */
- /* FIXME: does this put the right tags on post-base consonants? */
if (baseConsonant != lastConsonant) {
if (postBase <= lastConsonant) {
for (i = postBase; i <= lastConsonant; i += 1) {
- writeChar(&output, chars[i], /*i*/ prev, nukt_p);
+ writeChar(&output, chars[i], /*i*/ prev, pstf_p);
}
/* write halant that was after base consonant */
diff --git a/modules/indic/indic-ot.h b/modules/indic/indic-ot.h
index d52a3542..9fb46877 100644
--- a/modules/indic/indic-ot.h
+++ b/modules/indic/indic-ot.h
@@ -133,6 +133,7 @@ enum indic_glyph_property_
rphf_p = (junk | dist),
blwf_p = (junk | dist | rphf),
half_p = (junk | dist | rphf | blwf),
+ pstf_p = (junk | dist | rphf | blwf | half),
nukt_p = (junk | dist | rphf | blwf | half | pstf)
};