diff --git a/OTFbuild/calligra_font_tests.odt b/OTFbuild/calligra_font_tests.odt index ddd72d1..8b21787 100644 Binary files a/OTFbuild/calligra_font_tests.odt and b/OTFbuild/calligra_font_tests.odt differ diff --git a/OTFbuild/opentype_features.py b/OTFbuild/opentype_features.py index 4a4c764..ef6cb7d 100644 --- a/OTFbuild/opentype_features.py +++ b/OTFbuild/opentype_features.py @@ -636,6 +636,11 @@ def _generate_devanagari(glyphs, has, replacewith_subs=None): (0x0939, 0x092F, 0xF01C9, "H.Y"), (0x0939, 0x0932, 0xF01CA, "H.L"), (0x0939, 0x0935, 0xF01CB, "H.V"), + # Marwari DD (U+0978) — not mapped to PUA by ccmp, so _di(0x0978) + # returns 0x0978 unchanged. C2 uses standard Unicode (→ PUA via _di). + (0x0978, 0x0978, SC.MARWARI_LIG_DD_DD, "mDD.DD"), + (0x0978, 0x0922, SC.MARWARI_LIG_DD_DDH, "mDD.DDH"), + (0x0978, 0x092F, SC.MARWARI_LIG_DD_Y, "mDD.Y"), ] for c1_uni, c2_uni, result, name in _conjuncts: c1 = _di(c1_uni) @@ -672,6 +677,11 @@ def _generate_devanagari(glyphs, has, replacewith_subs=None): half_subs.append( f" sub {glyph_name(EYELASH_RA)} {glyph_name(SC.DEVANAGARI_VIRAMA)} by {glyph_name(EYELASH_RA)};" ) + # Marwari DD.Y (uF016E) has special half form (uF016F), not at +240 + if has(SC.MARWARI_LIG_DD_Y) and has(SC.DEVANAGARI_VIRAMA) and has(SC.MARWARI_HALFLIG_DD_Y): + half_subs.append( + f" sub {glyph_name(SC.MARWARI_LIG_DD_Y)} {glyph_name(SC.DEVANAGARI_VIRAMA)} by {glyph_name(SC.MARWARI_HALFLIG_DD_Y)};" + ) if half_subs: features.append("feature half {\n script dev2;\n" + '\n'.join(half_subs) + "\n} half;") @@ -716,6 +726,11 @@ def _generate_devanagari(glyphs, has, replacewith_subs=None): ra_append_subs.append( f" sub {glyph_name(internal)} {glyph_name(ra_sub)} by {glyph_name(ra_form)};" ) + # Marwari DD + rakaar -> DD.R (DD stays as uni0978, not PUA) + if has(SC.MARWARI_DD) and has(ra_sub) and has(SC.MARWARI_LIG_DD_R): + ra_append_subs.append( + f" sub {glyph_name(SC.MARWARI_DD)} {glyph_name(ra_sub)} by {glyph_name(SC.MARWARI_LIG_DD_R)};" + ) if ra_append_subs: cjct_lines.append(" lookup CjctRaAppend {") cjct_lines.extend(ra_append_subs) diff --git a/src/assets/devanagari_variable.tga b/src/assets/devanagari_variable.tga index 71dc7d8..f768d71 100644 --- a/src/assets/devanagari_variable.tga +++ b/src/assets/devanagari_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dd7506a5864a8425982db59d600f758e3139b892097b0d50851b963b774e8cba +oid sha256:3c527cf3f9d802ca7d409687455a8435e64af37eecd77f06df4366d5c38af59f size 1474578 diff --git a/work_files/devanagari_variable.psd b/work_files/devanagari_variable.psd index dd6ca70..bd2d868 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:d58ba12074c31ecb931324afcb4bda3d6e525c1a4476793a63cd237a6eeb589c -size 1453583 +oid sha256:9560b26ee68771bf0bf459a2026620dc21b69f9f235d0cde66226efb37c733da +size 1453677