ApplyMyanmarReorder
Signature
function ApplyMyanmarReorder(const Wide: UnicodeString): UnicodeString;
Purpose
Applies the Myanmar reorder pre-pass to Wide and returns a UnicodeString prepared for cmap and GSUB consumption. Text outside Myanmar remains byte-stable, so callers can route mixed text without changing unrelated runs
Coverage
- Myanmar uses the
mymrscript record for U+1000-U+109F and U+AA60-U+AA7F. The documented path covers Kinzi, medial sorting, pre-base vowel, ASAT, and stacked-consonant handling while preserving API behaviour for producer-side shaping ApplyIndicReorderdispatches to this helper when the active codepoint range matches U+1000-U+109F and U+AA60-U+AA7F
Example
var
Wide: UnicodeString;
begin
// Input: KA (U+1000) + E-vowel (U+1031, pre-base)
Wide:= Doc.ApplyMyanmarReorder(#$1000#$1031);
// Wide is now: E (U+1031) + KA (U+1000)
// Input: Kinzi (U+1004 U+103A U+1039) + KA + AA-vowel (U+102C)
Wide:= Doc.ApplyMyanmarReorder(#$1004#$103A#$1039#$1000#$102C);
// Wide unchanged: Kinzi + KA + AA (all in canonical positions)
// Input: KA + medials H + W + R + Y (reversed source order)
Wide:= Doc.ApplyMyanmarReorder(#$1000#$103E#$103D#$103C#$103B);
// Wide is now: KA + Y + R + W + H (R9 sorted)
end;
See also
ApplyIndicReorder- coverageGetMyanmarCategory- Myanmar category lookup
Standards
- Unicode 16.0 U+1000-U+109F and U+AA60-U+AA7F
- ISO 32000-1 ยง9.10
- OpenType Myanmar shaping specification
Version history
- v2.120.10 - Introduced as part of the HotPDF Indic shaping batch