GetBengaliCategory
Signature
function GetBengaliCategory(CP: Cardinal): Integer;
Purpose
Pure Unicode-codepoint → Bengali syllabic-category lookup. No font
state required. Returns one of 13 category codes (same numbering as
GetDevanagariCategory) used by the reorder pre-pass and
by manual producer-side shaping pipelines.
Return values
| Code | Category | Example codepoints |
|---|---|---|
| 0 | Other | U+09BD Avagraha, U+0984 (reserved) |
| 1 | Consonant | U+0995–U+09A8, U+09AA–U+09B0, U+09B2, U+09B6–U+09B9, U+09CE, U+09DC–U+09DD, U+09DF, U+09F0–U+09F1 |
| 2 | Independent vowel | U+0985–U+098C, U+098F–U+0990, U+0993–U+0994, U+09E0–U+09E1 |
| 3 | Matra (dependent vowel sign) | U+09BE–U+09C4, U+09C7–U+09C8, U+09CB–U+09CC, U+09D7, U+09E2–U+09E3 |
| 4 | Virama (halant) | U+09CD |
| 5 | Nukta | U+09BC |
| 6 | Bindu (chandrabindu, anusvara) | U+0981–U+0982 |
| 7 | Visarga | U+0983 |
| 9 | Digit | U+09E6–U+09EF |
| 10 | ZWJ | U+200D |
| 11 | ZWNJ | U+200C |
Codepoints outside the Bengali block (U+0980–U+09FF) return category 0
(Other); the dispatcher in ApplyIndicReorder handles them
via a different script's category function or passes through.
Notable Bengali-specific assignments
U+09C7E andU+09C8AI: pre-base matras (MatraPos = 1), differing from Devanagari where E/AI are above-base.U+09CBOo andU+09CCAU: split matras (MatraPos = 5), decomposed at reorder time.U+09CEKHANDA TA: classified as Consonant (category 1).- No above-base matras (MatraPos = 3 unused for Bengali).
See also
ApplyBengaliReorder— Bengali reorder pre-pass.ApplyIndicReorder— total Indic dispatcher.GetDevanagariCategory— Devanagari counterpart.
Version history
- v2.119.71 — Introduced in Phase 8f.2.