diff --git a/assets/devanagari_variable.tga b/assets/devanagari_variable.tga index 0848824..a7aca0c 100644 --- a/assets/devanagari_variable.tga +++ b/assets/devanagari_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92b51072de10895c2bcf2e9b14b226b308b690b8f4e7ba1d29e303f8d3eeac1e +oid sha256:b8202e14617760d02855ce3ec9a4702206e994508dfc9f4df83409099841124d size 491538 diff --git a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt index cc91246..6652697 100755 --- a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt +++ b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt @@ -116,7 +116,7 @@ data class GlyphProps( if (stackWhere == STACK_BEFORE_N_AFTER) 2 else if (directiveOpcode in 0b10000_000..0b10000_111) - directiveOpcode and 7 + 7 else 0 fun isPragma(pragma: String) = when (pragma) { diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 5609985..1c5f310 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -1213,11 +1213,11 @@ class TerrarumSansBitmap( seq.add(c) changeRaStatus(1) } - else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVerbs.contains(c)) { + else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVowels.contains(c)) { seq.add(c) changeRaStatus(3) } -// else if (yankedDevanagariRaStatus == 3 && !devanagariVerbs.contains(c)) { +// else if (yankedDevanagariRaStatus == 3 && !devanagariVowels.contains(c)) { else if (yankedDevanagariRaStatus[1] > 0 && yankedCharacters.peek().second == DEVANAGARI_RA) { // termination or illegal state for Devanagari RA yankedCharacters.pop() seq.add(DEVANAGARI_RA_SUPER) @@ -1289,9 +1289,9 @@ class TerrarumSansBitmap( i = 0 while (i <= seq.lastIndex) { if (i > 0 && (glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) { - val verb = seq[i] -// dbgprn("Verb realign: index $i, ${verb.charInfo()}") - if (isDevanagari(verb)) { + val vowel = seq[i] +// dbgprn("Vowel realign: index $i, ${vowel.charInfo()}") + if (isDevanagari(vowel)) { // scan for the consonant cluster backwards // [not ligature glyphs] h h h h h c l r var scanCounter = 1 @@ -1303,10 +1303,10 @@ class TerrarumSansBitmap( scanCounter += 1 else break - } // scanCounter points at the terminator. the left-verb must be placed at (i - scanCounter + 1) + } // scanCounter points at the terminator. the left-vowel must be placed at (i - scanCounter + 1) seq.removeAt(i) - seq.add(i - scanCounter + 1, verb) + seq.add(i - scanCounter + 1, vowel) } else { val t = seq[i - 1] @@ -1781,7 +1781,7 @@ class TerrarumSansBitmap( private val TAMIL_SHRII = 0xF00EE private val devanagariConsonants = ((0x0915..0x0939) + (0x0958..0x095F) + (0x0978..0x097F) + (0xF0105..0xF01FF)).toHashSet() - private val devanagariVerbs = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet() + private val devanagariVowels = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet() private val devanagariBaseConsonants = 0x0915..0x0939 private val devanagariBaseConsonantsWithNukta = 0x0958..0x095F diff --git a/testing.PNG b/testing.PNG index 5c23335..ceedcf4 100755 Binary files a/testing.PNG and b/testing.PNG differ diff --git a/testtext.txt b/testtext.txt index 95dc7ea..a676c45 100755 --- a/testtext.txt +++ b/testtext.txt @@ -14,4 +14,5 @@ स्वतन्त्र << N.T.RA ligature सर्वप्रथम << RAsup must be above VA, not P.RA -भारतीय अक्षर जटिल हैं क्ष्फ क्षफ \ No newline at end of file +भारतीय अक्षर जटिल हैं क्ष्फ क्षफ अऺ +ऄअआऑऒओऔ ॲॳॴॵॶॷ \ No newline at end of file diff --git a/work_files/devanagari_variable.psd b/work_files/devanagari_variable.psd index 724e9db..5151473 100644 --- a/work_files/devanagari_variable.psd +++ b/work_files/devanagari_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38443d947cf0574281a75fb22946aa6436c313287fccf343bfecc9acb0f445c7 -size 558412 +oid sha256:690ddcdadd281ca7fbe6fa55c6141aa55e5af429086a18a827c189969ce3320f +size 552640