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

CodeCategoryExample codepoints
0OtherU+09BD Avagraha, U+0984 (reserved)
1ConsonantU+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
2Independent vowelU+0985–U+098C, U+098F–U+0990, U+0993–U+0994, U+09E0–U+09E1
3Matra (dependent vowel sign)U+09BE–U+09C4, U+09C7–U+09C8, U+09CB–U+09CC, U+09D7, U+09E2–U+09E3
4Virama (halant)U+09CD
5NuktaU+09BC
6Bindu (chandrabindu, anusvara)U+0981–U+0982
7VisargaU+0983
9DigitU+09E6–U+09EF
10ZWJU+200D
11ZWNJU+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+09C7 E and U+09C8 AI: pre-base matras (MatraPos = 1), differing from Devanagari where E/AI are above-base.
  • U+09CB Oo and U+09CC AU: split matras (MatraPos = 5), decomposed at reorder time.
  • U+09CE KHANDA TA: classified as Consonant (category 1).
  • No above-base matras (MatraPos = 3 unused for Bengali).

See also

Version history

  • v2.119.71 — Introduced in Phase 8f.2.