diff options
Diffstat (limited to 'tex')
20 files changed, 3597 insertions, 553 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 63e666b79..a237e05cc 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2018.03.23 13:13} +\newcontextversion{2018.03.25 17:32} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index efce78a75..f5b545b69 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2018.03.23 13:13} +\edef\contextversion{2018.03.25 17:32} %D For those who want to use this: diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index a305ee202..ddcaa7673 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -16,6 +16,9 @@ now and then using mtx-unicode where we check against the latest unicode txt fil (normally once per year around the tex live code freeze) and checked afterwards for differences. We could save some bytes by sharing variant tables but it's not worth the trouble. Some additional data is kept in other files. + +For a generic subset of the data here, run "context luatex-basics-prepare.tex" after +adapting this file. ]]-- local variants_emoji={ @@ -15430,8 +15433,8 @@ characters.data={ }, [0x60C]={ adobename="commaarabic", - contextname="arabiccomma", category="po", + contextname="arabiccomma", description="ARABIC COMMA", direction="cs", linebreak="is", @@ -20729,6 +20732,8 @@ characters.data={ category="mn", description="DEVANAGARI SIGN INVERTED CANDRABINDU", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0x900, }, @@ -20737,6 +20742,8 @@ characters.data={ category="mn", description="DEVANAGARI SIGN CANDRABINDU", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", synonyms={ "devanagari anunasika" }, unicodeslot=0x901, @@ -20746,6 +20753,8 @@ characters.data={ category="mn", description="DEVANAGARI SIGN ANUSVARA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", synonyms={ "devanagari bindu" }, unicodeslot=0x902, @@ -20755,6 +20764,8 @@ characters.data={ category="mc", description="DEVANAGARI SIGN VISARGA", direction="l", + indic="m", + indicmark="r", linebreak="cm", unicodeslot=0x903, }, @@ -20762,6 +20773,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SHORT A", direction="l", + indic="i", linebreak="al", unicodeslot=0x904, }, @@ -20770,6 +20782,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0x905, }, @@ -20778,6 +20791,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0x906, }, @@ -20786,6 +20800,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0x907, }, @@ -20794,6 +20809,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0x908, }, @@ -20802,6 +20818,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0x909, }, @@ -20810,6 +20827,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0x90A, }, @@ -20818,6 +20836,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0x90B, }, @@ -20826,6 +20845,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0x90C, }, @@ -20834,6 +20854,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER CANDRA E", direction="l", + indic="i", linebreak="al", unicodeslot=0x90D, }, @@ -20842,6 +20863,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SHORT E", direction="l", + indic="i", linebreak="al", unicodeslot=0x90E, }, @@ -20850,6 +20872,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0x90F, }, @@ -20858,6 +20881,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0x910, }, @@ -20866,6 +20890,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER CANDRA O", direction="l", + indic="i", linebreak="al", unicodeslot=0x911, }, @@ -20874,6 +20899,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SHORT O", direction="l", + indic="i", linebreak="al", unicodeslot=0x912, }, @@ -20882,6 +20908,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0x913, }, @@ -20890,6 +20917,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0x914, }, @@ -20898,6 +20926,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0x915, }, @@ -20906,6 +20935,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x916, }, @@ -20914,6 +20944,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0x917, }, @@ -20922,6 +20953,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x918, }, @@ -20930,6 +20962,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0x919, }, @@ -20938,6 +20971,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91A, }, @@ -20946,6 +20980,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91B, }, @@ -20954,6 +20989,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91C, }, @@ -20962,6 +20998,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91D, }, @@ -20970,6 +21007,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91E, }, @@ -20978,6 +21016,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0x91F, }, @@ -20986,6 +21025,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x920, }, @@ -20994,6 +21034,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0x921, }, @@ -21002,6 +21043,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x922, }, @@ -21010,6 +21052,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0x923, }, @@ -21018,6 +21061,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0x924, }, @@ -21026,6 +21070,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0x925, }, @@ -21034,6 +21079,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0x926, }, @@ -21042,6 +21088,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x927, }, @@ -21050,6 +21097,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0x928, }, @@ -21058,6 +21106,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER NNNA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x928, 0x93C }, unicodeslot=0x929, @@ -21067,6 +21116,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92A, }, @@ -21075,6 +21125,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92B, }, @@ -21083,6 +21134,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92C, }, @@ -21091,6 +21143,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92D, }, @@ -21099,6 +21152,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92E, }, @@ -21107,6 +21161,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0x92F, }, @@ -21115,6 +21170,9 @@ characters.data={ category="lo", description="DEVANAGARI LETTER RA", direction="l", + indic="c", + indicclass="ra", + indicorder="bp", linebreak="al", unicodeslot=0x930, }, @@ -21123,6 +21181,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER RRA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x930, 0x93C }, unicodeslot=0x931, @@ -21132,6 +21191,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0x932, }, @@ -21140,6 +21200,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0x933, }, @@ -21148,6 +21209,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER LLLA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x933, 0x93C }, unicodeslot=0x934, @@ -21157,6 +21219,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0x935, }, @@ -21165,6 +21228,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x936, }, @@ -21173,6 +21237,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0x937, }, @@ -21181,6 +21246,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0x938, }, @@ -21189,6 +21255,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0x939, }, @@ -21196,6 +21263,8 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN OE", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0x93A, }, @@ -21203,6 +21272,8 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN OOE", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x93B, }, @@ -21212,6 +21283,9 @@ characters.data={ combining=0x7, description="DEVANAGARI SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0x93C, }, @@ -21220,6 +21294,7 @@ characters.data={ category="lo", description="DEVANAGARI SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0x93D, }, @@ -21228,6 +21303,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x93E, }, @@ -21236,6 +21314,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN I", direction="l", + indic="d", + indicmark="l", + indicorder="bh", linebreak="cm", unicodeslot=0x93F, }, @@ -21244,6 +21325,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x940, }, @@ -21252,6 +21336,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x941, }, @@ -21260,6 +21347,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x942, }, @@ -21268,6 +21358,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN VOCALIC R", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x943, }, @@ -21276,6 +21369,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN VOCALIC RR", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x944, }, @@ -21284,6 +21380,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN CANDRA E", direction="nsm", + indic="d", + indicmark="t", + indicorder="as", linebreak="cm", unicodeslot=0x945, }, @@ -21292,6 +21391,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN SHORT E", direction="nsm", + indic="d", + indicmark="t", + indicorder="as", linebreak="cm", unicodeslot=0x946, }, @@ -21300,6 +21402,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN E", direction="nsm", + indic="d", + indicmark="t", + indicorder="as", linebreak="cm", unicodeslot=0x947, }, @@ -21308,6 +21413,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN AI", direction="nsm", + indic="d", + indicmark="t", + indicorder="as", linebreak="cm", unicodeslot=0x948, }, @@ -21316,6 +21424,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN CANDRA O", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x949, }, @@ -21324,6 +21435,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN SHORT O", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x94A, }, @@ -21332,6 +21446,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN O", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x94B, }, @@ -21340,6 +21457,9 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN AU", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0x94C, }, @@ -21349,6 +21469,9 @@ characters.data={ combining=0x9, description="DEVANAGARI SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", synonyms={ "halant" }, unicodeslot=0x94D, @@ -21357,6 +21480,8 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN PRISHTHAMATRA E", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0x94E, }, @@ -21364,6 +21489,8 @@ characters.data={ category="mc", description="DEVANAGARI VOWEL SIGN AW", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x94F, }, @@ -21372,6 +21499,7 @@ characters.data={ category="lo", description="DEVANAGARI OM", direction="l", + indic="o", linebreak="al", unicodeslot=0x950, }, @@ -21381,6 +21509,8 @@ characters.data={ combining=0xE6, description="DEVANAGARI STRESS SIGN UDATTA", direction="nsm", + indic="s", + indicmark="t", linebreak="cm", unicodeslot=0x951, }, @@ -21390,6 +21520,9 @@ characters.data={ combining=0xDC, description="DEVANAGARI STRESS SIGN ANUDATTA", direction="nsm", + indic="s", + indicmark="b", + indicclass="anudatta", linebreak="cm", unicodeslot=0x952, }, @@ -21399,6 +21532,8 @@ characters.data={ combining=0xE6, description="DEVANAGARI GRAVE ACCENT", direction="nsm", + indic="s", + indicmark="t", linebreak="cm", unicodeslot=0x953, }, @@ -21408,6 +21543,8 @@ characters.data={ combining=0xE6, description="DEVANAGARI ACUTE ACCENT", direction="nsm", + indic="s", + indicmark="t", linebreak="cm", unicodeslot=0x954, }, @@ -21415,6 +21552,8 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN CANDRA LONG E", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0x955, }, @@ -21422,6 +21561,8 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN UE", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x956, }, @@ -21429,6 +21570,8 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN UUE", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x957, }, @@ -21437,6 +21580,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER QA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x915, 0x93C }, unicodeslot=0x958, @@ -21446,6 +21590,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER KHHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x916, 0x93C }, unicodeslot=0x959, @@ -21455,6 +21600,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER GHHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x917, 0x93C }, unicodeslot=0x95A, @@ -21464,6 +21610,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER ZA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x91C, 0x93C }, unicodeslot=0x95B, @@ -21473,6 +21620,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DDDHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x921, 0x93C }, unicodeslot=0x95C, @@ -21482,6 +21630,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER RHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x922, 0x93C }, unicodeslot=0x95D, @@ -21491,6 +21640,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER FA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x92B, 0x93C }, unicodeslot=0x95E, @@ -21500,6 +21650,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER YYA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x92F, 0x93C }, unicodeslot=0x95F, @@ -21509,6 +21660,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0x960, }, @@ -21517,6 +21669,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0x961, }, @@ -21525,6 +21678,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN VOCALIC L", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x962, }, @@ -21533,6 +21689,9 @@ characters.data={ category="mn", description="DEVANAGARI VOWEL SIGN VOCALIC LL", direction="nsm", + indic="d", + indicmark="b", + indicorder="as", linebreak="cm", unicodeslot=0x963, }, @@ -21541,6 +21700,7 @@ characters.data={ category="po", description="DEVANAGARI DANDA", direction="l", + indic="o", linebreak="ba", synonyms={ "devanagari phrase separator", "devanagari purna viram" }, unicodeslot=0x964, @@ -21550,6 +21710,7 @@ characters.data={ category="po", description="DEVANAGARI DOUBLE DANDA", direction="l", + indic="o", linebreak="ba", synonyms={ "devanagari deergh viram" }, unicodeslot=0x965, @@ -21559,6 +21720,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0x966, }, @@ -21567,6 +21729,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x967, }, @@ -21575,6 +21738,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0x968, }, @@ -21583,6 +21747,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x969, }, @@ -21591,6 +21756,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96A, }, @@ -21599,6 +21765,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96B, }, @@ -21607,6 +21774,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96C, }, @@ -21615,6 +21783,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96D, }, @@ -21623,6 +21792,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96E, }, @@ -21631,6 +21801,7 @@ characters.data={ category="nd", description="DEVANAGARI DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x96F, }, @@ -21639,6 +21810,7 @@ characters.data={ category="po", description="DEVANAGARI ABBREVIATION SIGN", direction="l", + indic="o", linebreak="al", unicodeslot=0x970, }, @@ -21646,6 +21818,7 @@ characters.data={ category="lm", description="DEVANAGARI SIGN HIGH SPACING DOT", direction="l", + indic="o", linebreak="al", unicodeslot=0x971, }, @@ -21653,6 +21826,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER CANDRA A", direction="l", + indic="i", linebreak="al", unicodeslot=0x972, }, @@ -21660,6 +21834,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER OE", direction="l", + indic="i", linebreak="al", unicodeslot=0x973, }, @@ -21667,6 +21842,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER OOE", direction="l", + indic="i", linebreak="al", unicodeslot=0x974, }, @@ -21674,6 +21850,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER AW", direction="l", + indic="i", linebreak="al", unicodeslot=0x975, }, @@ -21681,6 +21858,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER UE", direction="l", + indic="i", linebreak="al", unicodeslot=0x976, }, @@ -21688,6 +21866,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER UUE", direction="l", + indic="i", linebreak="al", unicodeslot=0x977, }, @@ -21695,6 +21874,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER MARWARI DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0x978, }, @@ -21702,6 +21882,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER ZHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x979, }, @@ -21709,6 +21890,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER HEAVY YA", direction="l", + indic="c", linebreak="al", unicodeslot=0x97A, }, @@ -21716,6 +21898,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER GGA", direction="l", + indic="o", linebreak="al", unicodeslot=0x97B, }, @@ -21723,6 +21906,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER JJA", direction="l", + indic="o", linebreak="al", unicodeslot=0x97C, }, @@ -21730,6 +21914,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER GLOTTAL STOP", direction="l", + indic="o", linebreak="al", unicodeslot=0x97D, }, @@ -21737,6 +21922,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER DDDA", direction="l", + indic="o", linebreak="al", unicodeslot=0x97E, }, @@ -21744,6 +21930,7 @@ characters.data={ category="lo", description="DEVANAGARI LETTER BBA", direction="l", + indic="o", linebreak="al", unicodeslot=0x97F, }, @@ -21751,6 +21938,7 @@ characters.data={ category="lo", description="BENGALI ANJI", direction="l", + indic="o", linebreak="al", unicodeslot=0x980, }, @@ -21759,6 +21947,7 @@ characters.data={ category="mn", description="BENGALI SIGN CANDRABINDU", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0x981, }, @@ -21767,6 +21956,7 @@ characters.data={ category="mc", description="BENGALI SIGN ANUSVARA", direction="l", + indic="o", linebreak="cm", unicodeslot=0x982, }, @@ -21775,6 +21965,7 @@ characters.data={ category="mc", description="BENGALI SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0x983, }, @@ -21783,6 +21974,7 @@ characters.data={ category="lo", description="BENGALI LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0x985, }, @@ -21791,6 +21983,7 @@ characters.data={ category="lo", description="BENGALI LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0x986, }, @@ -21799,6 +21992,7 @@ characters.data={ category="lo", description="BENGALI LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0x987, }, @@ -21807,6 +22001,7 @@ characters.data={ category="lo", description="BENGALI LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0x988, }, @@ -21815,6 +22010,7 @@ characters.data={ category="lo", description="BENGALI LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0x989, }, @@ -21823,6 +22019,7 @@ characters.data={ category="lo", description="BENGALI LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0x98A, }, @@ -21831,6 +22028,7 @@ characters.data={ category="lo", description="BENGALI LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0x98B, }, @@ -21839,6 +22037,7 @@ characters.data={ category="lo", description="BENGALI LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0x98C, }, @@ -21847,6 +22046,7 @@ characters.data={ category="lo", description="BENGALI LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0x98F, }, @@ -21855,6 +22055,7 @@ characters.data={ category="lo", description="BENGALI LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0x990, }, @@ -21863,6 +22064,7 @@ characters.data={ category="lo", description="BENGALI LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0x993, }, @@ -21871,6 +22073,7 @@ characters.data={ category="lo", description="BENGALI LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0x994, }, @@ -21879,6 +22082,7 @@ characters.data={ category="lo", description="BENGALI LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0x995, }, @@ -21887,6 +22091,7 @@ characters.data={ category="lo", description="BENGALI LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x996, }, @@ -21895,6 +22100,7 @@ characters.data={ category="lo", description="BENGALI LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0x997, }, @@ -21903,6 +22109,7 @@ characters.data={ category="lo", description="BENGALI LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x998, }, @@ -21911,6 +22118,7 @@ characters.data={ category="lo", description="BENGALI LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0x999, }, @@ -21919,6 +22127,7 @@ characters.data={ category="lo", description="BENGALI LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99A, }, @@ -21927,6 +22136,7 @@ characters.data={ category="lo", description="BENGALI LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99B, }, @@ -21935,6 +22145,7 @@ characters.data={ category="lo", description="BENGALI LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99C, }, @@ -21943,6 +22154,7 @@ characters.data={ category="lo", description="BENGALI LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99D, }, @@ -21951,6 +22163,7 @@ characters.data={ category="lo", description="BENGALI LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99E, }, @@ -21959,6 +22172,7 @@ characters.data={ category="lo", description="BENGALI LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0x99F, }, @@ -21967,6 +22181,7 @@ characters.data={ category="lo", description="BENGALI LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A0, }, @@ -21975,6 +22190,7 @@ characters.data={ category="lo", description="BENGALI LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A1, }, @@ -21983,6 +22199,7 @@ characters.data={ category="lo", description="BENGALI LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A2, }, @@ -21991,6 +22208,7 @@ characters.data={ category="lo", description="BENGALI LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A3, }, @@ -21999,6 +22217,7 @@ characters.data={ category="lo", description="BENGALI LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A4, }, @@ -22007,6 +22226,7 @@ characters.data={ category="lo", description="BENGALI LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A5, }, @@ -22015,6 +22235,7 @@ characters.data={ category="lo", description="BENGALI LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A6, }, @@ -22023,6 +22244,7 @@ characters.data={ category="lo", description="BENGALI LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A7, }, @@ -22031,6 +22253,7 @@ characters.data={ category="lo", description="BENGALI LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9A8, }, @@ -22039,6 +22262,7 @@ characters.data={ category="lo", description="BENGALI LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AA, }, @@ -22047,6 +22271,7 @@ characters.data={ category="lo", description="BENGALI LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AB, }, @@ -22055,6 +22280,7 @@ characters.data={ category="lo", description="BENGALI LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AC, }, @@ -22063,6 +22289,7 @@ characters.data={ category="lo", description="BENGALI LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AD, }, @@ -22071,6 +22298,7 @@ characters.data={ category="lo", description="BENGALI LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AE, }, @@ -22079,6 +22307,7 @@ characters.data={ category="lo", description="BENGALI LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9AF, }, @@ -22087,6 +22316,8 @@ characters.data={ category="lo", description="BENGALI LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0x9B0, }, @@ -22095,6 +22326,7 @@ characters.data={ category="lo", description="BENGALI LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9B2, }, @@ -22103,6 +22335,7 @@ characters.data={ category="lo", description="BENGALI LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9B6, }, @@ -22111,6 +22344,7 @@ characters.data={ category="lo", description="BENGALI LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9B7, }, @@ -22119,6 +22353,7 @@ characters.data={ category="lo", description="BENGALI LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9B8, }, @@ -22127,6 +22362,7 @@ characters.data={ category="lo", description="BENGALI LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9B9, }, @@ -22136,6 +22372,9 @@ characters.data={ combining=0x7, description="BENGALI SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0x9BC, }, @@ -22143,6 +22382,7 @@ characters.data={ category="lo", description="BENGALI SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0x9BD, }, @@ -22151,6 +22391,8 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x9BE, }, @@ -22159,6 +22401,8 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN I", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0x9BF, }, @@ -22167,6 +22411,8 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x9C0, }, @@ -22175,6 +22421,8 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x9C1, }, @@ -22183,6 +22431,8 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x9C2, }, @@ -22191,6 +22441,8 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN VOCALIC R", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x9C3, }, @@ -22199,6 +22451,8 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN VOCALIC RR", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0x9C4, }, @@ -22207,6 +22461,8 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN E", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x9C7, }, @@ -22215,6 +22471,8 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN AI", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0x9C8, }, @@ -22223,6 +22481,7 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN O", direction="l", + indic="s", linebreak="cm", specials={ "char", 0x9C7, 0x9BE }, unicodeslot=0x9CB, @@ -22232,6 +22491,7 @@ characters.data={ category="mc", description="BENGALI VOWEL SIGN AU", direction="l", + indic="s", linebreak="cm", specials={ "char", 0x9C7, 0x9D7 }, unicodeslot=0x9CC, @@ -22242,6 +22502,9 @@ characters.data={ combining=0x9, description="BENGALI SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", synonyms={ "bengali hasant" }, unicodeslot=0x9CD, @@ -22250,6 +22513,7 @@ characters.data={ category="lo", description="BENGALI LETTER KHANDA TA", direction="l", + indic="c", linebreak="al", unicodeslot=0x9CE, }, @@ -22258,6 +22522,7 @@ characters.data={ category="mc", description="BENGALI AU LENGTH MARK", direction="l", + indic="o", linebreak="cm", unicodeslot=0x9D7, }, @@ -22266,6 +22531,7 @@ characters.data={ category="lo", description="BENGALI LETTER RRA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x9A1, 0x9BC }, unicodeslot=0x9DC, @@ -22275,6 +22541,7 @@ characters.data={ category="lo", description="BENGALI LETTER RHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x9A2, 0x9BC }, unicodeslot=0x9DD, @@ -22284,6 +22551,7 @@ characters.data={ category="lo", description="BENGALI LETTER YYA", direction="l", + indic="c", linebreak="al", specials={ "char", 0x9AF, 0x9BC }, unicodeslot=0x9DF, @@ -22293,6 +22561,7 @@ characters.data={ category="lo", description="BENGALI LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0x9E0, }, @@ -22301,6 +22570,7 @@ characters.data={ category="lo", description="BENGALI LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0x9E1, }, @@ -22309,6 +22579,7 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN VOCALIC L", direction="nsm", + indic="i", linebreak="cm", unicodeslot=0x9E2, }, @@ -22317,6 +22588,7 @@ characters.data={ category="mn", description="BENGALI VOWEL SIGN VOCALIC LL", direction="nsm", + indic="i", linebreak="cm", unicodeslot=0x9E3, }, @@ -22325,6 +22597,7 @@ characters.data={ category="nd", description="BENGALI DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9E6, }, @@ -22333,6 +22606,7 @@ characters.data={ category="nd", description="BENGALI DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9E7, }, @@ -22341,6 +22615,7 @@ characters.data={ category="nd", description="BENGALI DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9E8, }, @@ -22349,6 +22624,7 @@ characters.data={ category="nd", description="BENGALI DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9E9, }, @@ -22357,6 +22633,7 @@ characters.data={ category="nd", description="BENGALI DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9EA, }, @@ -22365,6 +22642,7 @@ characters.data={ category="nd", description="BENGALI DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9EB, }, @@ -22373,6 +22651,7 @@ characters.data={ category="nd", description="BENGALI DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9EC, }, @@ -22381,6 +22660,7 @@ characters.data={ category="nd", description="BENGALI DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9ED, }, @@ -22389,6 +22669,7 @@ characters.data={ category="nd", description="BENGALI DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9EE, }, @@ -22397,6 +22678,7 @@ characters.data={ category="nd", description="BENGALI DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0x9EF, }, @@ -22405,6 +22687,7 @@ characters.data={ category="lo", description="BENGALI LETTER RA WITH MIDDLE DIAGONAL", direction="l", + indic="o", linebreak="al", shcode=0x9B0, unicodeslot=0x9F0, @@ -22414,6 +22697,7 @@ characters.data={ category="lo", description="BENGALI LETTER RA WITH LOWER DIAGONAL", direction="l", + indic="o", linebreak="al", shcode=0x9B0, unicodeslot=0x9F1, @@ -22423,6 +22707,7 @@ characters.data={ category="sc", description="BENGALI RUPEE MARK", direction="et", + indic="o", linebreak="po", unicodeslot=0x9F2, }, @@ -22431,6 +22716,7 @@ characters.data={ category="sc", description="BENGALI RUPEE SIGN", direction="et", + indic="o", linebreak="po", unicodeslot=0x9F3, }, @@ -22439,6 +22725,7 @@ characters.data={ category="no", description="BENGALI CURRENCY NUMERATOR ONE", direction="l", + indic="o", linebreak="al", unicodeslot=0x9F4, }, @@ -22447,6 +22734,7 @@ characters.data={ category="no", description="BENGALI CURRENCY NUMERATOR TWO", direction="l", + indic="o", linebreak="al", unicodeslot=0x9F5, }, @@ -22455,6 +22743,7 @@ characters.data={ category="no", description="BENGALI CURRENCY NUMERATOR THREE", direction="l", + indic="o", linebreak="al", unicodeslot=0x9F6, }, @@ -22463,6 +22752,7 @@ characters.data={ category="no", description="BENGALI CURRENCY NUMERATOR FOUR", direction="l", + indic="o", linebreak="al", unicodeslot=0x9F7, }, @@ -22471,6 +22761,7 @@ characters.data={ category="no", description="BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR", direction="l", + indic="o", linebreak="al", unicodeslot=0x9F8, }, @@ -22479,6 +22770,7 @@ characters.data={ category="no", description="BENGALI CURRENCY DENOMINATOR SIXTEEN", direction="l", + indic="o", linebreak="po", unicodeslot=0x9F9, }, @@ -22487,6 +22779,7 @@ characters.data={ category="so", description="BENGALI ISSHAR", direction="l", + indic="o", linebreak="al", unicodeslot=0x9FA, }, @@ -22494,6 +22787,7 @@ characters.data={ category="sc", description="BENGALI GANDA MARK", direction="et", + indic="o", linebreak="pr", unicodeslot=0x9FB, }, @@ -22501,6 +22795,7 @@ characters.data={ category="lo", description="BENGALI LETTER VEDIC ANUSVARA", direction="l", + indic="o", linebreak="al", unicodeslot=0x9FC, }, @@ -22508,6 +22803,7 @@ characters.data={ category="po", description="BENGALI ABBREVIATION SIGN", direction="l", + indic="o", linebreak="al", unicodeslot=0x9FD, }, @@ -22515,6 +22811,7 @@ characters.data={ category="mn", description="GURMUKHI SIGN ADAK BINDI", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA01, }, @@ -22523,6 +22820,7 @@ characters.data={ category="mn", description="GURMUKHI SIGN BINDI", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA02, }, @@ -22530,6 +22828,7 @@ characters.data={ category="mc", description="GURMUKHI SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xA03, }, @@ -22538,6 +22837,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xA05, }, @@ -22546,6 +22846,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xA06, }, @@ -22554,6 +22855,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xA07, }, @@ -22562,6 +22864,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xA08, }, @@ -22570,6 +22873,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xA09, }, @@ -22578,6 +22882,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xA0A, }, @@ -22586,6 +22891,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER EE", direction="l", + indic="i", linebreak="al", unicodeslot=0xA0F, }, @@ -22594,6 +22900,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xA10, }, @@ -22602,6 +22909,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER OO", direction="l", + indic="i", linebreak="al", unicodeslot=0xA13, }, @@ -22610,6 +22918,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xA14, }, @@ -22618,6 +22927,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA15, }, @@ -22626,6 +22936,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA16, }, @@ -22634,6 +22945,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA17, }, @@ -22642,6 +22954,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA18, }, @@ -22650,6 +22963,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA19, }, @@ -22658,6 +22972,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1A, }, @@ -22666,6 +22981,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1B, }, @@ -22674,6 +22990,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1C, }, @@ -22682,6 +22999,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1D, }, @@ -22690,6 +23008,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1E, }, @@ -22698,6 +23017,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA1F, }, @@ -22706,6 +23026,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA20, }, @@ -22714,6 +23035,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA21, }, @@ -22722,6 +23044,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA22, }, @@ -22730,6 +23053,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA23, }, @@ -22738,6 +23062,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA24, }, @@ -22746,6 +23071,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA25, }, @@ -22754,6 +23080,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA26, }, @@ -22762,6 +23089,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA27, }, @@ -22770,6 +23098,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA28, }, @@ -22778,6 +23107,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2A, }, @@ -22786,6 +23116,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2B, }, @@ -22794,6 +23125,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2C, }, @@ -22802,6 +23134,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2D, }, @@ -22810,6 +23143,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2E, }, @@ -22818,6 +23152,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA2F, }, @@ -22826,6 +23161,8 @@ characters.data={ category="lo", description="GURMUKHI LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xA30, }, @@ -22834,6 +23171,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA32, }, @@ -22841,6 +23179,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER LLA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA32, 0xA3C }, unicodeslot=0xA33, @@ -22850,6 +23189,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA35, }, @@ -22858,6 +23198,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER SHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA38, 0xA3C }, unicodeslot=0xA36, @@ -22867,6 +23208,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA38, }, @@ -22875,6 +23217,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA39, }, @@ -22884,6 +23227,9 @@ characters.data={ combining=0x7, description="GURMUKHI SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0xA3C, }, @@ -22892,6 +23238,8 @@ characters.data={ category="mc", description="GURMUKHI VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xA3E, }, @@ -22900,6 +23248,8 @@ characters.data={ category="mc", description="GURMUKHI VOWEL SIGN I", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xA3F, }, @@ -22908,6 +23258,8 @@ characters.data={ category="mc", description="GURMUKHI VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xA40, }, @@ -22916,6 +23268,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xA41, }, @@ -22924,6 +23278,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xA42, }, @@ -22932,6 +23288,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN EE", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xA47, }, @@ -22940,6 +23298,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN AI", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xA48, }, @@ -22948,6 +23308,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN OO", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xA4B, }, @@ -22956,6 +23318,8 @@ characters.data={ category="mn", description="GURMUKHI VOWEL SIGN AU", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xA4C, }, @@ -22965,6 +23329,9 @@ characters.data={ combining=0x9, description="GURMUKHI SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", unicodeslot=0xA4D, }, @@ -22972,6 +23339,7 @@ characters.data={ category="mn", description="GURMUKHI SIGN UDAAT", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA51, }, @@ -22980,6 +23348,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER KHHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA16, 0xA3C }, unicodeslot=0xA59, @@ -22989,6 +23358,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER GHHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA17, 0xA3C }, unicodeslot=0xA5A, @@ -22998,6 +23368,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER ZA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA1C, 0xA3C }, unicodeslot=0xA5B, @@ -23007,6 +23378,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER RRA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA5C, }, @@ -23015,6 +23387,7 @@ characters.data={ category="lo", description="GURMUKHI LETTER FA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xA2B, 0xA3C }, unicodeslot=0xA5E, @@ -23024,6 +23397,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA66, }, @@ -23032,6 +23406,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA67, }, @@ -23040,6 +23415,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA68, }, @@ -23048,6 +23424,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA69, }, @@ -23056,6 +23433,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6A, }, @@ -23064,6 +23442,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6B, }, @@ -23072,6 +23451,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6C, }, @@ -23080,6 +23460,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6D, }, @@ -23088,6 +23469,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6E, }, @@ -23096,6 +23478,7 @@ characters.data={ category="nd", description="GURMUKHI DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xA6F, }, @@ -23104,6 +23487,7 @@ characters.data={ category="mn", description="GURMUKHI TIPPI", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA70, }, @@ -23112,6 +23496,7 @@ characters.data={ category="mn", description="GURMUKHI ADDAK", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA71, }, @@ -23120,6 +23505,7 @@ characters.data={ category="lo", description="GURMUKHI IRI", direction="l", + indic="o", linebreak="al", unicodeslot=0xA72, }, @@ -23128,6 +23514,7 @@ characters.data={ category="lo", description="GURMUKHI URA", direction="l", + indic="o", linebreak="al", unicodeslot=0xA73, }, @@ -23136,6 +23523,7 @@ characters.data={ category="lo", description="GURMUKHI EK ONKAR", direction="l", + indic="o", linebreak="al", unicodeslot=0xA74, }, @@ -23143,6 +23531,7 @@ characters.data={ category="mn", description="GURMUKHI SIGN YAKASH", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA75, }, @@ -23151,6 +23540,7 @@ characters.data={ category="mn", description="GUJARATI SIGN CANDRABINDU", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA81, }, @@ -23159,6 +23549,7 @@ characters.data={ category="mn", description="GUJARATI SIGN ANUSVARA", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xA82, }, @@ -23167,6 +23558,7 @@ characters.data={ category="mc", description="GUJARATI SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xA83, }, @@ -23175,6 +23567,7 @@ characters.data={ category="lo", description="GUJARATI LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xA85, }, @@ -23183,6 +23576,7 @@ characters.data={ category="lo", description="GUJARATI LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xA86, }, @@ -23191,6 +23585,7 @@ characters.data={ category="lo", description="GUJARATI LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xA87, }, @@ -23199,6 +23594,7 @@ characters.data={ category="lo", description="GUJARATI LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xA88, }, @@ -23207,6 +23603,7 @@ characters.data={ category="lo", description="GUJARATI LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xA89, }, @@ -23215,6 +23612,7 @@ characters.data={ category="lo", description="GUJARATI LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xA8A, }, @@ -23223,6 +23621,7 @@ characters.data={ category="lo", description="GUJARATI LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0xA8B, }, @@ -23230,6 +23629,7 @@ characters.data={ category="lo", description="GUJARATI LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0xA8C, }, @@ -23238,6 +23638,7 @@ characters.data={ category="lo", description="GUJARATI VOWEL CANDRA E", direction="l", + indic="i", linebreak="al", unicodeslot=0xA8D, }, @@ -23246,6 +23647,7 @@ characters.data={ category="lo", description="GUJARATI LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xA8F, }, @@ -23254,6 +23656,7 @@ characters.data={ category="lo", description="GUJARATI LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xA90, }, @@ -23262,6 +23665,7 @@ characters.data={ category="lo", description="GUJARATI VOWEL CANDRA O", direction="l", + indic="i", linebreak="al", unicodeslot=0xA91, }, @@ -23270,6 +23674,7 @@ characters.data={ category="lo", description="GUJARATI LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xA93, }, @@ -23278,6 +23683,7 @@ characters.data={ category="lo", description="GUJARATI LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xA94, }, @@ -23286,6 +23692,7 @@ characters.data={ category="lo", description="GUJARATI LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA95, }, @@ -23294,6 +23701,7 @@ characters.data={ category="lo", description="GUJARATI LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA96, }, @@ -23302,6 +23710,7 @@ characters.data={ category="lo", description="GUJARATI LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA97, }, @@ -23310,6 +23719,7 @@ characters.data={ category="lo", description="GUJARATI LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA98, }, @@ -23318,6 +23728,7 @@ characters.data={ category="lo", description="GUJARATI LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA99, }, @@ -23326,6 +23737,7 @@ characters.data={ category="lo", description="GUJARATI LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9A, }, @@ -23334,6 +23746,7 @@ characters.data={ category="lo", description="GUJARATI LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9B, }, @@ -23342,6 +23755,7 @@ characters.data={ category="lo", description="GUJARATI LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9C, }, @@ -23350,6 +23764,7 @@ characters.data={ category="lo", description="GUJARATI LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9D, }, @@ -23358,6 +23773,7 @@ characters.data={ category="lo", description="GUJARATI LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9E, }, @@ -23366,6 +23782,7 @@ characters.data={ category="lo", description="GUJARATI LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xA9F, }, @@ -23374,6 +23791,7 @@ characters.data={ category="lo", description="GUJARATI LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA0, }, @@ -23382,6 +23800,7 @@ characters.data={ category="lo", description="GUJARATI LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA1, }, @@ -23390,6 +23809,7 @@ characters.data={ category="lo", description="GUJARATI LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA2, }, @@ -23398,6 +23818,7 @@ characters.data={ category="lo", description="GUJARATI LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA3, }, @@ -23406,6 +23827,7 @@ characters.data={ category="lo", description="GUJARATI LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA4, }, @@ -23414,6 +23836,7 @@ characters.data={ category="lo", description="GUJARATI LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA5, }, @@ -23422,6 +23845,7 @@ characters.data={ category="lo", description="GUJARATI LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA6, }, @@ -23430,6 +23854,7 @@ characters.data={ category="lo", description="GUJARATI LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA7, }, @@ -23438,6 +23863,7 @@ characters.data={ category="lo", description="GUJARATI LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAA8, }, @@ -23446,6 +23872,7 @@ characters.data={ category="lo", description="GUJARATI LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAA, }, @@ -23454,6 +23881,7 @@ characters.data={ category="lo", description="GUJARATI LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAB, }, @@ -23462,6 +23890,7 @@ characters.data={ category="lo", description="GUJARATI LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAC, }, @@ -23470,6 +23899,7 @@ characters.data={ category="lo", description="GUJARATI LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAD, }, @@ -23478,6 +23908,7 @@ characters.data={ category="lo", description="GUJARATI LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAE, }, @@ -23486,6 +23917,7 @@ characters.data={ category="lo", description="GUJARATI LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAAF, }, @@ -23494,6 +23926,8 @@ characters.data={ category="lo", description="GUJARATI LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xAB0, }, @@ -23502,6 +23936,7 @@ characters.data={ category="lo", description="GUJARATI LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB2, }, @@ -23510,6 +23945,7 @@ characters.data={ category="lo", description="GUJARATI LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB3, }, @@ -23518,6 +23954,7 @@ characters.data={ category="lo", description="GUJARATI LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB5, }, @@ -23526,6 +23963,7 @@ characters.data={ category="lo", description="GUJARATI LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB6, }, @@ -23534,6 +23972,7 @@ characters.data={ category="lo", description="GUJARATI LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB7, }, @@ -23542,6 +23981,7 @@ characters.data={ category="lo", description="GUJARATI LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB8, }, @@ -23550,6 +23990,7 @@ characters.data={ category="lo", description="GUJARATI LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xAB9, }, @@ -23559,6 +24000,9 @@ characters.data={ combining=0x7, description="GUJARATI SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0xABC, }, @@ -23566,6 +24010,7 @@ characters.data={ category="lo", description="GUJARATI SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0xABD, }, @@ -23574,6 +24019,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xABE, }, @@ -23582,6 +24029,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN I", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xABF, }, @@ -23590,6 +24039,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xAC0, }, @@ -23598,6 +24049,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xAC1, }, @@ -23606,6 +24059,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xAC2, }, @@ -23614,6 +24069,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN VOCALIC R", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xAC3, }, @@ -23622,6 +24079,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN VOCALIC RR", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xAC4, }, @@ -23630,6 +24089,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN CANDRA E", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xAC5, }, @@ -23638,6 +24099,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN E", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xAC7, }, @@ -23646,6 +24109,8 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN AI", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xAC8, }, @@ -23654,6 +24119,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN CANDRA O", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xAC9, }, @@ -23662,6 +24129,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN O", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xACB, }, @@ -23670,6 +24139,8 @@ characters.data={ category="mc", description="GUJARATI VOWEL SIGN AU", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xACC, }, @@ -23679,6 +24150,9 @@ characters.data={ combining=0x9, description="GUJARATI SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", unicodeslot=0xACD, }, @@ -23687,6 +24161,7 @@ characters.data={ category="lo", description="GUJARATI OM", direction="l", + indic="o", linebreak="al", unicodeslot=0xAD0, }, @@ -23695,6 +24170,7 @@ characters.data={ category="lo", description="GUJARATI LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0xAE0, }, @@ -23702,6 +24178,7 @@ characters.data={ category="lo", description="GUJARATI LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0xAE1, }, @@ -23709,6 +24186,7 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN VOCALIC L", direction="nsm", + indic="i", linebreak="cm", unicodeslot=0xAE2, }, @@ -23716,6 +24194,7 @@ characters.data={ category="mn", description="GUJARATI VOWEL SIGN VOCALIC LL", direction="nsm", + indic="i", linebreak="cm", unicodeslot=0xAE3, }, @@ -23724,6 +24203,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAE6, }, @@ -23732,6 +24212,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAE7, }, @@ -23740,6 +24221,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAE8, }, @@ -23748,6 +24230,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAE9, }, @@ -23756,6 +24239,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAEA, }, @@ -23764,6 +24248,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAEB, }, @@ -23772,6 +24257,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAEC, }, @@ -23780,6 +24266,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAED, }, @@ -23788,6 +24275,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAEE, }, @@ -23796,6 +24284,7 @@ characters.data={ category="nd", description="GUJARATI DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xAEF, }, @@ -23803,6 +24292,7 @@ characters.data={ category="po", description="GUJARATI ABBREVIATION SIGN", direction="l", + indic="o", linebreak="al", unicodeslot=0xAF0, }, @@ -23810,6 +24300,7 @@ characters.data={ category="sc", description="GUJARATI RUPEE SIGN", direction="et", + indic="o", linebreak="pr", unicodeslot=0xAF1, }, @@ -23817,6 +24308,7 @@ characters.data={ category="lo", description="GUJARATI LETTER ZHA", direction="l", + indic="o", linebreak="al", unicodeslot=0xAF9, }, @@ -23824,6 +24316,7 @@ characters.data={ category="mn", description="GUJARATI SIGN SUKUN", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFA, }, @@ -23831,6 +24324,7 @@ characters.data={ category="mn", description="GUJARATI SIGN SHADDA", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFB, }, @@ -23838,6 +24332,7 @@ characters.data={ category="mn", description="GUJARATI SIGN MADDAH", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFC, }, @@ -23845,6 +24340,7 @@ characters.data={ category="mn", description="GUJARATI SIGN THREE-DOT NUKTA ABOVE", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFD, }, @@ -23852,6 +24348,7 @@ characters.data={ category="mn", description="GUJARATI SIGN CIRCLE NUKTA ABOVE", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFE, }, @@ -23859,6 +24356,7 @@ characters.data={ category="mn", description="GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xAFF, }, @@ -23866,6 +24364,7 @@ characters.data={ category="mn", description="ORIYA SIGN CANDRABINDU", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xB01, }, @@ -23873,6 +24372,7 @@ characters.data={ category="mc", description="ORIYA SIGN ANUSVARA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xB02, }, @@ -23880,6 +24380,7 @@ characters.data={ category="mc", description="ORIYA SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xB03, }, @@ -23887,6 +24388,7 @@ characters.data={ category="lo", description="ORIYA LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xB05, }, @@ -23894,6 +24396,7 @@ characters.data={ category="lo", description="ORIYA LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xB06, }, @@ -23901,6 +24404,7 @@ characters.data={ category="lo", description="ORIYA LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xB07, }, @@ -23908,6 +24412,7 @@ characters.data={ category="lo", description="ORIYA LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xB08, }, @@ -23915,6 +24420,7 @@ characters.data={ category="lo", description="ORIYA LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xB09, }, @@ -23922,6 +24428,7 @@ characters.data={ category="lo", description="ORIYA LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xB0A, }, @@ -23929,6 +24436,7 @@ characters.data={ category="lo", description="ORIYA LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0xB0B, }, @@ -23936,6 +24444,7 @@ characters.data={ category="lo", description="ORIYA LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0xB0C, }, @@ -23943,6 +24452,7 @@ characters.data={ category="lo", description="ORIYA LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xB0F, }, @@ -23950,6 +24460,7 @@ characters.data={ category="lo", description="ORIYA LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xB10, }, @@ -23957,6 +24468,7 @@ characters.data={ category="lo", description="ORIYA LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xB13, }, @@ -23964,6 +24476,7 @@ characters.data={ category="lo", description="ORIYA LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xB14, }, @@ -23971,6 +24484,7 @@ characters.data={ category="lo", description="ORIYA LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB15, }, @@ -23978,6 +24492,7 @@ characters.data={ category="lo", description="ORIYA LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB16, }, @@ -23985,6 +24500,7 @@ characters.data={ category="lo", description="ORIYA LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB17, }, @@ -23992,6 +24508,7 @@ characters.data={ category="lo", description="ORIYA LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB18, }, @@ -23999,6 +24516,7 @@ characters.data={ category="lo", description="ORIYA LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB19, }, @@ -24006,6 +24524,7 @@ characters.data={ category="lo", description="ORIYA LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1A, }, @@ -24013,6 +24532,7 @@ characters.data={ category="lo", description="ORIYA LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1B, }, @@ -24020,6 +24540,7 @@ characters.data={ category="lo", description="ORIYA LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1C, }, @@ -24027,6 +24548,7 @@ characters.data={ category="lo", description="ORIYA LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1D, }, @@ -24034,6 +24556,7 @@ characters.data={ category="lo", description="ORIYA LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1E, }, @@ -24041,6 +24564,7 @@ characters.data={ category="lo", description="ORIYA LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB1F, }, @@ -24048,6 +24572,7 @@ characters.data={ category="lo", description="ORIYA LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB20, }, @@ -24055,6 +24580,7 @@ characters.data={ category="lo", description="ORIYA LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB21, }, @@ -24062,6 +24588,7 @@ characters.data={ category="lo", description="ORIYA LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB22, }, @@ -24069,6 +24596,7 @@ characters.data={ category="lo", description="ORIYA LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB23, }, @@ -24076,6 +24604,7 @@ characters.data={ category="lo", description="ORIYA LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB24, }, @@ -24083,6 +24612,7 @@ characters.data={ category="lo", description="ORIYA LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB25, }, @@ -24090,6 +24620,7 @@ characters.data={ category="lo", description="ORIYA LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB26, }, @@ -24097,6 +24628,7 @@ characters.data={ category="lo", description="ORIYA LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB27, }, @@ -24104,6 +24636,7 @@ characters.data={ category="lo", description="ORIYA LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB28, }, @@ -24111,6 +24644,7 @@ characters.data={ category="lo", description="ORIYA LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2A, }, @@ -24118,6 +24652,7 @@ characters.data={ category="lo", description="ORIYA LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2B, }, @@ -24125,6 +24660,7 @@ characters.data={ category="lo", description="ORIYA LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2C, }, @@ -24132,6 +24668,7 @@ characters.data={ category="lo", description="ORIYA LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2D, }, @@ -24139,6 +24676,7 @@ characters.data={ category="lo", description="ORIYA LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2E, }, @@ -24146,6 +24684,7 @@ characters.data={ category="lo", description="ORIYA LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB2F, }, @@ -24153,6 +24692,8 @@ characters.data={ category="lo", description="ORIYA LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xB30, }, @@ -24160,6 +24701,7 @@ characters.data={ category="lo", description="ORIYA LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB32, }, @@ -24167,6 +24709,7 @@ characters.data={ category="lo", description="ORIYA LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB33, }, @@ -24174,6 +24717,7 @@ characters.data={ category="lo", description="ORIYA LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB35, }, @@ -24181,6 +24725,7 @@ characters.data={ category="lo", description="ORIYA LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB36, }, @@ -24188,6 +24733,7 @@ characters.data={ category="lo", description="ORIYA LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB37, }, @@ -24195,6 +24741,7 @@ characters.data={ category="lo", description="ORIYA LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB38, }, @@ -24202,6 +24749,7 @@ characters.data={ category="lo", description="ORIYA LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB39, }, @@ -24210,6 +24758,9 @@ characters.data={ combining=0x7, description="ORIYA SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0xB3C, }, @@ -24217,6 +24768,7 @@ characters.data={ category="lo", description="ORIYA SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0xB3D, }, @@ -24224,6 +24776,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xB3E, }, @@ -24231,6 +24785,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN I", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xB3F, }, @@ -24238,6 +24794,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xB40, }, @@ -24245,6 +24803,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB41, }, @@ -24252,6 +24812,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB42, }, @@ -24259,6 +24821,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN VOCALIC R", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB43, }, @@ -24266,6 +24830,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN VOCALIC RR", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB44, }, @@ -24273,6 +24839,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN E", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xB47, }, @@ -24280,6 +24848,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN AI", direction="l", + indic="d", + indicmark="l", linebreak="cm", specials={ "char", 0xB47, 0xB56 }, unicodeslot=0xB48, @@ -24288,6 +24858,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN O", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xB47, 0xB3E }, unicodeslot=0xB4B, @@ -24296,6 +24868,8 @@ characters.data={ category="mc", description="ORIYA VOWEL SIGN AU", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xB47, 0xB57 }, unicodeslot=0xB4C, @@ -24305,6 +24879,9 @@ characters.data={ combining=0x9, description="ORIYA SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", unicodeslot=0xB4D, }, @@ -24312,6 +24889,7 @@ characters.data={ category="mn", description="ORIYA AI LENGTH MARK", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xB56, }, @@ -24319,6 +24897,7 @@ characters.data={ category="mc", description="ORIYA AU LENGTH MARK", direction="l", + indic="o", linebreak="cm", unicodeslot=0xB57, }, @@ -24326,6 +24905,7 @@ characters.data={ category="lo", description="ORIYA LETTER RRA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xB21, 0xB3C }, unicodeslot=0xB5C, @@ -24334,6 +24914,7 @@ characters.data={ category="lo", description="ORIYA LETTER RHA", direction="l", + indic="c", linebreak="al", specials={ "char", 0xB22, 0xB3C }, unicodeslot=0xB5D, @@ -24342,6 +24923,7 @@ characters.data={ category="lo", description="ORIYA LETTER YYA", direction="l", + indic="o", linebreak="al", unicodeslot=0xB5F, }, @@ -24349,6 +24931,7 @@ characters.data={ category="lo", description="ORIYA LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0xB60, }, @@ -24356,6 +24939,7 @@ characters.data={ category="lo", description="ORIYA LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0xB61, }, @@ -24363,6 +24947,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN VOCALIC L", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB62, }, @@ -24370,6 +24956,8 @@ characters.data={ category="mn", description="ORIYA VOWEL SIGN VOCALIC LL", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xB63, }, @@ -24377,6 +24965,7 @@ characters.data={ category="nd", description="ORIYA DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB66, }, @@ -24384,6 +24973,7 @@ characters.data={ category="nd", description="ORIYA DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB67, }, @@ -24391,6 +24981,7 @@ characters.data={ category="nd", description="ORIYA DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB68, }, @@ -24398,6 +24989,7 @@ characters.data={ category="nd", description="ORIYA DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB69, }, @@ -24405,6 +24997,7 @@ characters.data={ category="nd", description="ORIYA DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6A, }, @@ -24412,6 +25005,7 @@ characters.data={ category="nd", description="ORIYA DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6B, }, @@ -24419,6 +25013,7 @@ characters.data={ category="nd", description="ORIYA DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6C, }, @@ -24426,6 +25021,7 @@ characters.data={ category="nd", description="ORIYA DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6D, }, @@ -24433,6 +25029,7 @@ characters.data={ category="nd", description="ORIYA DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6E, }, @@ -24440,6 +25037,7 @@ characters.data={ category="nd", description="ORIYA DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xB6F, }, @@ -24447,6 +25045,7 @@ characters.data={ category="so", description="ORIYA ISSHAR", direction="l", + indic="o", linebreak="al", unicodeslot=0xB70, }, @@ -24454,6 +25053,7 @@ characters.data={ category="lo", description="ORIYA LETTER WA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB71, }, @@ -24461,6 +25061,7 @@ characters.data={ category="no", description="ORIYA FRACTION ONE QUARTER", direction="l", + indic="o", linebreak="al", unicodeslot=0xB72, }, @@ -24468,6 +25069,7 @@ characters.data={ category="no", description="ORIYA FRACTION ONE HALF", direction="l", + indic="o", linebreak="al", unicodeslot=0xB73, }, @@ -24475,6 +25077,7 @@ characters.data={ category="no", description="ORIYA FRACTION THREE QUARTERS", direction="l", + indic="o", linebreak="al", unicodeslot=0xB74, }, @@ -24482,6 +25085,7 @@ characters.data={ category="no", description="ORIYA FRACTION ONE SIXTEENTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xB75, }, @@ -24489,6 +25093,7 @@ characters.data={ category="no", description="ORIYA FRACTION ONE EIGHTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xB76, }, @@ -24496,6 +25101,7 @@ characters.data={ category="no", description="ORIYA FRACTION THREE SIXTEENTHS", direction="l", + indic="o", linebreak="al", unicodeslot=0xB77, }, @@ -24503,6 +25109,7 @@ characters.data={ category="mn", description="TAMIL SIGN ANUSVARA", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xB82, }, @@ -24510,6 +25117,7 @@ characters.data={ category="lo", description="TAMIL SIGN VISARGA", direction="l", + indic="o", linebreak="al", synonyms={ "tamil aytham" }, unicodeslot=0xB83, @@ -24518,6 +25126,7 @@ characters.data={ category="lo", description="TAMIL LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xB85, }, @@ -24525,6 +25134,7 @@ characters.data={ category="lo", description="TAMIL LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xB86, }, @@ -24532,6 +25142,7 @@ characters.data={ category="lo", description="TAMIL LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xB87, }, @@ -24539,6 +25150,7 @@ characters.data={ category="lo", description="TAMIL LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xB88, }, @@ -24546,6 +25158,7 @@ characters.data={ category="lo", description="TAMIL LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xB89, }, @@ -24553,6 +25166,7 @@ characters.data={ category="lo", description="TAMIL LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xB8A, }, @@ -24560,6 +25174,7 @@ characters.data={ category="lo", description="TAMIL LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xB8E, }, @@ -24567,6 +25182,7 @@ characters.data={ category="lo", description="TAMIL LETTER EE", direction="l", + indic="i", linebreak="al", unicodeslot=0xB8F, }, @@ -24574,6 +25190,7 @@ characters.data={ category="lo", description="TAMIL LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xB90, }, @@ -24581,6 +25198,7 @@ characters.data={ category="lo", description="TAMIL LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xB92, }, @@ -24588,6 +25206,7 @@ characters.data={ category="lo", description="TAMIL LETTER OO", direction="l", + indic="i", linebreak="al", unicodeslot=0xB93, }, @@ -24595,6 +25214,7 @@ characters.data={ category="lo", description="TAMIL LETTER AU", direction="l", + indic="i", linebreak="al", specials={ "char", 0xB92, 0xBD7 }, unicodeslot=0xB94, @@ -24603,6 +25223,7 @@ characters.data={ category="lo", description="TAMIL LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB95, }, @@ -24610,6 +25231,7 @@ characters.data={ category="lo", description="TAMIL LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB99, }, @@ -24617,6 +25239,7 @@ characters.data={ category="lo", description="TAMIL LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB9A, }, @@ -24624,6 +25247,7 @@ characters.data={ category="lo", description="TAMIL LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB9C, }, @@ -24631,6 +25255,7 @@ characters.data={ category="lo", description="TAMIL LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB9E, }, @@ -24638,6 +25263,7 @@ characters.data={ category="lo", description="TAMIL LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xB9F, }, @@ -24645,6 +25271,7 @@ characters.data={ category="lo", description="TAMIL LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBA3, }, @@ -24652,6 +25279,7 @@ characters.data={ category="lo", description="TAMIL LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBA4, }, @@ -24659,6 +25287,7 @@ characters.data={ category="lo", description="TAMIL LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBA8, }, @@ -24666,6 +25295,7 @@ characters.data={ category="lo", description="TAMIL LETTER NNNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBA9, }, @@ -24673,6 +25303,7 @@ characters.data={ category="lo", description="TAMIL LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBAA, }, @@ -24680,6 +25311,7 @@ characters.data={ category="lo", description="TAMIL LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBAE, }, @@ -24687,6 +25319,7 @@ characters.data={ category="lo", description="TAMIL LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBAF, }, @@ -24694,6 +25327,8 @@ characters.data={ category="lo", description="TAMIL LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xBB0, }, @@ -24701,6 +25336,7 @@ characters.data={ category="lo", description="TAMIL LETTER RRA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB1, }, @@ -24708,6 +25344,7 @@ characters.data={ category="lo", description="TAMIL LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB2, }, @@ -24715,6 +25352,7 @@ characters.data={ category="lo", description="TAMIL LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB3, }, @@ -24722,6 +25360,7 @@ characters.data={ category="lo", description="TAMIL LETTER LLLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB4, }, @@ -24729,6 +25368,7 @@ characters.data={ category="lo", description="TAMIL LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB5, }, @@ -24736,6 +25376,7 @@ characters.data={ category="lo", description="TAMIL LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB6, }, @@ -24743,6 +25384,7 @@ characters.data={ category="lo", description="TAMIL LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB7, }, @@ -24750,6 +25392,7 @@ characters.data={ category="lo", description="TAMIL LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB8, }, @@ -24757,6 +25400,7 @@ characters.data={ category="lo", description="TAMIL LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xBB9, }, @@ -24764,6 +25408,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xBBE, }, @@ -24771,6 +25417,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN I", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xBBF, }, @@ -24778,6 +25426,8 @@ characters.data={ category="mn", description="TAMIL VOWEL SIGN II", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xBC0, }, @@ -24785,6 +25435,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN U", direction="l", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xBC1, }, @@ -24792,6 +25444,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN UU", direction="l", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xBC2, }, @@ -24799,6 +25453,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN E", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xBC6, }, @@ -24806,6 +25462,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN EE", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xBC7, }, @@ -24813,6 +25471,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN AI", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xBC8, }, @@ -24820,6 +25480,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN O", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xBC6, 0xBBE }, unicodeslot=0xBCA, @@ -24828,6 +25490,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN OO", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xBC7, 0xBBE }, unicodeslot=0xBCB, @@ -24836,6 +25500,8 @@ characters.data={ category="mc", description="TAMIL VOWEL SIGN AU", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xBC6, 0xBD7 }, unicodeslot=0xBCC, @@ -24845,6 +25511,9 @@ characters.data={ combining=0x9, description="TAMIL SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="b", linebreak="cm", unicodeslot=0xBCD, }, @@ -24852,6 +25521,7 @@ characters.data={ category="lo", description="TAMIL OM", direction="l", + indic="o", linebreak="al", unicodeslot=0xBD0, }, @@ -24859,6 +25529,7 @@ characters.data={ category="mc", description="TAMIL AU LENGTH MARK", direction="l", + indic="o", linebreak="cm", unicodeslot=0xBD7, }, @@ -24866,6 +25537,7 @@ characters.data={ category="nd", description="TAMIL DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBE6, }, @@ -24873,6 +25545,7 @@ characters.data={ category="nd", description="TAMIL DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBE7, }, @@ -24880,6 +25553,7 @@ characters.data={ category="nd", description="TAMIL DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBE8, }, @@ -24887,6 +25561,7 @@ characters.data={ category="nd", description="TAMIL DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBE9, }, @@ -24894,6 +25569,7 @@ characters.data={ category="nd", description="TAMIL DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBEA, }, @@ -24901,6 +25577,7 @@ characters.data={ category="nd", description="TAMIL DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBEB, }, @@ -24908,6 +25585,7 @@ characters.data={ category="nd", description="TAMIL DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBEC, }, @@ -24915,6 +25593,7 @@ characters.data={ category="nd", description="TAMIL DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBED, }, @@ -24922,6 +25601,7 @@ characters.data={ category="nd", description="TAMIL DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBEE, }, @@ -24929,6 +25609,7 @@ characters.data={ category="nd", description="TAMIL DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xBEF, }, @@ -24936,6 +25617,7 @@ characters.data={ category="no", description="TAMIL NUMBER TEN", direction="l", + indic="o", linebreak="al", unicodeslot=0xBF0, }, @@ -24943,6 +25625,7 @@ characters.data={ category="no", description="TAMIL NUMBER ONE HUNDRED", direction="l", + indic="o", linebreak="al", unicodeslot=0xBF1, }, @@ -24950,6 +25633,7 @@ characters.data={ category="no", description="TAMIL NUMBER ONE THOUSAND", direction="l", + indic="o", linebreak="al", unicodeslot=0xBF2, }, @@ -24957,6 +25641,7 @@ characters.data={ category="so", description="TAMIL DAY SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil naal" }, unicodeslot=0xBF3, @@ -24965,6 +25650,7 @@ characters.data={ category="so", description="TAMIL MONTH SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil maatham" }, unicodeslot=0xBF4, @@ -24973,6 +25659,7 @@ characters.data={ category="so", description="TAMIL YEAR SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil varudam" }, unicodeslot=0xBF5, @@ -24981,6 +25668,7 @@ characters.data={ category="so", description="TAMIL DEBIT SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil patru" }, unicodeslot=0xBF6, @@ -24989,6 +25677,7 @@ characters.data={ category="so", description="TAMIL CREDIT SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil varavu" }, unicodeslot=0xBF7, @@ -24997,6 +25686,7 @@ characters.data={ category="so", description="TAMIL AS ABOVE SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil merpadi" }, unicodeslot=0xBF8, @@ -25005,6 +25695,7 @@ characters.data={ category="sc", description="TAMIL RUPEE SIGN", direction="et", + indic="o", linebreak="pr", synonyms={ "tamil rupai" }, unicodeslot=0xBF9, @@ -25013,6 +25704,7 @@ characters.data={ category="so", description="TAMIL NUMBER SIGN", direction="on", + indic="o", linebreak="al", synonyms={ "tamil enn" }, unicodeslot=0xBFA, @@ -25021,6 +25713,7 @@ characters.data={ category="mn", description="TELUGU SIGN COMBINING CANDRABINDU ABOVE", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xC00, }, @@ -25028,6 +25721,7 @@ characters.data={ category="mc", description="TELUGU SIGN CANDRABINDU", direction="l", + indic="o", linebreak="cm", unicodeslot=0xC01, }, @@ -25035,6 +25729,7 @@ characters.data={ category="mc", description="TELUGU SIGN ANUSVARA", direction="l", + indic="o", linebreak="cm", synonyms={ "telugu sunna" }, unicodeslot=0xC02, @@ -25043,6 +25738,7 @@ characters.data={ category="mc", description="TELUGU SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xC03, }, @@ -25050,6 +25746,7 @@ characters.data={ category="lo", description="TELUGU LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xC05, }, @@ -25057,6 +25754,7 @@ characters.data={ category="lo", description="TELUGU LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xC06, }, @@ -25064,6 +25762,7 @@ characters.data={ category="lo", description="TELUGU LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xC07, }, @@ -25071,6 +25770,7 @@ characters.data={ category="lo", description="TELUGU LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xC08, }, @@ -25078,6 +25778,7 @@ characters.data={ category="lo", description="TELUGU LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xC09, }, @@ -25085,6 +25786,7 @@ characters.data={ category="lo", description="TELUGU LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xC0A, }, @@ -25092,6 +25794,7 @@ characters.data={ category="lo", description="TELUGU LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0xC0B, }, @@ -25099,6 +25802,7 @@ characters.data={ category="lo", description="TELUGU LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0xC0C, }, @@ -25106,6 +25810,7 @@ characters.data={ category="lo", description="TELUGU LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xC0E, }, @@ -25113,6 +25818,7 @@ characters.data={ category="lo", description="TELUGU LETTER EE", direction="l", + indic="i", linebreak="al", unicodeslot=0xC0F, }, @@ -25120,6 +25826,7 @@ characters.data={ category="lo", description="TELUGU LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xC10, }, @@ -25127,6 +25834,7 @@ characters.data={ category="lo", description="TELUGU LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xC12, }, @@ -25134,6 +25842,7 @@ characters.data={ category="lo", description="TELUGU LETTER OO", direction="l", + indic="i", linebreak="al", unicodeslot=0xC13, }, @@ -25141,6 +25850,7 @@ characters.data={ category="lo", description="TELUGU LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xC14, }, @@ -25148,6 +25858,7 @@ characters.data={ category="lo", description="TELUGU LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC15, }, @@ -25155,6 +25866,7 @@ characters.data={ category="lo", description="TELUGU LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC16, }, @@ -25162,6 +25874,7 @@ characters.data={ category="lo", description="TELUGU LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC17, }, @@ -25169,6 +25882,7 @@ characters.data={ category="lo", description="TELUGU LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC18, }, @@ -25176,6 +25890,7 @@ characters.data={ category="lo", description="TELUGU LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC19, }, @@ -25183,6 +25898,7 @@ characters.data={ category="lo", description="TELUGU LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1A, }, @@ -25190,6 +25906,7 @@ characters.data={ category="lo", description="TELUGU LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1B, }, @@ -25197,6 +25914,7 @@ characters.data={ category="lo", description="TELUGU LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1C, }, @@ -25204,6 +25922,7 @@ characters.data={ category="lo", description="TELUGU LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1D, }, @@ -25211,6 +25930,7 @@ characters.data={ category="lo", description="TELUGU LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1E, }, @@ -25218,6 +25938,7 @@ characters.data={ category="lo", description="TELUGU LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC1F, }, @@ -25225,6 +25946,7 @@ characters.data={ category="lo", description="TELUGU LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC20, }, @@ -25232,6 +25954,7 @@ characters.data={ category="lo", description="TELUGU LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC21, }, @@ -25239,6 +25962,7 @@ characters.data={ category="lo", description="TELUGU LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC22, }, @@ -25246,6 +25970,7 @@ characters.data={ category="lo", description="TELUGU LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC23, }, @@ -25253,6 +25978,7 @@ characters.data={ category="lo", description="TELUGU LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC24, }, @@ -25260,6 +25986,7 @@ characters.data={ category="lo", description="TELUGU LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC25, }, @@ -25267,6 +25994,7 @@ characters.data={ category="lo", description="TELUGU LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC26, }, @@ -25274,6 +26002,7 @@ characters.data={ category="lo", description="TELUGU LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC27, }, @@ -25281,6 +26010,7 @@ characters.data={ category="lo", description="TELUGU LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC28, }, @@ -25288,6 +26018,7 @@ characters.data={ category="lo", description="TELUGU LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2A, }, @@ -25295,6 +26026,7 @@ characters.data={ category="lo", description="TELUGU LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2B, }, @@ -25302,6 +26034,7 @@ characters.data={ category="lo", description="TELUGU LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2C, }, @@ -25309,6 +26042,7 @@ characters.data={ category="lo", description="TELUGU LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2D, }, @@ -25316,6 +26050,7 @@ characters.data={ category="lo", description="TELUGU LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2E, }, @@ -25323,6 +26058,7 @@ characters.data={ category="lo", description="TELUGU LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC2F, }, @@ -25330,6 +26066,8 @@ characters.data={ category="lo", description="TELUGU LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xC30, }, @@ -25337,6 +26075,7 @@ characters.data={ category="lo", description="TELUGU LETTER RRA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC31, }, @@ -25344,6 +26083,7 @@ characters.data={ category="lo", description="TELUGU LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC32, }, @@ -25351,6 +26091,7 @@ characters.data={ category="lo", description="TELUGU LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC33, }, @@ -25358,6 +26099,7 @@ characters.data={ category="lo", description="TELUGU LETTER LLLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC34, }, @@ -25367,11 +26109,13 @@ characters.data={ direction="l", linebreak="al", unicodeslot=0xC35, + indic="c", }, [0xC36]={ category="lo", description="TELUGU LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC36, }, @@ -25379,6 +26123,7 @@ characters.data={ category="lo", description="TELUGU LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC37, }, @@ -25386,6 +26131,7 @@ characters.data={ category="lo", description="TELUGU LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC38, }, @@ -25393,6 +26139,7 @@ characters.data={ category="lo", description="TELUGU LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC39, }, @@ -25400,6 +26147,7 @@ characters.data={ category="lo", description="TELUGU SIGN AVAGRAHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC3D, }, @@ -25407,6 +26155,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN AA", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC3E, }, @@ -25414,6 +26164,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN I", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC3F, }, @@ -25421,6 +26173,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN II", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC40, }, @@ -25428,6 +26182,8 @@ characters.data={ category="mc", description="TELUGU VOWEL SIGN U", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xC41, }, @@ -25435,6 +26191,8 @@ characters.data={ category="mc", description="TELUGU VOWEL SIGN UU", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xC42, }, @@ -25442,6 +26200,8 @@ characters.data={ category="mc", description="TELUGU VOWEL SIGN VOCALIC R", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xC43, }, @@ -25449,6 +26209,8 @@ characters.data={ category="mc", description="TELUGU VOWEL SIGN VOCALIC RR", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xC44, }, @@ -25456,6 +26218,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN E", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC46, }, @@ -25463,6 +26227,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN EE", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC47, }, @@ -25470,6 +26236,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN AI", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", specials={ "char", 0xC46, 0xC56 }, unicodeslot=0xC48, @@ -25478,6 +26246,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN O", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC4A, }, @@ -25485,6 +26255,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN OO", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC4B, }, @@ -25492,6 +26264,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN AU", direction="nsm", + indic="d", + indicmark="t", linebreak="cm", unicodeslot=0xC4C, }, @@ -25500,6 +26274,9 @@ characters.data={ combining=0x9, description="TELUGU SIGN VIRAMA", direction="nsm", + indic="o", + indicclass="halant", + indicmark="t", linebreak="cm", unicodeslot=0xC4D, }, @@ -25508,6 +26285,7 @@ characters.data={ combining=0x54, description="TELUGU LENGTH MARK", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xC55, }, @@ -25516,6 +26294,7 @@ characters.data={ combining=0x5B, description="TELUGU AI LENGTH MARK", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xC56, }, @@ -25523,6 +26302,7 @@ characters.data={ category="lo", description="TELUGU LETTER TSA", direction="l", + indic="o", linebreak="al", unicodeslot=0xC58, }, @@ -25530,6 +26310,7 @@ characters.data={ category="lo", description="TELUGU LETTER DZA", direction="l", + indic="o", linebreak="al", unicodeslot=0xC59, }, @@ -25537,6 +26318,7 @@ characters.data={ category="lo", description="TELUGU LETTER RRRA", direction="l", + indic="o", linebreak="al", unicodeslot=0xC5A, }, @@ -25544,6 +26326,7 @@ characters.data={ category="lo", description="TELUGU LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0xC60, }, @@ -25551,6 +26334,7 @@ characters.data={ category="lo", description="TELUGU LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0xC61, }, @@ -25558,6 +26342,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN VOCALIC L", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xC62, }, @@ -25565,6 +26351,8 @@ characters.data={ category="mn", description="TELUGU VOWEL SIGN VOCALIC LL", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xC63, }, @@ -25572,6 +26360,7 @@ characters.data={ category="nd", description="TELUGU DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC66, }, @@ -25579,6 +26368,7 @@ characters.data={ category="nd", description="TELUGU DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC67, }, @@ -25586,6 +26376,7 @@ characters.data={ category="nd", description="TELUGU DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC68, }, @@ -25593,6 +26384,7 @@ characters.data={ category="nd", description="TELUGU DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC69, }, @@ -25600,6 +26392,7 @@ characters.data={ category="nd", description="TELUGU DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6A, }, @@ -25607,6 +26400,7 @@ characters.data={ category="nd", description="TELUGU DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6B, }, @@ -25614,6 +26408,7 @@ characters.data={ category="nd", description="TELUGU DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6C, }, @@ -25621,6 +26416,7 @@ characters.data={ category="nd", description="TELUGU DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6D, }, @@ -25628,6 +26424,7 @@ characters.data={ category="nd", description="TELUGU DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6E, }, @@ -25635,6 +26432,7 @@ characters.data={ category="nd", description="TELUGU DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xC6F, }, @@ -25642,6 +26440,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC78, }, @@ -25649,6 +26448,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC79, }, @@ -25656,6 +26456,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC7A, }, @@ -25663,6 +26464,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC7B, }, @@ -25670,6 +26472,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC7C, }, @@ -25677,6 +26480,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC7D, }, @@ -25684,6 +26488,7 @@ characters.data={ category="no", description="TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR", direction="on", + indic="o", linebreak="al", unicodeslot=0xC7E, }, @@ -25691,6 +26496,7 @@ characters.data={ category="so", description="TELUGU SIGN TUUMU", direction="l", + indic="o", linebreak="al", unicodeslot=0xC7F, }, @@ -25698,6 +26504,7 @@ characters.data={ category="lo", description="KANNADA SIGN SPACING CANDRABINDU", direction="l", + indic="o", linebreak="al", unicodeslot=0xC80, }, @@ -25705,6 +26512,7 @@ characters.data={ category="mn", description="KANNADA SIGN CANDRABINDU", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xC81, }, @@ -25712,6 +26520,7 @@ characters.data={ category="mc", description="KANNADA SIGN ANUSVARA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xC82, }, @@ -25719,6 +26528,7 @@ characters.data={ category="mc", description="KANNADA SIGN VISARGA", direction="l", + indic="o", linebreak="cm", unicodeslot=0xC83, }, @@ -25726,6 +26536,7 @@ characters.data={ category="lo", description="KANNADA LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xC85, }, @@ -25733,6 +26544,7 @@ characters.data={ category="lo", description="KANNADA LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xC86, }, @@ -25740,6 +26552,7 @@ characters.data={ category="lo", description="KANNADA LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xC87, }, @@ -25747,6 +26560,7 @@ characters.data={ category="lo", description="KANNADA LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xC88, }, @@ -25754,6 +26568,7 @@ characters.data={ category="lo", description="KANNADA LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xC89, }, @@ -25761,6 +26576,7 @@ characters.data={ category="lo", description="KANNADA LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xC8A, }, @@ -25768,6 +26584,7 @@ characters.data={ category="lo", description="KANNADA LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0xC8B, }, @@ -25775,6 +26592,7 @@ characters.data={ category="lo", description="KANNADA LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0xC8C, }, @@ -25782,6 +26600,7 @@ characters.data={ category="lo", description="KANNADA LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xC8E, }, @@ -25789,6 +26608,7 @@ characters.data={ category="lo", description="KANNADA LETTER EE", direction="l", + indic="i", linebreak="al", unicodeslot=0xC8F, }, @@ -25796,6 +26616,7 @@ characters.data={ category="lo", description="KANNADA LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xC90, }, @@ -25803,6 +26624,7 @@ characters.data={ category="lo", description="KANNADA LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xC92, }, @@ -25810,6 +26632,7 @@ characters.data={ category="lo", description="KANNADA LETTER OO", direction="l", + indic="i", linebreak="al", unicodeslot=0xC93, }, @@ -25817,6 +26640,7 @@ characters.data={ category="lo", description="KANNADA LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xC94, }, @@ -25824,6 +26648,7 @@ characters.data={ category="lo", description="KANNADA LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC95, }, @@ -25831,6 +26656,7 @@ characters.data={ category="lo", description="KANNADA LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC96, }, @@ -25838,6 +26664,7 @@ characters.data={ category="lo", description="KANNADA LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC97, }, @@ -25845,6 +26672,7 @@ characters.data={ category="lo", description="KANNADA LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC98, }, @@ -25852,6 +26680,7 @@ characters.data={ category="lo", description="KANNADA LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC99, }, @@ -25859,6 +26688,7 @@ characters.data={ category="lo", description="KANNADA LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9A, }, @@ -25866,6 +26696,7 @@ characters.data={ category="lo", description="KANNADA LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9B, }, @@ -25873,6 +26704,7 @@ characters.data={ category="lo", description="KANNADA LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9C, }, @@ -25880,6 +26712,7 @@ characters.data={ category="lo", description="KANNADA LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9D, }, @@ -25887,6 +26720,7 @@ characters.data={ category="lo", description="KANNADA LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9E, }, @@ -25894,6 +26728,7 @@ characters.data={ category="lo", description="KANNADA LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xC9F, }, @@ -25901,6 +26736,7 @@ characters.data={ category="lo", description="KANNADA LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA0, }, @@ -25908,6 +26744,7 @@ characters.data={ category="lo", description="KANNADA LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA1, }, @@ -25915,6 +26752,7 @@ characters.data={ category="lo", description="KANNADA LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA2, }, @@ -25922,6 +26760,7 @@ characters.data={ category="lo", description="KANNADA LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA3, }, @@ -25929,6 +26768,7 @@ characters.data={ category="lo", description="KANNADA LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA4, }, @@ -25936,6 +26776,7 @@ characters.data={ category="lo", description="KANNADA LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA5, }, @@ -25943,6 +26784,7 @@ characters.data={ category="lo", description="KANNADA LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA6, }, @@ -25950,6 +26792,7 @@ characters.data={ category="lo", description="KANNADA LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA7, }, @@ -25957,6 +26800,7 @@ characters.data={ category="lo", description="KANNADA LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCA8, }, @@ -25964,6 +26808,7 @@ characters.data={ category="lo", description="KANNADA LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAA, }, @@ -25971,6 +26816,7 @@ characters.data={ category="lo", description="KANNADA LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAB, }, @@ -25978,6 +26824,7 @@ characters.data={ category="lo", description="KANNADA LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAC, }, @@ -25985,6 +26832,7 @@ characters.data={ category="lo", description="KANNADA LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAD, }, @@ -25992,6 +26840,7 @@ characters.data={ category="lo", description="KANNADA LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAE, }, @@ -25999,6 +26848,7 @@ characters.data={ category="lo", description="KANNADA LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCAF, }, @@ -26006,6 +26856,9 @@ characters.data={ category="lo", description="KANNADA LETTER RA", direction="l", + indic="c", + indicclass="ra", + indicorder="ap", linebreak="al", unicodeslot=0xCB0, }, @@ -26013,6 +26866,7 @@ characters.data={ category="lo", description="KANNADA LETTER RRA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB1, }, @@ -26020,6 +26874,7 @@ characters.data={ category="lo", description="KANNADA LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB2, }, @@ -26027,6 +26882,7 @@ characters.data={ category="lo", description="KANNADA LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB3, }, @@ -26034,6 +26890,7 @@ characters.data={ category="lo", description="KANNADA LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB5, }, @@ -26041,6 +26898,7 @@ characters.data={ category="lo", description="KANNADA LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB6, }, @@ -26048,6 +26906,7 @@ characters.data={ category="lo", description="KANNADA LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB7, }, @@ -26055,6 +26914,7 @@ characters.data={ category="lo", description="KANNADA LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB8, }, @@ -26062,6 +26922,7 @@ characters.data={ category="lo", description="KANNADA LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCB9, }, @@ -26070,6 +26931,9 @@ characters.data={ combining=0x7, description="KANNADA SIGN NUKTA", direction="nsm", + indic="o", + indicmark="b", + indicclass="nukta", linebreak="cm", unicodeslot=0xCBC, }, @@ -26077,6 +26941,7 @@ characters.data={ category="lo", description="KANNADA SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0xCBD, }, @@ -26084,6 +26949,9 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", + indicorder="bs", linebreak="cm", unicodeslot=0xCBE, }, @@ -26091,6 +26959,9 @@ characters.data={ category="mn", description="KANNADA VOWEL SIGN I", direction="l", + indic="d", + indicmark="t", + indicorder="bs", linebreak="cm", unicodeslot=0xCBF, }, @@ -26098,6 +26969,8 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", specials={ "char", 0xCBF, 0xCD5 }, unicodeslot=0xCC0, @@ -26106,6 +26979,9 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN U", direction="l", + indic="d", + indicmark="r", + indicorder="bs", linebreak="cm", unicodeslot=0xCC1, }, @@ -26113,6 +26989,9 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN UU", direction="l", + indic="d", + indicmark="r", + indicorder="bs", linebreak="cm", unicodeslot=0xCC2, }, @@ -26120,6 +26999,9 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN VOCALIC R", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0xCC3, }, @@ -26127,6 +27009,9 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN VOCALIC RR", direction="l", + indic="d", + indicmark="r", + indicorder="as", linebreak="cm", unicodeslot=0xCC4, }, @@ -26134,6 +27019,9 @@ characters.data={ category="mn", description="KANNADA VOWEL SIGN E", direction="l", + indic="d", + indicmark="t", + indicorder="bs", linebreak="cm", unicodeslot=0xCC6, }, @@ -26141,6 +27029,8 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN EE", direction="l", + indic="d", + indicmark="r", linebreak="cm", specials={ "char", 0xCC6, 0xCD5 }, unicodeslot=0xCC7, @@ -26149,6 +27039,8 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN AI", direction="l", + indic="d", + indicmark="r", linebreak="cm", specials={ "char", 0xCC6, 0xCD6 }, unicodeslot=0xCC8, @@ -26157,6 +27049,8 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN O", direction="l", + indic="d", + indicmark="r", linebreak="cm", specials={ "char", 0xCC6, 0xCC2 }, unicodeslot=0xCCA, @@ -26165,6 +27059,8 @@ characters.data={ category="mc", description="KANNADA VOWEL SIGN OO", direction="l", + indic="d", + indicmark="r", linebreak="cm", specials={ "char", 0xCCA, 0xCD5 }, unicodeslot=0xCCB, @@ -26173,6 +27069,9 @@ characters.data={ category="mn", description="KANNADA VOWEL SIGN AU", direction="nsm", + indic="d", + indicmark="r", + indicorder="bs", linebreak="cm", unicodeslot=0xCCC, }, @@ -26181,6 +27080,8 @@ characters.data={ combining=0x9, description="KANNADA SIGN VIRAMA", direction="nsm", + indic="s", + indicclass="halant", linebreak="cm", unicodeslot=0xCCD, }, @@ -26188,6 +27089,8 @@ characters.data={ category="mc", description="KANNADA LENGTH MARK", direction="l", + indic="o", + indicorder="as", linebreak="cm", unicodeslot=0xCD5, }, @@ -26195,6 +27098,8 @@ characters.data={ category="mc", description="KANNADA AI LENGTH MARK", direction="l", + indic="o", + indicorder="as", linebreak="cm", unicodeslot=0xCD6, }, @@ -26202,6 +27107,7 @@ characters.data={ category="lo", description="KANNADA LETTER FA", direction="l", + indic="c", linebreak="al", unicodeslot=0xCDE, }, @@ -26209,6 +27115,7 @@ characters.data={ category="lo", description="KANNADA LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0xCE0, }, @@ -26216,6 +27123,7 @@ characters.data={ category="lo", description="KANNADA LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0xCE1, }, @@ -26223,6 +27131,9 @@ characters.data={ category="mn", description="KANNADA VOWEL SIGN VOCALIC L", direction="nsm", + indic="d", + indicmark="b", + indicorder="bs", linebreak="cm", unicodeslot=0xCE2, }, @@ -26230,6 +27141,9 @@ characters.data={ category="mn", description="KANNADA VOWEL SIGN VOCALIC LL", direction="nsm", + indic="d", + indicmark="b", + indicorder="bs", linebreak="cm", unicodeslot=0xCE3, }, @@ -26237,6 +27151,7 @@ characters.data={ category="nd", description="KANNADA DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCE6, }, @@ -26244,6 +27159,7 @@ characters.data={ category="nd", description="KANNADA DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCE7, }, @@ -26251,6 +27167,7 @@ characters.data={ category="nd", description="KANNADA DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCE8, }, @@ -26258,6 +27175,7 @@ characters.data={ category="nd", description="KANNADA DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCE9, }, @@ -26265,6 +27183,7 @@ characters.data={ category="nd", description="KANNADA DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCEA, }, @@ -26272,6 +27191,7 @@ characters.data={ category="nd", description="KANNADA DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCEB, }, @@ -26279,6 +27199,7 @@ characters.data={ category="nd", description="KANNADA DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCEC, }, @@ -26286,6 +27207,7 @@ characters.data={ category="nd", description="KANNADA DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCED, }, @@ -26293,6 +27215,7 @@ characters.data={ category="nd", description="KANNADA DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCEE, }, @@ -26300,6 +27223,7 @@ characters.data={ category="nd", description="KANNADA DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xCEF, }, @@ -26307,6 +27231,7 @@ characters.data={ category="so", description="KANNADA SIGN JIHVAMULIYA", direction="l", + indic="o", linebreak="al", unicodeslot=0xCF1, }, @@ -26314,6 +27239,7 @@ characters.data={ category="so", description="KANNADA SIGN UPADHMANIYA", direction="l", + indic="o", linebreak="al", unicodeslot=0xCF2, }, @@ -26321,6 +27247,7 @@ characters.data={ category="mn", description="MALAYALAM SIGN COMBINING ANUSVARA ABOVE", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xD00, }, @@ -26328,6 +27255,7 @@ characters.data={ category="mn", description="MALAYALAM SIGN CANDRABINDU", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xD01, }, @@ -26335,6 +27263,7 @@ characters.data={ category="mc", description="MALAYALAM SIGN ANUSVARA", direction="l", + indic="m", linebreak="cm", unicodeslot=0xD02, }, @@ -26342,6 +27271,7 @@ characters.data={ category="mc", description="MALAYALAM SIGN VISARGA", direction="l", + indic="m", linebreak="cm", unicodeslot=0xD03, }, @@ -26349,6 +27279,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER A", direction="l", + indic="i", linebreak="al", unicodeslot=0xD05, }, @@ -26356,6 +27287,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER AA", direction="l", + indic="i", linebreak="al", unicodeslot=0xD06, }, @@ -26363,6 +27295,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER I", direction="l", + indic="i", linebreak="al", unicodeslot=0xD07, }, @@ -26370,6 +27303,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER II", direction="l", + indic="i", linebreak="al", unicodeslot=0xD08, }, @@ -26377,6 +27311,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER U", direction="l", + indic="i", linebreak="al", unicodeslot=0xD09, }, @@ -26384,6 +27319,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER UU", direction="l", + indic="i", linebreak="al", unicodeslot=0xD0A, }, @@ -26391,6 +27327,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER VOCALIC R", direction="l", + indic="i", linebreak="al", unicodeslot=0xD0B, }, @@ -26398,6 +27335,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER VOCALIC L", direction="l", + indic="i", linebreak="al", unicodeslot=0xD0C, }, @@ -26405,6 +27343,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER E", direction="l", + indic="i", linebreak="al", unicodeslot=0xD0E, }, @@ -26412,6 +27351,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER EE", direction="l", + indic="i", linebreak="al", unicodeslot=0xD0F, }, @@ -26419,6 +27359,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER AI", direction="l", + indic="i", linebreak="al", unicodeslot=0xD10, }, @@ -26426,6 +27367,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER O", direction="l", + indic="i", linebreak="al", unicodeslot=0xD12, }, @@ -26433,6 +27375,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER OO", direction="l", + indic="i", linebreak="al", unicodeslot=0xD13, }, @@ -26440,6 +27383,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER AU", direction="l", + indic="i", linebreak="al", unicodeslot=0xD14, }, @@ -26447,6 +27391,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER KA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD15, }, @@ -26454,6 +27399,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER KHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD16, }, @@ -26461,6 +27407,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER GA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD17, }, @@ -26468,6 +27415,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER GHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD18, }, @@ -26475,6 +27423,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER NGA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD19, }, @@ -26482,6 +27431,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1A, }, @@ -26489,6 +27439,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1B, }, @@ -26496,6 +27447,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER JA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1C, }, @@ -26503,6 +27455,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER JHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1D, }, @@ -26510,6 +27463,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER NYA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1E, }, @@ -26517,6 +27471,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER TTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD1F, }, @@ -26524,6 +27479,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER TTHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD20, }, @@ -26531,6 +27487,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER DDA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD21, }, @@ -26538,6 +27495,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER DDHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD22, }, @@ -26545,6 +27503,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER NNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD23, }, @@ -26552,6 +27511,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER TA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD24, }, @@ -26559,6 +27519,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER THA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD25, }, @@ -26566,6 +27527,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER DA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD26, }, @@ -26573,6 +27535,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER DHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD27, }, @@ -26580,6 +27543,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER NA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD28, }, @@ -26587,6 +27551,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER NNNA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD29, }, @@ -26594,6 +27559,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER PA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2A, }, @@ -26601,6 +27567,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER PHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2B, }, @@ -26608,6 +27575,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER BA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2C, }, @@ -26615,6 +27583,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER BHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2D, }, @@ -26622,6 +27591,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER MA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2E, }, @@ -26629,6 +27599,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER YA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD2F, }, @@ -26636,6 +27607,8 @@ characters.data={ category="lo", description="MALAYALAM LETTER RA", direction="l", + indic="c", + indicclass="ra", linebreak="al", unicodeslot=0xD30, }, @@ -26643,6 +27616,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER RRA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD31, }, @@ -26650,6 +27624,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER LA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD32, }, @@ -26657,6 +27632,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER LLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD33, }, @@ -26664,6 +27640,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER LLLA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD34, }, @@ -26671,6 +27648,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER VA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD35, }, @@ -26678,6 +27656,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER SHA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD36, }, @@ -26685,6 +27664,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER SSA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD37, }, @@ -26692,6 +27672,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER SA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD38, }, @@ -26699,6 +27680,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER HA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD39, }, @@ -26706,6 +27688,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER TTTA", direction="l", + indic="c", linebreak="al", unicodeslot=0xD3A, }, @@ -26714,6 +27697,7 @@ characters.data={ combining=0x9, description="MALAYALAM SIGN VERTICAL BAR VIRAMA", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xD3B, }, @@ -26722,6 +27706,7 @@ characters.data={ combining=0x9, description="MALAYALAM SIGN CIRCULAR VIRAMA", direction="nsm", + indic="o", linebreak="cm", unicodeslot=0xD3C, }, @@ -26729,6 +27714,7 @@ characters.data={ category="lo", description="MALAYALAM SIGN AVAGRAHA", direction="l", + indic="o", linebreak="al", unicodeslot=0xD3D, }, @@ -26736,6 +27722,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN AA", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD3E, }, @@ -26743,6 +27731,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN I", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD3F, }, @@ -26750,6 +27740,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN II", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD40, }, @@ -26757,6 +27749,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN U", direction="nsm", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD41, }, @@ -26764,6 +27758,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN UU", direction="nsm", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD42, }, @@ -26771,6 +27767,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN VOCALIC R", direction="nsm", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD43, }, @@ -26778,6 +27776,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN VOCALIC RR", direction="nsm", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD44, }, @@ -26785,6 +27785,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN E", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xD46, }, @@ -26792,6 +27794,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN EE", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xD47, }, @@ -26799,6 +27803,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN AI", direction="l", + indic="d", + indicmark="l", linebreak="cm", unicodeslot=0xD48, }, @@ -26806,6 +27812,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN O", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xD46, 0xD3E }, unicodeslot=0xD4A, @@ -26814,6 +27822,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN OO", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xD47, 0xD3E }, unicodeslot=0xD4B, @@ -26822,6 +27832,8 @@ characters.data={ category="mc", description="MALAYALAM VOWEL SIGN AU", direction="l", + indic="d", + indicmark="s", linebreak="cm", specials={ "char", 0xD46, 0xD57 }, unicodeslot=0xD4C, @@ -26831,6 +27843,8 @@ characters.data={ combining=0x9, description="MALAYALAM SIGN VIRAMA", direction="nsm", + indic="s", + indicclass="halant", linebreak="cm", synonyms={ "malayalam chandrakkala", "malayalam vowel half-u" }, unicodeslot=0xD4D, @@ -26839,6 +27853,8 @@ characters.data={ category="lo", description="MALAYALAM LETTER DOT REPH", direction="l", + indic="o", + indicmark="t", linebreak="al", unicodeslot=0xD4E, }, @@ -26846,6 +27862,7 @@ characters.data={ category="so", description="MALAYALAM SIGN PARA", direction="l", + indic="o", linebreak="al", unicodeslot=0xD4F, }, @@ -26853,6 +27870,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU M", direction="l", + indic="o", linebreak="al", unicodeslot=0xD54, }, @@ -26860,6 +27878,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU Y", direction="l", + indic="o", linebreak="al", unicodeslot=0xD55, }, @@ -26867,6 +27886,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU LLL", direction="l", + indic="o", linebreak="al", unicodeslot=0xD56, }, @@ -26874,6 +27894,8 @@ characters.data={ category="mc", description="MALAYALAM AU LENGTH MARK", direction="l", + indic="d", + indicmark="r", linebreak="cm", unicodeslot=0xD57, }, @@ -26881,6 +27903,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD58, }, @@ -26888,6 +27911,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE FORTIETH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD59, }, @@ -26895,6 +27919,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION THREE EIGHTIETHS", direction="l", + indic="o", linebreak="al", unicodeslot=0xD5A, }, @@ -26902,6 +27927,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE TWENTIETH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD5B, }, @@ -26909,6 +27935,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE TENTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD5C, }, @@ -26916,6 +27943,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION THREE TWENTIETHS", direction="l", + indic="o", linebreak="al", unicodeslot=0xD5D, }, @@ -26923,6 +27951,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE FIFTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD5E, }, @@ -26930,6 +27959,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER ARCHAIC II", direction="l", + indic="i", linebreak="al", unicodeslot=0xD5F, }, @@ -26937,6 +27967,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER VOCALIC RR", direction="l", + indic="i", linebreak="al", unicodeslot=0xD60, }, @@ -26944,6 +27975,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER VOCALIC LL", direction="l", + indic="i", linebreak="al", unicodeslot=0xD61, }, @@ -26951,6 +27983,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN VOCALIC L", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xD62, }, @@ -26958,6 +27992,8 @@ characters.data={ category="mn", description="MALAYALAM VOWEL SIGN VOCALIC LL", direction="nsm", + indic="d", + indicmark="b", linebreak="cm", unicodeslot=0xD63, }, @@ -26965,6 +28001,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT ZERO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD66, }, @@ -26972,6 +28009,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT ONE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD67, }, @@ -26979,6 +28017,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT TWO", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD68, }, @@ -26986,6 +28025,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT THREE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD69, }, @@ -26993,6 +28033,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT FOUR", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6A, }, @@ -27000,6 +28041,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT FIVE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6B, }, @@ -27007,6 +28049,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT SIX", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6C, }, @@ -27014,6 +28057,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT SEVEN", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6D, }, @@ -27021,6 +28065,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT EIGHT", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6E, }, @@ -27028,6 +28073,7 @@ characters.data={ category="nd", description="MALAYALAM DIGIT NINE", direction="l", + indic="o", linebreak="nu", unicodeslot=0xD6F, }, @@ -27035,6 +28081,7 @@ characters.data={ category="no", description="MALAYALAM NUMBER TEN", direction="l", + indic="o", linebreak="al", unicodeslot=0xD70, }, @@ -27042,6 +28089,7 @@ characters.data={ category="no", description="MALAYALAM NUMBER ONE HUNDRED", direction="l", + indic="o", linebreak="al", unicodeslot=0xD71, }, @@ -27049,6 +28097,7 @@ characters.data={ category="no", description="MALAYALAM NUMBER ONE THOUSAND", direction="l", + indic="o", linebreak="al", unicodeslot=0xD72, }, @@ -27056,6 +28105,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE QUARTER", direction="l", + indic="o", linebreak="al", unicodeslot=0xD73, }, @@ -27063,6 +28113,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE HALF", direction="l", + indic="o", linebreak="al", unicodeslot=0xD74, }, @@ -27070,6 +28121,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION THREE QUARTERS", direction="l", + indic="o", linebreak="al", unicodeslot=0xD75, }, @@ -27077,6 +28129,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE SIXTEENTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD76, }, @@ -27084,6 +28137,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION ONE EIGHTH", direction="l", + indic="o", linebreak="al", unicodeslot=0xD77, }, @@ -27091,6 +28145,7 @@ characters.data={ category="no", description="MALAYALAM FRACTION THREE SIXTEENTHS", direction="l", + indic="o", linebreak="al", unicodeslot=0xD78, }, @@ -27098,6 +28153,7 @@ characters.data={ category="so", description="MALAYALAM DATE MARK", direction="l", + indic="o", linebreak="po", unicodeslot=0xD79, }, @@ -27105,6 +28161,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU NN", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7A, }, @@ -27112,6 +28169,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU N", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7B, }, @@ -27119,6 +28177,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU RR", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7C, }, @@ -27126,6 +28185,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU L", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7D, }, @@ -27133,6 +28193,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU LL", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7E, }, @@ -27140,6 +28201,7 @@ characters.data={ category="lo", description="MALAYALAM LETTER CHILLU K", direction="l", + indic="o", linebreak="al", unicodeslot=0xD7F, }, @@ -117560,6 +118622,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT ZERO", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E0, }, @@ -117568,6 +118632,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT ONE", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E1, }, @@ -117576,6 +118642,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT TWO", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E2, }, @@ -117584,6 +118652,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT THREE", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E3, }, @@ -117592,6 +118662,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT FOUR", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E4, }, @@ -117600,6 +118672,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT FIVE", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E5, }, @@ -117608,6 +118682,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT SIX", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E6, }, @@ -117616,6 +118692,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT SEVEN", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E7, }, @@ -117624,6 +118702,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT EIGHT", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E8, }, @@ -117632,6 +118712,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI DIGIT NINE", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8E9, }, @@ -117640,6 +118722,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER A", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8EA, }, @@ -117648,6 +118732,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER U", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8EB, }, @@ -117656,6 +118742,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER KA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8EC, }, @@ -117664,6 +118752,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER NA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8ED, }, @@ -117672,6 +118762,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER PA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8EE, }, @@ -117680,6 +118772,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER RA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8EF, }, @@ -117688,6 +118782,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI LETTER VI", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8F0, }, @@ -117696,6 +118792,8 @@ characters.data={ combining=0xE6, description="COMBINING DEVANAGARI SIGN AVAGRAHA", direction="nsm", + indic="m", + indicmark="t", linebreak="cm", unicodeslot=0xA8F1, }, diff --git a/tex/context/base/mkiv/cldf-ini.lua b/tex/context/base/mkiv/cldf-ini.lua index a2814877d..6f39578b4 100644 --- a/tex/context/base/mkiv/cldf-ini.lua +++ b/tex/context/base/mkiv/cldf-ini.lua @@ -633,6 +633,20 @@ end local containseol = patterns.containseol +local s_cldl_option_b = "[\\cldl" +local s_cldl_option_f = "[\\cldl" -- add space (not needed) +local s_cldl_option_e = "]" +local s_cldl_option_s = "\\cldl" +local s_cldl_argument_b = "{\\cldl" +local s_cldl_argument_f = "{\\cldl " +local s_cldl_argument_e = "}" + +-- local s_cldl_option_b = "[" +-- local s_cldl_option_f = "" -- add space (not needed) +-- local s_cldl_option_s = "" +-- local s_cldl_argument_b = "{" +-- local s_cldl_argument_f = "{ " + local function writer(parent,command,...) -- already optimized before call flush(currentcatcodes,command) -- todo: ctx|prt|texcatcodes local direct = false @@ -699,8 +713,7 @@ local function writer(parent,command,...) -- already optimized before call elseif tn == 1 then -- some 20% faster than the next loop local tj = ti[1] if type(tj) == "function" then - flush(currentcatcodes,"[\\cldl",storefunction(tj),"]") - -- flush(currentcatcodes,"[",storefunction(tj),"]") + flush(currentcatcodes,s_cldl_option_b,storefunction(tj),s_cldl_option_e) else flush(currentcatcodes,"[",tj,"]") end @@ -710,11 +723,9 @@ local function writer(parent,command,...) -- already optimized before call local tj = ti[j] if type(tj) == "function" then if j == tn then - flush(currentcatcodes,"\\cldl",storefunction(tj),"]") - -- flush(currentcatcodes,"",storefunction(tj),"]") + flush(currentcatcodes,s_cldl_option_s,storefunction(tj),"]") else - flush(currentcatcodes,"\\cldl",storefunction(tj),",") - -- flush(currentcatcodes,"",storefunction(tj),",") + flush(currentcatcodes,s_cldl_option_s,storefunction(tj),",") end else if j == tn then @@ -726,8 +737,8 @@ local function writer(parent,command,...) -- already optimized before call end end elseif typ == "function" then - flush(currentcatcodes,"{\\cldl ",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes - -- flush(currentcatcodes,"{",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes + -- todo: ctx|prt|texcatcodes + flush(currentcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e) elseif typ == "boolean" then if ti then flushdirect(currentcatcodes,"\r") @@ -737,8 +748,7 @@ local function writer(parent,command,...) -- already optimized before call elseif typ == "thread" then report_context("coroutines not supported as we cannot yield across boundaries") elseif isnode(ti) then -- slow - flush(currentcatcodes,"{\\cldl",storenode(ti),"}") - -- flush(currentcatcodes,"{",storenode(ti),"}") + flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e) else report_context("error: %a gets a weird argument %a",command,ti) end @@ -762,11 +772,9 @@ end -- if tp == "string" or tp == "number"then -- flush(prtcatcodes,"{",ti,"}") -- elseif tp == "function" then --- flush(prtcatcodes,"{\\cldl ",storefunction(ti),"}") --- -- flush(currentcatcodes,"{",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes +-- flush(prtcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e) -- elseif isnode(ti) then --- flush(prtcatcodes,"{\\cldl",storenode(ti),"}") --- -- flush(currentcatcodes,"{",storenode(ti),"}") +-- flush(prtcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e) -- else -- report_context("fatal error: prt %a gets a weird argument %a",command,ti) -- end diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 0c05ea230..ca0f0d157 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2018.03.23 13:13} +\newcontextversion{2018.03.25 17:32} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 900a7488b..1b9c2b4c3 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -42,7 +42,7 @@ %D has to match \type {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2018.03.23 13:13} +\edef\contextversion{2018.03.25 17:32} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-map.lua b/tex/context/base/mkiv/font-map.lua index d4a1b4594..66cf2db39 100644 --- a/tex/context/base/mkiv/font-map.lua +++ b/tex/context/base/mkiv/font-map.lua @@ -192,8 +192,8 @@ local function tounicode(unicode) end -- no real gain on runs --- --- local hash = setmetatableindex(function(t,u) + +-- local hash = table.setmetatableindex(function(t,u) -- local v -- if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then -- v = f_single(u) @@ -209,7 +209,7 @@ end -- if type(unicode) == "table" then -- local t = { } -- for l=1,#unicode do --- t[l] = hash[u] +-- t[l] = hash[unicode[l]] -- end -- return concat(t) -- else diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua index 04fbf88f5..0bfa0028f 100644 --- a/tex/context/base/mkiv/font-osd.lua +++ b/tex/context/base/mkiv/font-osd.lua @@ -8,59 +8,75 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag -- A few remarks: -- --- This code is a partial rewrite of the code that deals with devanagari. The data and logic --- is by Kai Eigner and based based on Microsoft's OpenType specifications for specific --- scripts, but with a few improvements. More information can be found at: +-- This code is a partial rewrite of the code that deals with devanagari. The data +-- and logic is by Kai Eigner and based based on Microsoft's OpenType specifications +-- for specific scripts, but with a few improvements. More information can be found +-- at: -- -- deva: http://www.microsoft.com/typography/OpenType%20Dev/devanagari/introO.mspx -- dev2: http://www.microsoft.com/typography/OpenType%20Dev/devanagari/intro.mspx -- --- Rajeesh Nambiar provided patches for the malayalam variant. Thanks to feedback from --- the mailing list some aspects could be improved. +-- Rajeesh Nambiar provided patches for the malayalam variant. Thanks to feedback +-- from the mailing list some aspects could be improved. -- --- As I touched nearly all code, reshuffled it, optimized a lot, etc. etc. (imagine how --- much can get messed up in over a week work) it could be that I introduced bugs. There --- is more to gain (esp in the functions applied to a range) but I'll do that when --- everything works as expected. Kai's original code is kept in font-odk.lua as a reference --- so blame me (HH) for bugs. (We no longer ship that file as the code below has diverted --- too much and in the meantime has more than doubled in size.) +-- As I touched nearly all code, reshuffled it, optimized a lot, etc. etc. (imagine +-- how much can get messed up in over a week work) it could be that I introduced +-- bugs. There is more to gain (esp in the functions applied to a range) but I'll do +-- that when everything works as expected. Kai's original code is kept in +-- font-odk.lua as a reference so blame me (HH) for bugs. (We no longer ship that +-- file as the code below has diverted too much and in the meantime has more than +-- doubled in size.) -- --- Interesting is that Kai managed to write this on top of the existing otf handler. Only a --- few extensions were needed, like a few more analyzing states and dealing with changed --- head nodes in the core scanner as that only happens here. There's a lot going on here --- and it's only because I touched nearly all code that I got a bit of a picture of what --- happens. For in-depth knowledge one needs to consult Kai. +-- Interesting is that Kai managed to write this on top of the existing otf handler. +-- Only a few extensions were needed, like a few more analyzing states and dealing +-- with changed head nodes in the core scanner as that only happens here. There's a +-- lot going on here and it's only because I touched nearly all code that I got a +-- bit of a picture of what happens. For in-depth knowledge one needs to consult +-- Kai. -- --- The rewrite mostly deals with efficiency, both in terms of speed and code. We also made --- sure that it suits generic use as well as use in ConTeXt. I removed some buglets but can --- as well have messed up the logic by doing this. For this we keep the original around --- as that serves as reference. Due to the lots of reshuffling glyphs quite some leaks --- occur(red) but once I'm satisfied with the rewrite I'll weed them. I also integrated --- initialization etc into the regular mechanisms. +-- The rewrite mostly deals with efficiency, both in terms of speed and code. We +-- also made sure that it suits generic use as well as use in ConTeXt. I removed +-- some buglets but can as well have messed up the logic by doing this. For this we +-- keep the original around as that serves as reference. Due to the lots of +-- reshuffling glyphs quite some leaks occur(red) but once I'm satisfied with the +-- rewrite I'll weed them. I also integrated initialization etc into the regular +-- mechanisms. -- --- In the meantime, we're down from 25.5-3.5=22 seconds to 17.7-3.5=14.2 seconds for a 100 --- page sample (mid 2012) with both variants so it's worth the effort. Some more speedup is --- to be expected. Due to the method chosen it will never be real fast. If I ever become a --- power user I'll have a go at some further speed up. I will rename some functions (and --- features) once we don't need to check the original code. We now use a special subset --- sequence for use inside the analyzer (after all we could can store this in the dataset --- and save redundant analysis). +-- In the meantime, we're down from 25.5-3.5=22 seconds to 17.7-3.5=14.2 seconds for +-- a 100 page sample (mid 2012) with both variants so it's worth the effort. Some +-- more speedup is to be expected. Due to the method chosen it will never be real +-- fast. If I ever become a power user I'll have a go at some further speed up. I +-- will rename some functions (and features) once we don't need to check the +-- original code. We now use a special subset sequence for use inside the analyzer +-- (after all we could can store this in the dataset and save redundant analysis). -- --- I might go for an array approach with respect to attributes (and reshuffling). Easier. +-- By now we have yet another incremental improved version. In the end I might +-- rewrite the code. -- --- Some data will move to char-def.lua (some day). --- --- By now we have yet another incremental improved version. In the end I might rewrite the --- code. - -- Hans Hagen, PRAGMA-ADE, Hasselt NL --- --- We could have c_nukta, c_halant, c_ra is we know that they are never used mixed within --- one script .. yes or no? + +-- Todo: -- -- Matras: according to Microsoft typography specifications "up to one of each type: -- pre-, above-, below- or post- base", but that does not seem to be right. It could -- become an option. +-- +-- Resources: +-- +-- The tables that we had here are now generated from char-def.lua or in the case of +-- generic usage loaded from luatex-basics-chr.lua. Still a couple of entries need +-- to be added to char-def.lua but finally I moved the indic specific tables there. +-- For generic usage one can create the relevant resources by running: +-- +-- context luatex-basics-prepare.tex +-- +-- and an overview with: +-- +-- context --global s-fonts-basics.mkiv +-- +-- For now we have defined: bengali, devanagari, gujarati, gurmukhi, kannada, +-- malayalam, oriya, tamil and tolugu but not all are checked. Also, some of the +-- code below might need to be adapted to the extra scripts. local insert, imerge, copy = table.insert, table.imerge, table.copy local next, type = next, type @@ -161,219 +177,123 @@ end -- return head, true -- end --- In due time there will be entries here for scripts like Bengali, Gujarati, --- Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu. Feel free to provide the --- code points. - -- We can assume that script are not mixed in the source but if that is the case -- we might need to have consonants etc per script and initialize a local table --- pointing to the right one. +-- pointing to the right one. But not now. --- new, to be checked: --- --- U+00978 : DEVANAGARI LETTER MARWARI DDA --- U+00980 : BENGALI ANJI --- U+00C00 : TELUGU SIGN COMBINING CANDRABINDU ABOVE --- U+00C34 : TELUGU LETTER LLLA --- U+00C81 : KANNADA SIGN CANDRABINDU --- U+00D01 : MALAYALAM SIGN CANDRABINDU --- U+00DE6 : SINHALA LITH DIGIT ZERO --- U+00DE7 : SINHALA LITH DIGIT ONE --- U+00DE8 : SINHALA LITH DIGIT TWO --- U+00DE9 : SINHALA LITH DIGIT THREE --- U+00DEA : SINHALA LITH DIGIT FOUR --- U+00DEB : SINHALA LITH DIGIT FIVE --- U+00DEC : SINHALA LITH DIGIT SIX --- U+00DED : SINHALA LITH DIGIT SEVEN --- U+00DEE : SINHALA LITH DIGIT EIGHT --- U+00DEF : SINHALA LITH DIGIT NINE - -local consonant = { - -- devanagari - [0x0915] = true, [0x0916] = true, [0x0917] = true, [0x0918] = true, - [0x0919] = true, [0x091A] = true, [0x091B] = true, [0x091C] = true, - [0x091D] = true, [0x091E] = true, [0x091F] = true, [0x0920] = true, - [0x0921] = true, [0x0922] = true, [0x0923] = true, [0x0924] = true, - [0x0925] = true, [0x0926] = true, [0x0927] = true, [0x0928] = true, - [0x0929] = true, [0x092A] = true, [0x092B] = true, [0x092C] = true, - [0x092D] = true, [0x092E] = true, [0x092F] = true, [0x0930] = true, - [0x0931] = true, [0x0932] = true, [0x0933] = true, [0x0934] = true, - [0x0935] = true, [0x0936] = true, [0x0937] = true, [0x0938] = true, - [0x0939] = true, [0x0958] = true, [0x0959] = true, [0x095A] = true, - [0x095B] = true, [0x095C] = true, [0x095D] = true, [0x095E] = true, - [0x095F] = true, [0x0979] = true, [0x097A] = true, - -- kannada - [0x0C95] = true, [0x0C96] = true, [0x0C97] = true, [0x0C98] = true, - [0x0C99] = true, [0x0C9A] = true, [0x0C9B] = true, [0x0C9C] = true, - [0x0C9D] = true, [0x0C9E] = true, [0x0C9F] = true, [0x0CA0] = true, - [0x0CA1] = true, [0x0CA2] = true, [0x0CA3] = true, [0x0CA4] = true, - [0x0CA5] = true, [0x0CA6] = true, [0x0CA7] = true, [0x0CA8] = true, - [0x0CA9] = true, [0x0CAA] = true, [0x0CAB] = true, [0x0CAC] = true, - [0x0CAD] = true, [0x0CAE] = true, [0x0CAF] = true, [0x0CB0] = true, - [0x0CB1] = true, [0x0CB2] = true, [0x0CB3] = true, [0x0CB4] = true, - [0x0CB5] = true, [0x0CB6] = true, [0x0CB7] = true, [0x0CB8] = true, - [0x0CB9] = true, - [0x0CDE] = true, -- obsolete - -- malayalam - [0x0D15] = true, [0x0D16] = true, [0x0D17] = true, [0x0D18] = true, - [0x0D19] = true, [0x0D1A] = true, [0x0D1B] = true, [0x0D1C] = true, - [0x0D1D] = true, [0x0D1E] = true, [0x0D1F] = true, [0x0D20] = true, - [0x0D21] = true, [0x0D22] = true, [0x0D23] = true, [0x0D24] = true, - [0x0D25] = true, [0x0D26] = true, [0x0D27] = true, [0x0D28] = true, - [0x0D29] = true, [0x0D2A] = true, [0x0D2B] = true, [0x0D2C] = true, - [0x0D2D] = true, [0x0D2E] = true, [0x0D2F] = true, [0x0D30] = true, - [0x0D31] = true, [0x0D32] = true, [0x0D33] = true, [0x0D34] = true, - [0x0D35] = true, [0x0D36] = true, [0x0D37] = true, [0x0D38] = true, - [0x0D39] = true, [0x0D3A] = true, -} +local indicgroups = characters and characters.indicgroups -local independent_vowel = { - -- devanagari - [0x0904] = true, [0x0905] = true, [0x0906] = true, [0x0907] = true, - [0x0908] = true, [0x0909] = true, [0x090A] = true, [0x090B] = true, - [0x090C] = true, [0x090D] = true, [0x090E] = true, [0x090F] = true, - [0x0910] = true, [0x0911] = true, [0x0912] = true, [0x0913] = true, - [0x0914] = true, [0x0960] = true, [0x0961] = true, [0x0972] = true, - [0x0973] = true, [0x0974] = true, [0x0975] = true, [0x0976] = true, - [0x0977] = true, - -- kannada - [0x0C85] = true, [0x0C86] = true, [0x0C87] = true, [0x0C88] = true, - [0x0C89] = true, [0x0C8A] = true, [0x0C8B] = true, [0x0C8C] = true, - [0x0C8D] = true, [0x0C8E] = true, [0x0C8F] = true, [0x0C90] = true, - [0x0C91] = true, [0x0C92] = true, [0x0C93] = true, [0x0C94] = true, - -- malayalam - [0x0D05] = true, [0x0D06] = true, [0x0D07] = true, [0x0D08] = true, - [0x0D09] = true, [0x0D0A] = true, [0x0D0B] = true, [0x0D0C] = true, - [0x0D0E] = true, [0x0D0F] = true, [0x0D10] = true, [0x0D12] = true, - [0x0D13] = true, [0x0D14] = true, -} - -local dependent_vowel = { -- matra - -- devanagari - [0x093A] = true, [0x093B] = true, [0x093E] = true, [0x093F] = true, - [0x0940] = true, [0x0941] = true, [0x0942] = true, [0x0943] = true, - [0x0944] = true, [0x0945] = true, [0x0946] = true, [0x0947] = true, - [0x0948] = true, [0x0949] = true, [0x094A] = true, [0x094B] = true, - [0x094C] = true, [0x094E] = true, [0x094F] = true, [0x0955] = true, - [0x0956] = true, [0x0957] = true, [0x0962] = true, [0x0963] = true, - -- kannada - [0x0CBE] = true, [0x0CBF] = true, [0x0CC0] = true, [0x0CC1] = true, - [0x0CC2] = true, [0x0CC3] = true, [0x0CC4] = true, [0x0CC5] = true, - [0x0CC6] = true, [0x0CC7] = true, [0x0CC8] = true, [0x0CC9] = true, - [0x0CCA] = true, [0x0CCB] = true, [0x0CCC] = true, - -- malayalam - [0x0D3E] = true, [0x0D3F] = true, [0x0D40] = true, [0x0D41] = true, - [0x0D42] = true, [0x0D43] = true, [0x0D44] = true, [0x0D46] = true, - [0x0D47] = true, [0x0D48] = true, [0x0D4A] = true, [0x0D4B] = true, - [0x0D4C] = true, [0x0D57] = true, -} +if not indicgroups and characters then -local vowel_modifier = { - -- devanagari - [0x0900] = true, [0x0901] = true, [0x0902] = true, [0x0903] = true, - -- A8E0 - A8F1 are cantillation marks for the Samaveda and may not belong here. - [0xA8E0] = true, [0xA8E1] = true, [0xA8E2] = true, [0xA8E3] = true, - [0xA8E4] = true, [0xA8E5] = true, [0xA8E6] = true, [0xA8E7] = true, - [0xA8E8] = true, [0xA8E9] = true, [0xA8EA] = true, [0xA8EB] = true, - [0xA8EC] = true, [0xA8ED] = true, [0xA8EE] = true, [0xA8EF] = true, - [0xA8F0] = true, [0xA8F1] = true, - -- malayalam - [0x0D02] = true, [0x0D03] = true, -} + local indic = { + c = { }, -- consonant + i = { }, -- independent vowel + d = { }, -- dependent vowel + m = { }, -- vowel modifier + s = { }, -- stress tone mark + o = { }, -- other + } -local stress_tone_mark = { - [0x0951] = true, [0x0952] = true, [0x0953] = true, [0x0954] = true, - -- kannada - [0x0CCD] = true, - -- malayalam - [0x0D4D] = true, -} + local indicmarks = { + l = { }, -- left | pre_mark + t = { }, -- top | above_mark + b = { }, -- bottom | below_mark + r = { }, -- right | post_mark + s = { }, -- split | twopart_mark + } -local nukta = { - -- devanagari - [0x093C] = true, - -- kannada: - [0x0CBC] = true, -} + local indicclasses = { + nukta = { }, + halant = { }, + ra = { }, + anudatta = { }, + } -local halant = { - -- devanagari - [0x094D] = true, - -- kannada - [0x0CCD] = true, - -- malayalam - [0x0D4D] = true, -} + local indicorders = { + bp = { }, -- before_postscript + ap = { }, -- after_postscript + bs = { }, -- before_half + as = { }, -- after_half + bh = { }, -- before_subscript + ah = { }, -- after_subscript + } -local ra = { - -- devanagari - [0x0930] = true, - -- kannada - [0x0CB0] = true, - -- malayalam - [0x0D30] = true, -} + for k, v in next, characters.data do + local i = v.indic + if i then + indic[i][k] = true + i = v.indicmark + if i then + if i == "s" then + local s = v.specials + indicmarks[i][k] = { s[2], s[3] } + else + indicmarks[i][k] = true + end + end + i = v.indicclass + if i then + indicclasses[i][k] = true + end + i = v.indicorder + if i then + indicorders[i][k] = true + end + end + end -local c_anudatta = 0x0952 -- used to be tables -local c_nbsp = 0x00A0 -- used to be tables -local c_zwnj = 0x200C -- used to be tables -local c_zwj = 0x200D -- used to be tables + indicgroups = { + consonant = indic.c, + independent_vowel = indic.i, + dependent_vowel = indic.d, + vowel_modifier = indic.m, + stress_tone_mark = indic.s, + -- other = indic.o, + pre_mark = indicmarks.l, + above_mark = indicmarks.t, + below_mark = indicmarks.b, + post_mark = indicmarks.r, + twopart_mark = indicmarks.s, + nukta = indicclasses.nukta, + halant = indicclasses.halant, + ra = indicclasses.ra, + anudatta = indicclasses.anudatta, + before_postscript = indicorders.bp, + after_postscript = indicorders.ap, + before_half = indicorders.bh, + after_half = indicorders.ah, + before_subscript = indicorders.bs, + after_subscript = indicorders.as, + } -local zw_char = { -- could also be inlined - [0x200C] = true, - [0x200D] = true, -} + indic = nil + indicmarks = nil + indicclasses = nil + indicorders = nil --- 0C82 anusvara --- 0C83 visarga --- 0CBD avagraha --- 0CD5 length mark --- 0CD6 ai length mark --- 0CE0 letter ll --- 0CE1 letter rr --- 0CE2 vowel sign l --- 0CE2 vowel sign ll --- 0CF1 sign --- 0CF2 sign --- OCE6 - OCEF digits - -local pre_mark = { - [0x093F] = true, [0x094E] = true, - -- malayalam - [0x0D46] = true, [0x0D47] = true, [0x0D48] = true, -} + characters.indicgroups = indicgroups -local above_mark = { - [0x0900] = true, [0x0901] = true, [0x0902] = true, [0x093A] = true, - [0x0945] = true, [0x0946] = true, [0x0947] = true, [0x0948] = true, - [0x0951] = true, [0x0953] = true, [0x0954] = true, [0x0955] = true, - [0xA8E0] = true, [0xA8E1] = true, [0xA8E2] = true, [0xA8E3] = true, - [0xA8E4] = true, [0xA8E5] = true, [0xA8E6] = true, [0xA8E7] = true, - [0xA8E8] = true, [0xA8E9] = true, [0xA8EA] = true, [0xA8EB] = true, - [0xA8EC] = true, [0xA8ED] = true, [0xA8EE] = true, [0xA8EF] = true, - [0xA8F0] = true, [0xA8F1] = true, - -- malayalam - [0x0D4E] = true, -} +else -local below_mark = { - [0x093C] = true, [0x0941] = true, [0x0942] = true, [0x0943] = true, - [0x0944] = true, [0x094D] = true, [0x0952] = true, [0x0956] = true, - [0x0957] = true, [0x0962] = true, [0x0963] = true, -} + indicgroups = table.setmetatableindex("table") -local post_mark = { - [0x0903] = true, [0x093B] = true, [0x093E] = true, [0x0940] = true, - [0x0949] = true, [0x094A] = true, [0x094B] = true, [0x094C] = true, - [0x094F] = true, -} +end -local twopart_mark = { - -- malayalam - [0x0D4A] = { 0x0D46, 0x0D3E, }, -- ൊ - [0x0D4B] = { 0x0D47, 0x0D3E, }, -- ോ - [0x0D4C] = { 0x0D46, 0x0D57, }, -- ൌ -} +local consonant = indicgroups.consonant +local independent_vowel = indicgroups.independent_vowel +local dependent_vowel = indicgroups.dependent_vowel +local vowel_modifier = indicgroups.vowel_modifier +local stress_tone_mark = indicgroups.stress_tone_mark +local pre_mark = indicgroups.pre_mark +local above_mark = indicgroups.above_mark +local below_mark = indicgroups.below_mark +local post_mark = indicgroups.post_mark +local twopart_mark = indicgroups.twopart_mark +local nukta = indicgroups.nukta +local halant = indicgroups.halant +local ra = indicgroups.ra +local anudatta = indicgroups.anudatta +local after_subscript = indicgroups.after_subscript local mark_four = { } -- As we access these frequently an extra hash is used. @@ -392,46 +312,18 @@ for k, v in next, post_mark do mark_above_below_post[k] = post_mark end -- for ConTeXt this kind of data is kept elsewhere so eventually we might move -- tables to someplace else. -local reorder_class = { - -- devanagari - [0x0930] = "before postscript", - [0x093F] = "before half", - [0x0940] = "after subscript", - [0x0941] = "after subscript", - [0x0942] = "after subscript", - [0x0943] = "after subscript", - [0x0944] = "after subscript", - [0x0945] = "after subscript", - [0x0946] = "after subscript", - [0x0947] = "after subscript", - [0x0948] = "after subscript", - [0x0949] = "after subscript", - [0x094A] = "after subscript", - [0x094B] = "after subscript", - [0x094C] = "after subscript", - [0x0962] = "after subscript", - [0x0963] = "after subscript", - [0x093E] = "after subscript", - -- kannada: - [0x0CB0] = "after postscript", -- todo in code below - [0x0CBF] = "before subscript", -- todo in code below - [0x0CC6] = "before subscript", -- todo in code below - [0x0CCC] = "before subscript", -- todo in code below - [0x0CBE] = "before subscript", -- todo in code below - [0x0CE2] = "before subscript", -- todo in code below - [0x0CE3] = "before subscript", -- todo in code below - [0x0CC1] = "before subscript", -- todo in code below - [0x0CC2] = "before subscript", -- todo in code below - [0x0CC3] = "after subscript", - [0x0CC4] = "after subscript", - [0x0CD5] = "after subscript", - [0x0CD6] = "after subscript", - -- malayalam -} - -- We use some pseudo features as we need to manipulate the nodelist based -- on information in the font as well as already applied features. +local c_nbsp = 0x00A0 +local c_zwnj = 0x200C +local c_zwj = 0x200D + +local zw_char = { -- both_joiners_true + [c_zwnj] = true, + [c_zwj ] = true, +} + local dflt_true = { dflt = true } @@ -447,11 +339,6 @@ local deva_defaults = { local false_flags = { false, false, false, false } -local both_joiners_true = { - [0x200C] = true, - [0x200D] = true, -} - local sequence_reorder_matras = { features = { dv01 = dev2_defaults }, flags = false_flags, @@ -503,7 +390,7 @@ local sequence_remove_joiners = { nofsteps = 1, steps = { { - coverage = both_joiners_true, + coverage = zw_char, -- both_joiners_true }, } } @@ -802,9 +689,9 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces) local tmp = next and getnext(next) or nil -- needs checking local changestop = next == stop local tempcurrent = copy_node(next) - copyinjection(tempcurrent,next) + copyinjection(tempcurrent,next) local nextcurrent = copy_node(current) - copyinjection(nextcurrent,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set + copyinjection(nextcurrent,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set setlink(tempcurrent,nextcurrent) setprop(tempcurrent,a_state,s_blwf) tempcurrent = processcharacters(tempcurrent,font) @@ -812,7 +699,7 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces) if getchar(next) == getchar(tempcurrent) then flush_list(tempcurrent) local n = copy_node(current) - copyinjection(n,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set + copyinjection(n,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set setchar(current,dotted_circle) head = insert_node_after(head, current, n) else @@ -1218,7 +1105,7 @@ function handlers.devanagari_reorder_reph(head,start) while current do local char = ischar(current,startfont) if char and getprop(current,a_syllabe) == startattr then -- step 5 - if not c and mark_above_below_post[char] and reorder_class[char] ~= "after subscript" then + if not c and mark_above_below_post[char] and after_subscript[char] then c = current end current = getnext(current) @@ -1358,7 +1245,7 @@ function handlers.devanagari_remove_joiners(head,start,kind,lookupname,replaceme setnext(prev) end if head == start then - head = stop + head = stop end flush_list(start) return head, stop, true @@ -1559,7 +1446,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces) -- maybe do a pa if halant[getchar(current)] then setnext(getnext(current),tmp) local nc = copy_node(current) - copyinjection(nc,current) + copyinjection(nc,current) setchar(current,dotted_circle) head = insert_node_after(head,current,nc) else @@ -1957,7 +1844,7 @@ local function analyze_next_chars_two(c,font) if not v then return c end - if v == c_anudatta then + if anudatta[v] then c = n n = getnext(c) if not n then @@ -2058,7 +1945,7 @@ end local function inject_syntax_error(head,current,mark) local signal = copy_node(current) - copyinjection(signal,current) + copyinjection(signal,current) if mark == pre_mark then -- THIS IS WRONG: pre_mark is a table setchar(signal,dotted_circle) else @@ -2077,14 +1964,14 @@ function methods.deva(head,font,attr) local done = false local nbspaces = 0 while current do - local char = ischar(current,font) + local char = ischar(current,font) if char then done = true local syllablestart = current local syllableend = nil local c = current local n = getnext(c) - local first = char + local first = char if n and ra[first] then local second = ischar(n,font) if second and halant[second] then @@ -2116,8 +2003,8 @@ function methods.deva(head,font,attr) end if standalone then -- stand alone cluster (at the start of the word only): #[Ra+H]+NBSP+[N]+[<[<ZWJ|ZWNJ>]+H+C>]+[{M}+[N]+[H]]+[SM]+[(VD)] - local syllableend = analyze_next_chars_one(c,font,2) - current = getnext(syllableend) + local syllableend = analyze_next_chars_one(c,font,2) + current = getnext(syllableend) if syllablestart ~= syllableend then head, current, nbspaces = deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces) current = getnext(current) @@ -2296,7 +2183,7 @@ function methods.dev2(head,font,attr) local nextnextchar = ischar(n,font) if nextnextchar then c = n - char = nextnextchar + char = nextnextchar end end end diff --git a/tex/context/base/mkiv/font-ota.lua b/tex/context/base/mkiv/font-ota.lua index 9c6ee7403..de626c120 100644 --- a/tex/context/base/mkiv/font-ota.lua +++ b/tex/context/base/mkiv/font-ota.lua @@ -248,11 +248,11 @@ local function warning(current,what) end local mappers = allocate { - l = s_init, -- left - d = s_medi, -- double - c = s_medi, -- joiner - r = s_fina, -- right - u = s_isol, -- nonjoiner + l = s_init, -- left + d = s_medi, -- double + c = s_medi, -- joiner + r = s_fina, -- right + u = s_isol, -- nonjoiner } -- we can also use this trick for devanagari diff --git a/tex/context/base/mkiv/l-table.lua b/tex/context/base/mkiv/l-table.lua index 269b89667..5cd65dd67 100644 --- a/tex/context/base/mkiv/l-table.lua +++ b/tex/context/base/mkiv/l-table.lua @@ -420,7 +420,7 @@ end -- todo : copy without metatable -local function copy(t, tables) -- taken from lua wiki, slightly adapted +local function copy(t,tables) -- taken from lua wiki, slightly adapted tables = tables or { } local tcopy = { } if not tables[t] then @@ -431,7 +431,7 @@ local function copy(t, tables) -- taken from lua wiki, slightly adapted if tables[i] then i = tables[i] else - i = copy(i, tables) + i = copy(i,tables) end end if type(v) ~= "table" then @@ -439,7 +439,7 @@ local function copy(t, tables) -- taken from lua wiki, slightly adapted elseif tables[v] then tcopy[i] = tables[v] else - tcopy[i] = copy(v, tables) + tcopy[i] = copy(v,tables) end end local mt = getmetatable(t) diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex ee53ac2b5..58b354529 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex 8c98172e1..e4af5aa4a 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/util-str.lua b/tex/context/base/mkiv/util-str.lua index c8cc1742b..f76895aaf 100644 --- a/tex/context/base/mkiv/util-str.lua +++ b/tex/context/base/mkiv/util-str.lua @@ -12,7 +12,8 @@ local strings = utilities.strings local format, gsub, rep, sub, find = string.format, string.gsub, string.rep, string.sub, string.find local load, dump = load, string.dump -local tonumber, type, tostring, next = tonumber, type, tostring, next +local tonumber, type, tostring, next, setmetatable = tonumber, type, tostring, next, setmetatable +local unpack, concat = table.unpack, table.concat local unpack, concat = table.unpack, table.concat local P, V, C, S, R, Ct, Cs, Cp, Carg, Cc = lpeg.P, lpeg.V, lpeg.C, lpeg.S, lpeg.R, lpeg.Ct, lpeg.Cs, lpeg.Cp, lpeg.Carg, lpeg.Cc local patterns, lpegmatch = lpeg.patterns, lpeg.match @@ -22,8 +23,9 @@ local utfchar, utfbyte, utflen = utf.char, utf.byte, utf.len ----- setmetatableindex = table.setmetatableindex local loadstripped = nil +local oldfashioned = LUAVERSION < 5.2 -if LUAVERSION < 5.2 then +if oldfashioned then loadstripped = function(str,shortcuts) return load(str) @@ -524,7 +526,7 @@ return function(%s) return %s end local preamble, environment = "", { } -if LUAVERSION < 5.2 then +if oldfashioned then preamble = [[ local lpeg=lpeg @@ -574,7 +576,7 @@ else sequenced = table.sequenced, formattednumber = number.formatted, sparseexponent = number.sparseexponent, - formattedfloat = number.formattedfloat + formattedfloat = number.formattedfloat, } end @@ -1044,42 +1046,31 @@ local builder = Cs { "start", ["!"] = Carg(2) * prefix_any * P("!") * C((1-P("!"))^1) * P("!") / format_extension, } --- we can be clever and only alias what is needed - --- local direct = Cs ( --- P("%")/"" --- * Cc([[local format = string.format return function(str) return format("%]]) --- * (S("+- .") + R("09"))^0 --- * S("sqidfgGeExXo") --- * Cc([[",str) end]]) --- * P(-1) --- ) - -local direct = Cs ( - P("%") - * (S("+- .") + R("09"))^0 - * S("sqidfgGeExXo") - * P(-1) / [[local format = string.format return function(str) return format("%0",str) end]] -) +-- We can be clever and only alias what is needed: + +local xx = setmetatable({ }, { __index = function(t,k) local v = format("%02x",k) t[k] = v return v end }) +local XX = setmetatable({ }, { __index = function(t,k) local v = format("%02X",k) t[k] = v return v end }) --- local direct = Cs ( --- P("%") --- * (S("+- .") + R("09"))^0 --- * S("sqidfgGeExXo") --- * (1-P("%"))^0 --- * P(-1) / [[local format = string.format return function(str) return format([==[%0]==],str) end]] --- ) +local preset = { + ["%02x"] = function(n) return xx[n] end, + ["%02X"] = function(n) return XX[n] end, +} + +local direct = + P("%") * (S("+- .") + R("09"))^0 * S("sqidfgGeExXo") * P(-1) + / [[local format = string.format return function(str) return format("%0",str) end]] local function make(t,str) - local f - local p + local f = preset[str] + if f then + return f + end local p = lpegmatch(direct,str) if p then - -- f = loadstripped(p)() -- print("builder 1 >",p) f = loadstripped(p)() else - n = 0 + n = 0 -- used in patterns -- p = lpegmatch(builder,str,1,"..",t._extensions_) -- after this we know n p = lpegmatch(builder,str,1,t._connector_,t._extensions_) -- after this we know n if n > 0 then @@ -1142,7 +1133,7 @@ strings.formatters = { } -- _connector_ is an experiment -if LUAVERSION < 5.2 then +if oldfashioned then function strings.formatters.new(noconcat) local t = { _type_ = "formatter", _connector_ = noconcat and "," or "..", _extensions_ = { }, _preamble_ = preamble, _environment_ = { } } @@ -1202,7 +1193,7 @@ patterns.luaquoted = Cs(Cc('"') * ((1-S('"\n'))^1 + P('"')/'\\"' + P('\n')/'\\n" -- escaping by lpeg is faster for strings without quotes, slower on a string with quotes, but -- faster again when other q-escapables are found (the ones we don't need to escape) -if LUAVERSION < 5.2 then +if oldfashioned then add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape") add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape") diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf Binary files differindex a3b7f46de..1245654ec 100644 --- a/tex/context/interface/mkiv/i-context.pdf +++ b/tex/context/interface/mkiv/i-context.pdf diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf Binary files differindex 633d4ed7e..f2aa59006 100644 --- a/tex/context/interface/mkiv/i-readme.pdf +++ b/tex/context/interface/mkiv/i-readme.pdf diff --git a/tex/context/modules/mkiv/s-fonts-basics.mkiv b/tex/context/modules/mkiv/s-fonts-basics.mkiv new file mode 100644 index 000000000..f90009789 --- /dev/null +++ b/tex/context/modules/mkiv/s-fonts-basics.mkiv @@ -0,0 +1,162 @@ +%D \module +%D [ file=s-fnt-01, +%D version=2006.10.10, % guess +%D title=\CONTEXT\ Style File, +%D subtitle=Listing Glyphs in Large Fonts, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D This module is just a check for \type {luatex-basics-prepare}. + +\usemodule[article] + +\setupbodyfont[9pt] + +\starttext + +\definefontfeature + [boundingbox] + [boundingbox=yes] + +\definefont + [TestFont] + [file:arialuni.ttf*boundingbox] + +\startluacode + +local data = characters.data + +local indicscripts = table.sorted { + "devanagari", + "kannada", + "malayalam", + "tamil", + "bengali", + "gurmukhi", + "gujarati", + "oriya", + "telugu", +} + +local arabicscripts = table.sorted { + "arabic", + "syriac", + "mandiac", + "nko", +} + +local allindic = true +local allarabic = true + +for i=1,#indicscripts do + local script = indicscripts[i] + local first, last = characters.blockrange(script) + context.starttitle { title = script } + context.starttabulate { "|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tp|" } + context.FL() + context.BC() context("unicode") + context.BC() context("glyph") + context.BC() context("category") + context.BC() context("indic") + context.BC() context("mark") + context.BC() context("class") + context.BC() context("order") + context.BC() context("description") + context.NC() context.NR() + context.ML() + for i=first,last do + local d = data[i] + if d and d.unicodeslot then + local indic = d.indic + local category = d.category or "?" + local description = d.description + if not indic then + context.NC() context("\\red %U",i) + context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i) + context.NC() context("\\red %s",category) + context.NC() + context.NC() + context.NC() + context.NC() + context.NC() context(description) + context.NC() context.NR() + else + local indicclass = d.indicclass + local indicmark = d.indicmark + local indicorder = d.indicorder + if allindic or indic == "d" or indicmark or indicclass or indicorder then + context.NC() context("%U",i) + context.NC() context("\\showstruts\\strut\\TestFont %c",i) + context.NC() context(category) + context.NC() context(indic or "?") + context.NC() context(indicmark or "") + context.NC() context(indicclass or "") + context.NC() context(indicorder or "") + context.NC() context(description) + context.NC() context.NR() + end + end + end + end + context.LL() + context.stoptabulate() + context.stoptitle() +end + +for i=1,#arabicscripts do + local script = arabicscripts[i] + local first, last = characters.blockrange(script) + context.starttitle { title = script } + context.starttabulate { "|Tc|Tc|Tc|Tc|Tp|" } + context.FL() + context.BC() context("unicode") + context.BC() context("glyph") + context.BC() context("category") + context.BC() context("arabic") + context.BC() context("description") + context.NC() context.NR() + context.ML() + for i=first,last do + local d = data[i] + if d and d.unicodeslot then + local arabic = d.arabic + local category = d.category or "" + local description = d.description or "" + if arabic then + context.NC() context("%U",i) + context.NC() context("\\showstruts\\strut\\TestFont %c",i) + context.NC() context(category) + context.NC() context(arabic) + context.NC() context(description) + context.NC() context.NR() + elseif allarabic then + context.NC() context("\\red %U",i) + context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i) + context.NC() context("\\red %s",category) + context.NC() + context.NC() context("\\red %s",description) + context.NC() context.NR() + end + end + end + context.LL() + context.stoptabulate() + context.stoptitle() +end + +-- local olddata = io.loaddata("char-def.lua") +-- local preamble = string.gsub(olddata,"characters%.data%s*=%s*%{.*","") + +-- local newdata = table.serialize(data,"characters.data", { hexify = true, noquotes = true }) +-- local newdata = string.gsub(newdata,"%{%s+%[0xFE0E%]=\"text style\",%s+%[0xFE0F%]=\"emoji style\",%s+%}","variants_emoji") + +-- io.savedata("char-def-new.lua",newdata) + +\stopluacode + +\stoptext diff --git a/tex/generic/context/luatex/luatex-basics-chr.lua b/tex/generic/context/luatex/luatex-basics-chr.lua index 75dffd192..8919418ce 100644 --- a/tex/generic/context/luatex/luatex-basics-chr.lua +++ b/tex/generic/context/luatex/luatex-basics-chr.lua @@ -676,6 +676,17 @@ characters.classifiers={ [2137]=5, [2138]=5, [2139]=5, + [2144]=2, + [2145]=4, + [2146]=2, + [2147]=2, + [2148]=2, + [2149]=2, + [2150]=4, + [2151]=3, + [2152]=2, + [2153]=3, + [2154]=3, [2208]=2, [2209]=2, [2210]=2, @@ -808,6 +819,12 @@ characters.classifiers={ [2765]=5, [2786]=5, [2787]=5, + [2810]=5, + [2811]=5, + [2812]=5, + [2813]=5, + [2814]=5, + [2815]=5, [2817]=5, [2876]=5, [2879]=5, @@ -845,7 +862,10 @@ characters.classifiers={ [3277]=5, [3298]=5, [3299]=5, + [3328]=5, [3329]=5, + [3387]=5, + [3388]=5, [3393]=5, [3394]=5, [3395]=5, @@ -1342,6 +1362,10 @@ characters.classifiers={ [7667]=5, [7668]=5, [7669]=5, + [7670]=5, + [7671]=5, + [7672]=5, + [7673]=5, [7675]=5, [7676]=5, [7677]=5, @@ -1831,6 +1855,49 @@ characters.classifiers={ [71465]=5, [71466]=5, [71467]=5, + [72193]=5, + [72194]=5, + [72195]=5, + [72196]=5, + [72197]=5, + [72198]=5, + [72201]=5, + [72202]=5, + [72243]=5, + [72244]=5, + [72245]=5, + [72246]=5, + [72247]=5, + [72248]=5, + [72251]=5, + [72252]=5, + [72253]=5, + [72254]=5, + [72263]=5, + [72273]=5, + [72274]=5, + [72275]=5, + [72276]=5, + [72277]=5, + [72278]=5, + [72281]=5, + [72282]=5, + [72283]=5, + [72330]=5, + [72331]=5, + [72332]=5, + [72333]=5, + [72334]=5, + [72335]=5, + [72336]=5, + [72337]=5, + [72338]=5, + [72339]=5, + [72340]=5, + [72341]=5, + [72342]=5, + [72344]=5, + [72345]=5, [72752]=5, [72753]=5, [72754]=5, @@ -1878,6 +1945,23 @@ characters.classifiers={ [72883]=5, [72885]=5, [72886]=5, + [73009]=5, + [73010]=5, + [73011]=5, + [73012]=5, + [73013]=5, + [73014]=5, + [73018]=5, + [73020]=5, + [73021]=5, + [73023]=5, + [73024]=5, + [73025]=5, + [73026]=5, + [73027]=5, + [73028]=5, + [73029]=5, + [73031]=5, [92912]=5, [92913]=5, [92914]=5, @@ -2171,4 +2255,895 @@ characters.classifiers={ [1042752]=5, } +characters.indicgroups={ + ["above_mark"]={ + [2304]=true, + [2305]=true, + [2306]=true, + [2362]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2385]=true, + [2387]=true, + [2388]=true, + [2389]=true, + [2631]=true, + [2632]=true, + [2635]=true, + [2636]=true, + [2757]=true, + [2759]=true, + [2760]=true, + [2879]=true, + [3008]=true, + [3134]=true, + [3135]=true, + [3136]=true, + [3142]=true, + [3143]=true, + [3144]=true, + [3146]=true, + [3147]=true, + [3148]=true, + [3149]=true, + [3263]=true, + [3270]=true, + [3406]=true, + [43232]=true, + [43233]=true, + [43234]=true, + [43235]=true, + [43236]=true, + [43237]=true, + [43238]=true, + [43239]=true, + [43240]=true, + [43241]=true, + [43242]=true, + [43243]=true, + [43244]=true, + [43245]=true, + [43246]=true, + [43247]=true, + [43248]=true, + [43249]=true, + }, + ["after_half"]={}, + ["after_postscript"]={ + [3248]=true, + }, + ["after_subscript"]={ + [2366]=true, + [2368]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2402]=true, + [2403]=true, + [3267]=true, + [3268]=true, + [3285]=true, + [3286]=true, + }, + ["anudatta"]={ + [2386]=true, + }, + ["before_half"]={ + [2367]=true, + }, + ["before_postscript"]={ + [2352]=true, + }, + ["before_subscript"]={ + [3262]=true, + [3263]=true, + [3265]=true, + [3266]=true, + [3270]=true, + [3276]=true, + [3298]=true, + [3299]=true, + }, + ["below_mark"]={ + [2364]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2381]=true, + [2386]=true, + [2390]=true, + [2391]=true, + [2402]=true, + [2403]=true, + [2492]=true, + [2497]=true, + [2498]=true, + [2499]=true, + [2500]=true, + [2509]=true, + [2620]=true, + [2625]=true, + [2626]=true, + [2637]=true, + [2748]=true, + [2753]=true, + [2754]=true, + [2755]=true, + [2756]=true, + [2765]=true, + [2876]=true, + [2881]=true, + [2882]=true, + [2883]=true, + [2884]=true, + [2893]=true, + [2914]=true, + [2915]=true, + [3009]=true, + [3010]=true, + [3021]=true, + [3170]=true, + [3171]=true, + [3260]=true, + [3298]=true, + [3299]=true, + [3426]=true, + [3427]=true, + }, + ["consonant"]={ + [2325]=true, + [2326]=true, + [2327]=true, + [2328]=true, + [2329]=true, + [2330]=true, + [2331]=true, + [2332]=true, + [2333]=true, + [2334]=true, + [2335]=true, + [2336]=true, + [2337]=true, + [2338]=true, + [2339]=true, + [2340]=true, + [2341]=true, + [2342]=true, + [2343]=true, + [2344]=true, + [2345]=true, + [2346]=true, + [2347]=true, + [2348]=true, + [2349]=true, + [2350]=true, + [2351]=true, + [2352]=true, + [2353]=true, + [2354]=true, + [2355]=true, + [2356]=true, + [2357]=true, + [2358]=true, + [2359]=true, + [2360]=true, + [2361]=true, + [2392]=true, + [2393]=true, + [2394]=true, + [2395]=true, + [2396]=true, + [2397]=true, + [2398]=true, + [2399]=true, + [2424]=true, + [2425]=true, + [2426]=true, + [2453]=true, + [2454]=true, + [2455]=true, + [2456]=true, + [2457]=true, + [2458]=true, + [2459]=true, + [2460]=true, + [2461]=true, + [2462]=true, + [2463]=true, + [2464]=true, + [2465]=true, + [2466]=true, + [2467]=true, + [2468]=true, + [2469]=true, + [2470]=true, + [2471]=true, + [2472]=true, + [2474]=true, + [2475]=true, + [2476]=true, + [2477]=true, + [2478]=true, + [2479]=true, + [2480]=true, + [2482]=true, + [2486]=true, + [2487]=true, + [2488]=true, + [2489]=true, + [2510]=true, + [2524]=true, + [2525]=true, + [2527]=true, + [2581]=true, + [2582]=true, + [2583]=true, + [2584]=true, + [2585]=true, + [2586]=true, + [2587]=true, + [2588]=true, + [2589]=true, + [2590]=true, + [2591]=true, + [2592]=true, + [2593]=true, + [2594]=true, + [2595]=true, + [2596]=true, + [2597]=true, + [2598]=true, + [2599]=true, + [2600]=true, + [2602]=true, + [2603]=true, + [2604]=true, + [2605]=true, + [2606]=true, + [2607]=true, + [2608]=true, + [2610]=true, + [2611]=true, + [2613]=true, + [2614]=true, + [2616]=true, + [2617]=true, + [2649]=true, + [2650]=true, + [2651]=true, + [2652]=true, + [2654]=true, + [2709]=true, + [2710]=true, + [2711]=true, + [2712]=true, + [2713]=true, + [2714]=true, + [2715]=true, + [2716]=true, + [2717]=true, + [2718]=true, + [2719]=true, + [2720]=true, + [2721]=true, + [2722]=true, + [2723]=true, + [2724]=true, + [2725]=true, + [2726]=true, + [2727]=true, + [2728]=true, + [2730]=true, + [2731]=true, + [2732]=true, + [2733]=true, + [2734]=true, + [2735]=true, + [2736]=true, + [2738]=true, + [2739]=true, + [2741]=true, + [2742]=true, + [2743]=true, + [2744]=true, + [2745]=true, + [2837]=true, + [2838]=true, + [2839]=true, + [2840]=true, + [2841]=true, + [2842]=true, + [2843]=true, + [2844]=true, + [2845]=true, + [2846]=true, + [2847]=true, + [2848]=true, + [2849]=true, + [2850]=true, + [2851]=true, + [2852]=true, + [2853]=true, + [2854]=true, + [2855]=true, + [2856]=true, + [2858]=true, + [2859]=true, + [2860]=true, + [2861]=true, + [2862]=true, + [2863]=true, + [2864]=true, + [2866]=true, + [2867]=true, + [2869]=true, + [2870]=true, + [2871]=true, + [2872]=true, + [2873]=true, + [2908]=true, + [2909]=true, + [2929]=true, + [2965]=true, + [2969]=true, + [2970]=true, + [2972]=true, + [2974]=true, + [2975]=true, + [2979]=true, + [2980]=true, + [2984]=true, + [2985]=true, + [2986]=true, + [2990]=true, + [2991]=true, + [2992]=true, + [2993]=true, + [2994]=true, + [2995]=true, + [2996]=true, + [2997]=true, + [2998]=true, + [2999]=true, + [3000]=true, + [3001]=true, + [3093]=true, + [3094]=true, + [3095]=true, + [3096]=true, + [3097]=true, + [3098]=true, + [3099]=true, + [3100]=true, + [3101]=true, + [3102]=true, + [3103]=true, + [3104]=true, + [3105]=true, + [3106]=true, + [3107]=true, + [3108]=true, + [3109]=true, + [3110]=true, + [3111]=true, + [3112]=true, + [3114]=true, + [3115]=true, + [3116]=true, + [3117]=true, + [3118]=true, + [3119]=true, + [3120]=true, + [3121]=true, + [3122]=true, + [3123]=true, + [3124]=true, + [3125]=true, + [3126]=true, + [3127]=true, + [3128]=true, + [3129]=true, + [3133]=true, + [3221]=true, + [3222]=true, + [3223]=true, + [3224]=true, + [3225]=true, + [3226]=true, + [3227]=true, + [3228]=true, + [3229]=true, + [3230]=true, + [3231]=true, + [3232]=true, + [3233]=true, + [3234]=true, + [3235]=true, + [3236]=true, + [3237]=true, + [3238]=true, + [3239]=true, + [3240]=true, + [3242]=true, + [3243]=true, + [3244]=true, + [3245]=true, + [3246]=true, + [3247]=true, + [3248]=true, + [3249]=true, + [3250]=true, + [3251]=true, + [3253]=true, + [3254]=true, + [3255]=true, + [3256]=true, + [3257]=true, + [3294]=true, + [3349]=true, + [3350]=true, + [3351]=true, + [3352]=true, + [3353]=true, + [3354]=true, + [3355]=true, + [3356]=true, + [3357]=true, + [3358]=true, + [3359]=true, + [3360]=true, + [3361]=true, + [3362]=true, + [3363]=true, + [3364]=true, + [3365]=true, + [3366]=true, + [3367]=true, + [3368]=true, + [3369]=true, + [3370]=true, + [3371]=true, + [3372]=true, + [3373]=true, + [3374]=true, + [3375]=true, + [3376]=true, + [3377]=true, + [3378]=true, + [3379]=true, + [3380]=true, + [3381]=true, + [3382]=true, + [3383]=true, + [3384]=true, + [3385]=true, + [3386]=true, + }, + ["dependent_vowel"]={ + [2362]=true, + [2363]=true, + [2366]=true, + [2367]=true, + [2368]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2382]=true, + [2383]=true, + [2389]=true, + [2390]=true, + [2391]=true, + [2402]=true, + [2403]=true, + [2494]=true, + [2495]=true, + [2496]=true, + [2497]=true, + [2498]=true, + [2499]=true, + [2500]=true, + [2503]=true, + [2504]=true, + [2622]=true, + [2623]=true, + [2624]=true, + [2625]=true, + [2626]=true, + [2631]=true, + [2632]=true, + [2635]=true, + [2636]=true, + [2750]=true, + [2751]=true, + [2752]=true, + [2753]=true, + [2754]=true, + [2755]=true, + [2756]=true, + [2757]=true, + [2759]=true, + [2760]=true, + [2761]=true, + [2763]=true, + [2764]=true, + [2878]=true, + [2879]=true, + [2880]=true, + [2881]=true, + [2882]=true, + [2883]=true, + [2884]=true, + [2887]=true, + [2888]=true, + [2891]=true, + [2892]=true, + [2914]=true, + [2915]=true, + [3006]=true, + [3007]=true, + [3008]=true, + [3009]=true, + [3010]=true, + [3014]=true, + [3015]=true, + [3016]=true, + [3018]=true, + [3019]=true, + [3020]=true, + [3134]=true, + [3135]=true, + [3136]=true, + [3137]=true, + [3138]=true, + [3139]=true, + [3140]=true, + [3142]=true, + [3143]=true, + [3144]=true, + [3146]=true, + [3147]=true, + [3148]=true, + [3170]=true, + [3171]=true, + [3262]=true, + [3263]=true, + [3264]=true, + [3265]=true, + [3266]=true, + [3267]=true, + [3268]=true, + [3270]=true, + [3271]=true, + [3272]=true, + [3274]=true, + [3275]=true, + [3276]=true, + [3298]=true, + [3299]=true, + [3390]=true, + [3391]=true, + [3392]=true, + [3393]=true, + [3394]=true, + [3395]=true, + [3396]=true, + [3398]=true, + [3399]=true, + [3400]=true, + [3402]=true, + [3403]=true, + [3404]=true, + [3415]=true, + [3426]=true, + [3427]=true, + }, + ["halant"]={ + [2381]=true, + [2509]=true, + [2637]=true, + [2765]=true, + [2893]=true, + [3021]=true, + [3149]=true, + [3277]=true, + [3405]=true, + }, + ["independent_vowel"]={ + [2308]=true, + [2309]=true, + [2310]=true, + [2311]=true, + [2312]=true, + [2313]=true, + [2314]=true, + [2315]=true, + [2316]=true, + [2317]=true, + [2318]=true, + [2319]=true, + [2320]=true, + [2321]=true, + [2322]=true, + [2323]=true, + [2324]=true, + [2400]=true, + [2401]=true, + [2418]=true, + [2419]=true, + [2420]=true, + [2421]=true, + [2422]=true, + [2423]=true, + [2437]=true, + [2438]=true, + [2439]=true, + [2440]=true, + [2441]=true, + [2442]=true, + [2443]=true, + [2444]=true, + [2447]=true, + [2448]=true, + [2451]=true, + [2452]=true, + [2528]=true, + [2529]=true, + [2530]=true, + [2531]=true, + [2565]=true, + [2566]=true, + [2567]=true, + [2568]=true, + [2569]=true, + [2570]=true, + [2575]=true, + [2576]=true, + [2579]=true, + [2580]=true, + [2693]=true, + [2694]=true, + [2695]=true, + [2696]=true, + [2697]=true, + [2698]=true, + [2699]=true, + [2700]=true, + [2701]=true, + [2703]=true, + [2704]=true, + [2705]=true, + [2707]=true, + [2708]=true, + [2784]=true, + [2785]=true, + [2786]=true, + [2787]=true, + [2821]=true, + [2822]=true, + [2823]=true, + [2824]=true, + [2825]=true, + [2826]=true, + [2827]=true, + [2828]=true, + [2831]=true, + [2832]=true, + [2835]=true, + [2836]=true, + [2912]=true, + [2913]=true, + [2949]=true, + [2950]=true, + [2951]=true, + [2952]=true, + [2953]=true, + [2954]=true, + [2958]=true, + [2959]=true, + [2960]=true, + [2962]=true, + [2963]=true, + [2964]=true, + [3077]=true, + [3078]=true, + [3079]=true, + [3080]=true, + [3081]=true, + [3082]=true, + [3083]=true, + [3084]=true, + [3086]=true, + [3087]=true, + [3088]=true, + [3090]=true, + [3091]=true, + [3092]=true, + [3168]=true, + [3169]=true, + [3205]=true, + [3206]=true, + [3207]=true, + [3208]=true, + [3209]=true, + [3210]=true, + [3211]=true, + [3212]=true, + [3214]=true, + [3215]=true, + [3216]=true, + [3218]=true, + [3219]=true, + [3220]=true, + [3296]=true, + [3297]=true, + [3333]=true, + [3334]=true, + [3335]=true, + [3336]=true, + [3337]=true, + [3338]=true, + [3339]=true, + [3340]=true, + [3342]=true, + [3343]=true, + [3344]=true, + [3346]=true, + [3347]=true, + [3348]=true, + [3423]=true, + [3424]=true, + [3425]=true, + }, + ["nukta"]={ + [2364]=true, + [2492]=true, + [2620]=true, + [2748]=true, + [2876]=true, + [3260]=true, + }, + ["post_mark"]={ + [2307]=true, + [2363]=true, + [2366]=true, + [2368]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2383]=true, + [2494]=true, + [2496]=true, + [2503]=true, + [2504]=true, + [2622]=true, + [2624]=true, + [2750]=true, + [2752]=true, + [2761]=true, + [2763]=true, + [2764]=true, + [2878]=true, + [2880]=true, + [3006]=true, + [3007]=true, + [3137]=true, + [3138]=true, + [3139]=true, + [3140]=true, + [3262]=true, + [3264]=true, + [3265]=true, + [3266]=true, + [3267]=true, + [3268]=true, + [3271]=true, + [3272]=true, + [3274]=true, + [3275]=true, + [3276]=true, + [3390]=true, + [3391]=true, + [3392]=true, + [3393]=true, + [3394]=true, + [3395]=true, + [3396]=true, + [3415]=true, + }, + ["pre_mark"]={ + [2367]=true, + [2382]=true, + [2495]=true, + [2623]=true, + [2751]=true, + [2887]=true, + [2888]=true, + [3014]=true, + [3015]=true, + [3016]=true, + [3398]=true, + [3399]=true, + [3400]=true, + }, + ["ra"]={ + [2352]=true, + [2480]=true, + [2608]=true, + [2736]=true, + [2864]=true, + [2992]=true, + [3120]=true, + [3248]=true, + [3376]=true, + }, + ["stress_tone_mark"]={ + [2385]=true, + [2386]=true, + [2387]=true, + [2388]=true, + [2507]=true, + [2508]=true, + [3277]=true, + [3405]=true, + }, + ["twopart_mark"]={ + [2891]={ 2887, 2878 }, + [2892]={ 2887, 2903 }, + [3018]={ 3014, 3006 }, + [3019]={ 3015, 3006 }, + [3020]={ 3014, 3031 }, + [3402]={ 3398, 3390 }, + [3403]={ 3399, 3390 }, + [3404]={ 3398, 3415 }, + }, + ["vowel_modifier"]={ + [2304]=true, + [2305]=true, + [2306]=true, + [2307]=true, + [3330]=true, + [3331]=true, + [43232]=true, + [43233]=true, + [43234]=true, + [43235]=true, + [43236]=true, + [43237]=true, + [43238]=true, + [43239]=true, + [43240]=true, + [43241]=true, + [43242]=true, + [43243]=true, + [43244]=true, + [43245]=true, + [43246]=true, + [43247]=true, + [43248]=true, + [43249]=true, + }, +} + -- done diff --git a/tex/generic/context/luatex/luatex-basics-prepare.tex b/tex/generic/context/luatex/luatex-basics-prepare.tex index 76a35cc94..47eaa7341 100644 --- a/tex/generic/context/luatex/luatex-basics-prepare.tex +++ b/tex/generic/context/luatex/luatex-basics-prepare.tex @@ -15,6 +15,8 @@ %D is needed because we don't want to load the (mostly not used in generic) data %D files. +%D Indicorder is not yet filled in completely. + \startluacode -- dofile("t:/sources/char-ini.lua") @@ -43,6 +45,7 @@ local first_mandiac, last_mandiac = characters.blockrange("mandiac") local first_nko, last_nko = characters.blockrange("nko") local classifiers = { } +local indicgroups = characters.indicgroups for k, c in next, chardata do if k > 0 then @@ -78,11 +81,14 @@ characters.blockrange = { } %s +%s + -- done ]] ] io.savedata("luatex-basics-chr.lua",template( - table.serialize(classifiers,"characters.classifiers") + table.serialize(classifiers,"characters.classifiers"), + table.serialize(indicgroups,"characters.indicgroups") )) \stopluacode diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index cf09a9c71..8cd82afce 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 03/23/18 13:13:05 +-- merge date : 03/25/18 17:32:09 do -- begin closure to overcome local limits and interference @@ -3745,13 +3745,15 @@ utilities.strings=utilities.strings or {} local strings=utilities.strings local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find local load,dump=load,string.dump -local tonumber,type,tostring,next=tonumber,type,tostring,next +local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable +local unpack,concat=table.unpack,table.concat local unpack,concat=table.unpack,table.concat local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc local patterns,lpegmatch=lpeg.patterns,lpeg.match local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len local loadstripped=nil -if LUAVERSION<5.2 then +local oldfashioned=LUAVERSION<5.2 +if oldfashioned then loadstripped=function(str,shortcuts) return load(str) end @@ -4023,7 +4025,7 @@ local template=[[ return function(%s) return %s end ]] local preamble,environment="",{} -if LUAVERSION<5.2 then +if oldfashioned then preamble=[[ local lpeg=lpeg local type=type @@ -4070,7 +4072,7 @@ else sequenced=table.sequenced, formattednumber=number.formatted, sparseexponent=number.sparseexponent, - formattedfloat=number.formattedfloat + formattedfloat=number.formattedfloat, } end local arguments={ "a1" } @@ -4427,12 +4429,18 @@ local builder=Cs { "start", ["?"]=Cs(((1-P("%"))^1 )^1)/format_rest, ["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension, } -local direct=Cs ( - P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]] -) +local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end }) +local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end }) +local preset={ + ["%02x"]=function(n) return xx[n] end, + ["%02X"]=function(n) return XX[n] end, +} +local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]] local function make(t,str) - local f - local p + local f=preset[str] + if f then + return f + end local p=lpegmatch(direct,str) if p then f=loadstripped(p)() @@ -4453,7 +4461,7 @@ local function use(t,fmt,...) return t[fmt](...) end strings.formatters={} -if LUAVERSION<5.2 then +if oldfashioned then function strings.formatters.new(noconcat) local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} } setmetatable(t,{ __index=make,__call=use }) @@ -4490,7 +4498,7 @@ patterns.xmlescape=Cs((P("<")/"<"+P(">")/">"+P("&")/"&"+P('"')/"" patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0) patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0) patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"')) -if LUAVERSION<5.2 then +if oldfashioned then add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape") add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape") add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape") @@ -6274,6 +6282,17 @@ characters.classifiers={ [2137]=5, [2138]=5, [2139]=5, + [2144]=2, + [2145]=4, + [2146]=2, + [2147]=2, + [2148]=2, + [2149]=2, + [2150]=4, + [2151]=3, + [2152]=2, + [2153]=3, + [2154]=3, [2208]=2, [2209]=2, [2210]=2, @@ -6406,6 +6425,12 @@ characters.classifiers={ [2765]=5, [2786]=5, [2787]=5, + [2810]=5, + [2811]=5, + [2812]=5, + [2813]=5, + [2814]=5, + [2815]=5, [2817]=5, [2876]=5, [2879]=5, @@ -6443,7 +6468,10 @@ characters.classifiers={ [3277]=5, [3298]=5, [3299]=5, + [3328]=5, [3329]=5, + [3387]=5, + [3388]=5, [3393]=5, [3394]=5, [3395]=5, @@ -6940,6 +6968,10 @@ characters.classifiers={ [7667]=5, [7668]=5, [7669]=5, + [7670]=5, + [7671]=5, + [7672]=5, + [7673]=5, [7675]=5, [7676]=5, [7677]=5, @@ -7429,6 +7461,49 @@ characters.classifiers={ [71465]=5, [71466]=5, [71467]=5, + [72193]=5, + [72194]=5, + [72195]=5, + [72196]=5, + [72197]=5, + [72198]=5, + [72201]=5, + [72202]=5, + [72243]=5, + [72244]=5, + [72245]=5, + [72246]=5, + [72247]=5, + [72248]=5, + [72251]=5, + [72252]=5, + [72253]=5, + [72254]=5, + [72263]=5, + [72273]=5, + [72274]=5, + [72275]=5, + [72276]=5, + [72277]=5, + [72278]=5, + [72281]=5, + [72282]=5, + [72283]=5, + [72330]=5, + [72331]=5, + [72332]=5, + [72333]=5, + [72334]=5, + [72335]=5, + [72336]=5, + [72337]=5, + [72338]=5, + [72339]=5, + [72340]=5, + [72341]=5, + [72342]=5, + [72344]=5, + [72345]=5, [72752]=5, [72753]=5, [72754]=5, @@ -7476,6 +7551,23 @@ characters.classifiers={ [72883]=5, [72885]=5, [72886]=5, + [73009]=5, + [73010]=5, + [73011]=5, + [73012]=5, + [73013]=5, + [73014]=5, + [73018]=5, + [73020]=5, + [73021]=5, + [73023]=5, + [73024]=5, + [73025]=5, + [73026]=5, + [73027]=5, + [73028]=5, + [73029]=5, + [73031]=5, [92912]=5, [92913]=5, [92914]=5, @@ -7768,6 +7860,896 @@ characters.classifiers={ [125258]=5, [1042752]=5, } +characters.indicgroups={ + ["above_mark"]={ + [2304]=true, + [2305]=true, + [2306]=true, + [2362]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2385]=true, + [2387]=true, + [2388]=true, + [2389]=true, + [2631]=true, + [2632]=true, + [2635]=true, + [2636]=true, + [2757]=true, + [2759]=true, + [2760]=true, + [2879]=true, + [3008]=true, + [3134]=true, + [3135]=true, + [3136]=true, + [3142]=true, + [3143]=true, + [3144]=true, + [3146]=true, + [3147]=true, + [3148]=true, + [3149]=true, + [3263]=true, + [3270]=true, + [3406]=true, + [43232]=true, + [43233]=true, + [43234]=true, + [43235]=true, + [43236]=true, + [43237]=true, + [43238]=true, + [43239]=true, + [43240]=true, + [43241]=true, + [43242]=true, + [43243]=true, + [43244]=true, + [43245]=true, + [43246]=true, + [43247]=true, + [43248]=true, + [43249]=true, + }, + ["after_half"]={}, + ["after_postscript"]={ + [3248]=true, + }, + ["after_subscript"]={ + [2366]=true, + [2368]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2402]=true, + [2403]=true, + [3267]=true, + [3268]=true, + [3285]=true, + [3286]=true, + }, + ["anudatta"]={ + [2386]=true, + }, + ["before_half"]={ + [2367]=true, + }, + ["before_postscript"]={ + [2352]=true, + }, + ["before_subscript"]={ + [3262]=true, + [3263]=true, + [3265]=true, + [3266]=true, + [3270]=true, + [3276]=true, + [3298]=true, + [3299]=true, + }, + ["below_mark"]={ + [2364]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2381]=true, + [2386]=true, + [2390]=true, + [2391]=true, + [2402]=true, + [2403]=true, + [2492]=true, + [2497]=true, + [2498]=true, + [2499]=true, + [2500]=true, + [2509]=true, + [2620]=true, + [2625]=true, + [2626]=true, + [2637]=true, + [2748]=true, + [2753]=true, + [2754]=true, + [2755]=true, + [2756]=true, + [2765]=true, + [2876]=true, + [2881]=true, + [2882]=true, + [2883]=true, + [2884]=true, + [2893]=true, + [2914]=true, + [2915]=true, + [3009]=true, + [3010]=true, + [3021]=true, + [3170]=true, + [3171]=true, + [3260]=true, + [3298]=true, + [3299]=true, + [3426]=true, + [3427]=true, + }, + ["consonant"]={ + [2325]=true, + [2326]=true, + [2327]=true, + [2328]=true, + [2329]=true, + [2330]=true, + [2331]=true, + [2332]=true, + [2333]=true, + [2334]=true, + [2335]=true, + [2336]=true, + [2337]=true, + [2338]=true, + [2339]=true, + [2340]=true, + [2341]=true, + [2342]=true, + [2343]=true, + [2344]=true, + [2345]=true, + [2346]=true, + [2347]=true, + [2348]=true, + [2349]=true, + [2350]=true, + [2351]=true, + [2352]=true, + [2353]=true, + [2354]=true, + [2355]=true, + [2356]=true, + [2357]=true, + [2358]=true, + [2359]=true, + [2360]=true, + [2361]=true, + [2392]=true, + [2393]=true, + [2394]=true, + [2395]=true, + [2396]=true, + [2397]=true, + [2398]=true, + [2399]=true, + [2424]=true, + [2425]=true, + [2426]=true, + [2453]=true, + [2454]=true, + [2455]=true, + [2456]=true, + [2457]=true, + [2458]=true, + [2459]=true, + [2460]=true, + [2461]=true, + [2462]=true, + [2463]=true, + [2464]=true, + [2465]=true, + [2466]=true, + [2467]=true, + [2468]=true, + [2469]=true, + [2470]=true, + [2471]=true, + [2472]=true, + [2474]=true, + [2475]=true, + [2476]=true, + [2477]=true, + [2478]=true, + [2479]=true, + [2480]=true, + [2482]=true, + [2486]=true, + [2487]=true, + [2488]=true, + [2489]=true, + [2510]=true, + [2524]=true, + [2525]=true, + [2527]=true, + [2581]=true, + [2582]=true, + [2583]=true, + [2584]=true, + [2585]=true, + [2586]=true, + [2587]=true, + [2588]=true, + [2589]=true, + [2590]=true, + [2591]=true, + [2592]=true, + [2593]=true, + [2594]=true, + [2595]=true, + [2596]=true, + [2597]=true, + [2598]=true, + [2599]=true, + [2600]=true, + [2602]=true, + [2603]=true, + [2604]=true, + [2605]=true, + [2606]=true, + [2607]=true, + [2608]=true, + [2610]=true, + [2611]=true, + [2613]=true, + [2614]=true, + [2616]=true, + [2617]=true, + [2649]=true, + [2650]=true, + [2651]=true, + [2652]=true, + [2654]=true, + [2709]=true, + [2710]=true, + [2711]=true, + [2712]=true, + [2713]=true, + [2714]=true, + [2715]=true, + [2716]=true, + [2717]=true, + [2718]=true, + [2719]=true, + [2720]=true, + [2721]=true, + [2722]=true, + [2723]=true, + [2724]=true, + [2725]=true, + [2726]=true, + [2727]=true, + [2728]=true, + [2730]=true, + [2731]=true, + [2732]=true, + [2733]=true, + [2734]=true, + [2735]=true, + [2736]=true, + [2738]=true, + [2739]=true, + [2741]=true, + [2742]=true, + [2743]=true, + [2744]=true, + [2745]=true, + [2837]=true, + [2838]=true, + [2839]=true, + [2840]=true, + [2841]=true, + [2842]=true, + [2843]=true, + [2844]=true, + [2845]=true, + [2846]=true, + [2847]=true, + [2848]=true, + [2849]=true, + [2850]=true, + [2851]=true, + [2852]=true, + [2853]=true, + [2854]=true, + [2855]=true, + [2856]=true, + [2858]=true, + [2859]=true, + [2860]=true, + [2861]=true, + [2862]=true, + [2863]=true, + [2864]=true, + [2866]=true, + [2867]=true, + [2869]=true, + [2870]=true, + [2871]=true, + [2872]=true, + [2873]=true, + [2908]=true, + [2909]=true, + [2929]=true, + [2965]=true, + [2969]=true, + [2970]=true, + [2972]=true, + [2974]=true, + [2975]=true, + [2979]=true, + [2980]=true, + [2984]=true, + [2985]=true, + [2986]=true, + [2990]=true, + [2991]=true, + [2992]=true, + [2993]=true, + [2994]=true, + [2995]=true, + [2996]=true, + [2997]=true, + [2998]=true, + [2999]=true, + [3000]=true, + [3001]=true, + [3093]=true, + [3094]=true, + [3095]=true, + [3096]=true, + [3097]=true, + [3098]=true, + [3099]=true, + [3100]=true, + [3101]=true, + [3102]=true, + [3103]=true, + [3104]=true, + [3105]=true, + [3106]=true, + [3107]=true, + [3108]=true, + [3109]=true, + [3110]=true, + [3111]=true, + [3112]=true, + [3114]=true, + [3115]=true, + [3116]=true, + [3117]=true, + [3118]=true, + [3119]=true, + [3120]=true, + [3121]=true, + [3122]=true, + [3123]=true, + [3124]=true, + [3125]=true, + [3126]=true, + [3127]=true, + [3128]=true, + [3129]=true, + [3133]=true, + [3221]=true, + [3222]=true, + [3223]=true, + [3224]=true, + [3225]=true, + [3226]=true, + [3227]=true, + [3228]=true, + [3229]=true, + [3230]=true, + [3231]=true, + [3232]=true, + [3233]=true, + [3234]=true, + [3235]=true, + [3236]=true, + [3237]=true, + [3238]=true, + [3239]=true, + [3240]=true, + [3242]=true, + [3243]=true, + [3244]=true, + [3245]=true, + [3246]=true, + [3247]=true, + [3248]=true, + [3249]=true, + [3250]=true, + [3251]=true, + [3253]=true, + [3254]=true, + [3255]=true, + [3256]=true, + [3257]=true, + [3294]=true, + [3349]=true, + [3350]=true, + [3351]=true, + [3352]=true, + [3353]=true, + [3354]=true, + [3355]=true, + [3356]=true, + [3357]=true, + [3358]=true, + [3359]=true, + [3360]=true, + [3361]=true, + [3362]=true, + [3363]=true, + [3364]=true, + [3365]=true, + [3366]=true, + [3367]=true, + [3368]=true, + [3369]=true, + [3370]=true, + [3371]=true, + [3372]=true, + [3373]=true, + [3374]=true, + [3375]=true, + [3376]=true, + [3377]=true, + [3378]=true, + [3379]=true, + [3380]=true, + [3381]=true, + [3382]=true, + [3383]=true, + [3384]=true, + [3385]=true, + [3386]=true, + }, + ["dependent_vowel"]={ + [2362]=true, + [2363]=true, + [2366]=true, + [2367]=true, + [2368]=true, + [2369]=true, + [2370]=true, + [2371]=true, + [2372]=true, + [2373]=true, + [2374]=true, + [2375]=true, + [2376]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2382]=true, + [2383]=true, + [2389]=true, + [2390]=true, + [2391]=true, + [2402]=true, + [2403]=true, + [2494]=true, + [2495]=true, + [2496]=true, + [2497]=true, + [2498]=true, + [2499]=true, + [2500]=true, + [2503]=true, + [2504]=true, + [2622]=true, + [2623]=true, + [2624]=true, + [2625]=true, + [2626]=true, + [2631]=true, + [2632]=true, + [2635]=true, + [2636]=true, + [2750]=true, + [2751]=true, + [2752]=true, + [2753]=true, + [2754]=true, + [2755]=true, + [2756]=true, + [2757]=true, + [2759]=true, + [2760]=true, + [2761]=true, + [2763]=true, + [2764]=true, + [2878]=true, + [2879]=true, + [2880]=true, + [2881]=true, + [2882]=true, + [2883]=true, + [2884]=true, + [2887]=true, + [2888]=true, + [2891]=true, + [2892]=true, + [2914]=true, + [2915]=true, + [3006]=true, + [3007]=true, + [3008]=true, + [3009]=true, + [3010]=true, + [3014]=true, + [3015]=true, + [3016]=true, + [3018]=true, + [3019]=true, + [3020]=true, + [3134]=true, + [3135]=true, + [3136]=true, + [3137]=true, + [3138]=true, + [3139]=true, + [3140]=true, + [3142]=true, + [3143]=true, + [3144]=true, + [3146]=true, + [3147]=true, + [3148]=true, + [3170]=true, + [3171]=true, + [3262]=true, + [3263]=true, + [3264]=true, + [3265]=true, + [3266]=true, + [3267]=true, + [3268]=true, + [3270]=true, + [3271]=true, + [3272]=true, + [3274]=true, + [3275]=true, + [3276]=true, + [3298]=true, + [3299]=true, + [3390]=true, + [3391]=true, + [3392]=true, + [3393]=true, + [3394]=true, + [3395]=true, + [3396]=true, + [3398]=true, + [3399]=true, + [3400]=true, + [3402]=true, + [3403]=true, + [3404]=true, + [3415]=true, + [3426]=true, + [3427]=true, + }, + ["halant"]={ + [2381]=true, + [2509]=true, + [2637]=true, + [2765]=true, + [2893]=true, + [3021]=true, + [3149]=true, + [3277]=true, + [3405]=true, + }, + ["independent_vowel"]={ + [2308]=true, + [2309]=true, + [2310]=true, + [2311]=true, + [2312]=true, + [2313]=true, + [2314]=true, + [2315]=true, + [2316]=true, + [2317]=true, + [2318]=true, + [2319]=true, + [2320]=true, + [2321]=true, + [2322]=true, + [2323]=true, + [2324]=true, + [2400]=true, + [2401]=true, + [2418]=true, + [2419]=true, + [2420]=true, + [2421]=true, + [2422]=true, + [2423]=true, + [2437]=true, + [2438]=true, + [2439]=true, + [2440]=true, + [2441]=true, + [2442]=true, + [2443]=true, + [2444]=true, + [2447]=true, + [2448]=true, + [2451]=true, + [2452]=true, + [2528]=true, + [2529]=true, + [2530]=true, + [2531]=true, + [2565]=true, + [2566]=true, + [2567]=true, + [2568]=true, + [2569]=true, + [2570]=true, + [2575]=true, + [2576]=true, + [2579]=true, + [2580]=true, + [2693]=true, + [2694]=true, + [2695]=true, + [2696]=true, + [2697]=true, + [2698]=true, + [2699]=true, + [2700]=true, + [2701]=true, + [2703]=true, + [2704]=true, + [2705]=true, + [2707]=true, + [2708]=true, + [2784]=true, + [2785]=true, + [2786]=true, + [2787]=true, + [2821]=true, + [2822]=true, + [2823]=true, + [2824]=true, + [2825]=true, + [2826]=true, + [2827]=true, + [2828]=true, + [2831]=true, + [2832]=true, + [2835]=true, + [2836]=true, + [2912]=true, + [2913]=true, + [2949]=true, + [2950]=true, + [2951]=true, + [2952]=true, + [2953]=true, + [2954]=true, + [2958]=true, + [2959]=true, + [2960]=true, + [2962]=true, + [2963]=true, + [2964]=true, + [3077]=true, + [3078]=true, + [3079]=true, + [3080]=true, + [3081]=true, + [3082]=true, + [3083]=true, + [3084]=true, + [3086]=true, + [3087]=true, + [3088]=true, + [3090]=true, + [3091]=true, + [3092]=true, + [3168]=true, + [3169]=true, + [3205]=true, + [3206]=true, + [3207]=true, + [3208]=true, + [3209]=true, + [3210]=true, + [3211]=true, + [3212]=true, + [3214]=true, + [3215]=true, + [3216]=true, + [3218]=true, + [3219]=true, + [3220]=true, + [3296]=true, + [3297]=true, + [3333]=true, + [3334]=true, + [3335]=true, + [3336]=true, + [3337]=true, + [3338]=true, + [3339]=true, + [3340]=true, + [3342]=true, + [3343]=true, + [3344]=true, + [3346]=true, + [3347]=true, + [3348]=true, + [3423]=true, + [3424]=true, + [3425]=true, + }, + ["nukta"]={ + [2364]=true, + [2492]=true, + [2620]=true, + [2748]=true, + [2876]=true, + [3260]=true, + }, + ["post_mark"]={ + [2307]=true, + [2363]=true, + [2366]=true, + [2368]=true, + [2377]=true, + [2378]=true, + [2379]=true, + [2380]=true, + [2383]=true, + [2494]=true, + [2496]=true, + [2503]=true, + [2504]=true, + [2622]=true, + [2624]=true, + [2750]=true, + [2752]=true, + [2761]=true, + [2763]=true, + [2764]=true, + [2878]=true, + [2880]=true, + [3006]=true, + [3007]=true, + [3137]=true, + [3138]=true, + [3139]=true, + [3140]=true, + [3262]=true, + [3264]=true, + [3265]=true, + [3266]=true, + [3267]=true, + [3268]=true, + [3271]=true, + [3272]=true, + [3274]=true, + [3275]=true, + [3276]=true, + [3390]=true, + [3391]=true, + [3392]=true, + [3393]=true, + [3394]=true, + [3395]=true, + [3396]=true, + [3415]=true, + }, + ["pre_mark"]={ + [2367]=true, + [2382]=true, + [2495]=true, + [2623]=true, + [2751]=true, + [2887]=true, + [2888]=true, + [3014]=true, + [3015]=true, + [3016]=true, + [3398]=true, + [3399]=true, + [3400]=true, + }, + ["ra"]={ + [2352]=true, + [2480]=true, + [2608]=true, + [2736]=true, + [2864]=true, + [2992]=true, + [3120]=true, + [3248]=true, + [3376]=true, + }, + ["stress_tone_mark"]={ + [2385]=true, + [2386]=true, + [2387]=true, + [2388]=true, + [2507]=true, + [2508]=true, + [3277]=true, + [3405]=true, + }, + ["twopart_mark"]={ + [2891]={ 2887,2878 }, + [2892]={ 2887,2903 }, + [3018]={ 3014,3006 }, + [3019]={ 3015,3006 }, + [3020]={ 3014,3031 }, + [3402]={ 3398,3390 }, + [3403]={ 3399,3390 }, + [3404]={ 3398,3415 }, + }, + ["vowel_modifier"]={ + [2304]=true, + [2305]=true, + [2306]=true, + [2307]=true, + [3330]=true, + [3331]=true, + [43232]=true, + [43233]=true, + [43234]=true, + [43235]=true, + [43236]=true, + [43237]=true, + [43238]=true, + [43239]=true, + [43240]=true, + [43241]=true, + [43242]=true, + [43243]=true, + [43244]=true, + [43245]=true, + [43246]=true, + [43247]=true, + [43248]=true, + [43249]=true, + }, +} end -- closure @@ -26683,140 +27665,105 @@ end local function processcharacters(head,font) return tonut(xprocesscharacters(tonode(head))) end -local consonant={ - [0x0915]=true,[0x0916]=true,[0x0917]=true,[0x0918]=true, - [0x0919]=true,[0x091A]=true,[0x091B]=true,[0x091C]=true, - [0x091D]=true,[0x091E]=true,[0x091F]=true,[0x0920]=true, - [0x0921]=true,[0x0922]=true,[0x0923]=true,[0x0924]=true, - [0x0925]=true,[0x0926]=true,[0x0927]=true,[0x0928]=true, - [0x0929]=true,[0x092A]=true,[0x092B]=true,[0x092C]=true, - [0x092D]=true,[0x092E]=true,[0x092F]=true,[0x0930]=true, - [0x0931]=true,[0x0932]=true,[0x0933]=true,[0x0934]=true, - [0x0935]=true,[0x0936]=true,[0x0937]=true,[0x0938]=true, - [0x0939]=true,[0x0958]=true,[0x0959]=true,[0x095A]=true, - [0x095B]=true,[0x095C]=true,[0x095D]=true,[0x095E]=true, - [0x095F]=true,[0x0979]=true,[0x097A]=true, - [0x0C95]=true,[0x0C96]=true,[0x0C97]=true,[0x0C98]=true, - [0x0C99]=true,[0x0C9A]=true,[0x0C9B]=true,[0x0C9C]=true, - [0x0C9D]=true,[0x0C9E]=true,[0x0C9F]=true,[0x0CA0]=true, - [0x0CA1]=true,[0x0CA2]=true,[0x0CA3]=true,[0x0CA4]=true, - [0x0CA5]=true,[0x0CA6]=true,[0x0CA7]=true,[0x0CA8]=true, - [0x0CA9]=true,[0x0CAA]=true,[0x0CAB]=true,[0x0CAC]=true, - [0x0CAD]=true,[0x0CAE]=true,[0x0CAF]=true,[0x0CB0]=true, - [0x0CB1]=true,[0x0CB2]=true,[0x0CB3]=true,[0x0CB4]=true, - [0x0CB5]=true,[0x0CB6]=true,[0x0CB7]=true,[0x0CB8]=true, - [0x0CB9]=true, - [0x0CDE]=true, - [0x0D15]=true,[0x0D16]=true,[0x0D17]=true,[0x0D18]=true, - [0x0D19]=true,[0x0D1A]=true,[0x0D1B]=true,[0x0D1C]=true, - [0x0D1D]=true,[0x0D1E]=true,[0x0D1F]=true,[0x0D20]=true, - [0x0D21]=true,[0x0D22]=true,[0x0D23]=true,[0x0D24]=true, - [0x0D25]=true,[0x0D26]=true,[0x0D27]=true,[0x0D28]=true, - [0x0D29]=true,[0x0D2A]=true,[0x0D2B]=true,[0x0D2C]=true, - [0x0D2D]=true,[0x0D2E]=true,[0x0D2F]=true,[0x0D30]=true, - [0x0D31]=true,[0x0D32]=true,[0x0D33]=true,[0x0D34]=true, - [0x0D35]=true,[0x0D36]=true,[0x0D37]=true,[0x0D38]=true, - [0x0D39]=true,[0x0D3A]=true, -} -local independent_vowel={ - [0x0904]=true,[0x0905]=true,[0x0906]=true,[0x0907]=true, - [0x0908]=true,[0x0909]=true,[0x090A]=true,[0x090B]=true, - [0x090C]=true,[0x090D]=true,[0x090E]=true,[0x090F]=true, - [0x0910]=true,[0x0911]=true,[0x0912]=true,[0x0913]=true, - [0x0914]=true,[0x0960]=true,[0x0961]=true,[0x0972]=true, - [0x0973]=true,[0x0974]=true,[0x0975]=true,[0x0976]=true, - [0x0977]=true, - [0x0C85]=true,[0x0C86]=true,[0x0C87]=true,[0x0C88]=true, - [0x0C89]=true,[0x0C8A]=true,[0x0C8B]=true,[0x0C8C]=true, - [0x0C8D]=true,[0x0C8E]=true,[0x0C8F]=true,[0x0C90]=true, - [0x0C91]=true,[0x0C92]=true,[0x0C93]=true,[0x0C94]=true, - [0x0D05]=true,[0x0D06]=true,[0x0D07]=true,[0x0D08]=true, - [0x0D09]=true,[0x0D0A]=true,[0x0D0B]=true,[0x0D0C]=true, - [0x0D0E]=true,[0x0D0F]=true,[0x0D10]=true,[0x0D12]=true, - [0x0D13]=true,[0x0D14]=true, -} -local dependent_vowel={ - [0x093A]=true,[0x093B]=true,[0x093E]=true,[0x093F]=true, - [0x0940]=true,[0x0941]=true,[0x0942]=true,[0x0943]=true, - [0x0944]=true,[0x0945]=true,[0x0946]=true,[0x0947]=true, - [0x0948]=true,[0x0949]=true,[0x094A]=true,[0x094B]=true, - [0x094C]=true,[0x094E]=true,[0x094F]=true,[0x0955]=true, - [0x0956]=true,[0x0957]=true,[0x0962]=true,[0x0963]=true, - [0x0CBE]=true,[0x0CBF]=true,[0x0CC0]=true,[0x0CC1]=true, - [0x0CC2]=true,[0x0CC3]=true,[0x0CC4]=true,[0x0CC5]=true, - [0x0CC6]=true,[0x0CC7]=true,[0x0CC8]=true,[0x0CC9]=true, - [0x0CCA]=true,[0x0CCB]=true,[0x0CCC]=true, - [0x0D3E]=true,[0x0D3F]=true,[0x0D40]=true,[0x0D41]=true, - [0x0D42]=true,[0x0D43]=true,[0x0D44]=true,[0x0D46]=true, - [0x0D47]=true,[0x0D48]=true,[0x0D4A]=true,[0x0D4B]=true, - [0x0D4C]=true,[0x0D57]=true, -} -local vowel_modifier={ - [0x0900]=true,[0x0901]=true,[0x0902]=true,[0x0903]=true, - [0xA8E0]=true,[0xA8E1]=true,[0xA8E2]=true,[0xA8E3]=true, - [0xA8E4]=true,[0xA8E5]=true,[0xA8E6]=true,[0xA8E7]=true, - [0xA8E8]=true,[0xA8E9]=true,[0xA8EA]=true,[0xA8EB]=true, - [0xA8EC]=true,[0xA8ED]=true,[0xA8EE]=true,[0xA8EF]=true, - [0xA8F0]=true,[0xA8F1]=true, - [0x0D02]=true,[0x0D03]=true, -} -local stress_tone_mark={ - [0x0951]=true,[0x0952]=true,[0x0953]=true,[0x0954]=true, - [0x0CCD]=true, - [0x0D4D]=true, -} -local nukta={ - [0x093C]=true, - [0x0CBC]=true, -} -local halant={ - [0x094D]=true, - [0x0CCD]=true, - [0x0D4D]=true, -} -local ra={ - [0x0930]=true, - [0x0CB0]=true, - [0x0D30]=true, -} -local c_anudatta=0x0952 -local c_nbsp=0x00A0 -local c_zwnj=0x200C -local c_zwj=0x200D -local zw_char={ - [0x200C]=true, - [0x200D]=true, -} -local pre_mark={ - [0x093F]=true,[0x094E]=true, - [0x0D46]=true,[0x0D47]=true,[0x0D48]=true, -} -local above_mark={ - [0x0900]=true,[0x0901]=true,[0x0902]=true,[0x093A]=true, - [0x0945]=true,[0x0946]=true,[0x0947]=true,[0x0948]=true, - [0x0951]=true,[0x0953]=true,[0x0954]=true,[0x0955]=true, - [0xA8E0]=true,[0xA8E1]=true,[0xA8E2]=true,[0xA8E3]=true, - [0xA8E4]=true,[0xA8E5]=true,[0xA8E6]=true,[0xA8E7]=true, - [0xA8E8]=true,[0xA8E9]=true,[0xA8EA]=true,[0xA8EB]=true, - [0xA8EC]=true,[0xA8ED]=true,[0xA8EE]=true,[0xA8EF]=true, - [0xA8F0]=true,[0xA8F1]=true, - [0x0D4E]=true, -} -local below_mark={ - [0x093C]=true,[0x0941]=true,[0x0942]=true,[0x0943]=true, - [0x0944]=true,[0x094D]=true,[0x0952]=true,[0x0956]=true, - [0x0957]=true,[0x0962]=true,[0x0963]=true, -} -local post_mark={ - [0x0903]=true,[0x093B]=true,[0x093E]=true,[0x0940]=true, - [0x0949]=true,[0x094A]=true,[0x094B]=true,[0x094C]=true, - [0x094F]=true, -} -local twopart_mark={ - [0x0D4A]={ 0x0D46,0x0D3E,}, - [0x0D4B]={ 0x0D47,0x0D3E,}, - [0x0D4C]={ 0x0D46,0x0D57,}, -} +local indicgroups=characters and characters.indicgroups +if not indicgroups and characters then + local indic={ + c={}, + i={}, + d={}, + m={}, + s={}, + o={}, + } + local indicmarks={ + l={}, + t={}, + b={}, + r={}, + s={}, + } + local indicclasses={ + nukta={}, + halant={}, + ra={}, + anudatta={}, + } + local indicorders={ + bp={}, + ap={}, + bs={}, + as={}, + bh={}, + ah={}, + } + for k,v in next,characters.data do + local i=v.indic + if i then + indic[i][k]=true + i=v.indicmark + if i then + if i=="s" then + local s=v.specials + indicmarks[i][k]={ s[2],s[3] } + else + indicmarks[i][k]=true + end + end + i=v.indicclass + if i then + indicclasses[i][k]=true + end + i=v.indicorder + if i then + indicorders[i][k]=true + end + end + end + indicgroups={ + consonant=indic.c, + independent_vowel=indic.i, + dependent_vowel=indic.d, + vowel_modifier=indic.m, + stress_tone_mark=indic.s, + pre_mark=indicmarks.l, + above_mark=indicmarks.t, + below_mark=indicmarks.b, + post_mark=indicmarks.r, + twopart_mark=indicmarks.s, + nukta=indicclasses.nukta, + halant=indicclasses.halant, + ra=indicclasses.ra, + anudatta=indicclasses.anudatta, + before_postscript=indicorders.bp, + after_postscript=indicorders.ap, + before_half=indicorders.bh, + after_half=indicorders.ah, + before_subscript=indicorders.bs, + after_subscript=indicorders.as, + } + indic=nil + indicmarks=nil + indicclasses=nil + indicorders=nil + characters.indicgroups=indicgroups +else + indicgroups=table.setmetatableindex("table") +end +local consonant=indicgroups.consonant +local independent_vowel=indicgroups.independent_vowel +local dependent_vowel=indicgroups.dependent_vowel +local vowel_modifier=indicgroups.vowel_modifier +local stress_tone_mark=indicgroups.stress_tone_mark +local pre_mark=indicgroups.pre_mark +local above_mark=indicgroups.above_mark +local below_mark=indicgroups.below_mark +local post_mark=indicgroups.post_mark +local twopart_mark=indicgroups.twopart_mark +local nukta=indicgroups.nukta +local halant=indicgroups.halant +local ra=indicgroups.ra +local anudatta=indicgroups.anudatta +local after_subscript=indicgroups.after_subscript local mark_four={} for k,v in next,pre_mark do mark_four[k]=pre_mark end for k,v in next,above_mark do mark_four[k]=above_mark end @@ -26826,38 +27773,12 @@ local mark_above_below_post={} for k,v in next,above_mark do mark_above_below_post[k]=above_mark end for k,v in next,below_mark do mark_above_below_post[k]=below_mark end for k,v in next,post_mark do mark_above_below_post[k]=post_mark end -local reorder_class={ - [0x0930]="before postscript", - [0x093F]="before half", - [0x0940]="after subscript", - [0x0941]="after subscript", - [0x0942]="after subscript", - [0x0943]="after subscript", - [0x0944]="after subscript", - [0x0945]="after subscript", - [0x0946]="after subscript", - [0x0947]="after subscript", - [0x0948]="after subscript", - [0x0949]="after subscript", - [0x094A]="after subscript", - [0x094B]="after subscript", - [0x094C]="after subscript", - [0x0962]="after subscript", - [0x0963]="after subscript", - [0x093E]="after subscript", - [0x0CB0]="after postscript", - [0x0CBF]="before subscript", - [0x0CC6]="before subscript", - [0x0CCC]="before subscript", - [0x0CBE]="before subscript", - [0x0CE2]="before subscript", - [0x0CE3]="before subscript", - [0x0CC1]="before subscript", - [0x0CC2]="before subscript", - [0x0CC3]="after subscript", - [0x0CC4]="after subscript", - [0x0CD5]="after subscript", - [0x0CD6]="after subscript", +local c_nbsp=0x00A0 +local c_zwnj=0x200C +local c_zwj=0x200D +local zw_char={ + [c_zwnj]=true, + [c_zwj ]=true, } local dflt_true={ dflt=true @@ -26870,10 +27791,6 @@ local deva_defaults={ deva=dflt_true, } local false_flags={ false,false,false,false } -local both_joiners_true={ - [0x200C]=true, - [0x200D]=true, -} local sequence_reorder_matras={ features={ dv01=dev2_defaults }, flags=false_flags, @@ -26922,7 +27839,7 @@ local sequence_remove_joiners={ nofsteps=1, steps={ { - coverage=both_joiners_true, + coverage=zw_char, }, } } @@ -27178,9 +28095,9 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces) local tmp=next and getnext(next) or nil local changestop=next==stop local tempcurrent=copy_node(next) - copyinjection(tempcurrent,next) + copyinjection(tempcurrent,next) local nextcurrent=copy_node(current) - copyinjection(nextcurrent,current) + copyinjection(nextcurrent,current) setlink(tempcurrent,nextcurrent) setprop(tempcurrent,a_state,s_blwf) tempcurrent=processcharacters(tempcurrent,font) @@ -27188,7 +28105,7 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces) if getchar(next)==getchar(tempcurrent) then flush_list(tempcurrent) local n=copy_node(current) - copyinjection(n,current) + copyinjection(n,current) setchar(current,dotted_circle) head=insert_node_after(head,current,n) else @@ -27523,7 +28440,7 @@ function handlers.devanagari_reorder_reph(head,start) while current do local char=ischar(current,startfont) if char and getprop(current,a_syllabe)==startattr then - if not c and mark_above_below_post[char] and reorder_class[char]~="after subscript" then + if not c and mark_above_below_post[char] and after_subscript[char] then c=current end current=getnext(current) @@ -27637,7 +28554,7 @@ function handlers.devanagari_remove_joiners(head,start,kind,lookupname,replaceme setnext(prev) end if head==start then - head=stop + head=stop end flush_list(start) return head,stop,true @@ -27814,7 +28731,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces) if halant[getchar(current)] then setnext(getnext(current),tmp) local nc=copy_node(current) - copyinjection(nc,current) + copyinjection(nc,current) setchar(current,dotted_circle) head=insert_node_after(head,current,nc) else @@ -28185,7 +29102,7 @@ local function analyze_next_chars_two(c,font) if not v then return c end - if v==c_anudatta then + if anudatta[v] then c=n n=getnext(c) if not n then @@ -28282,7 +29199,7 @@ local function analyze_next_chars_two(c,font) end local function inject_syntax_error(head,current,mark) local signal=copy_node(current) - copyinjection(signal,current) + copyinjection(signal,current) if mark==pre_mark then setchar(signal,dotted_circle) else @@ -28297,14 +29214,14 @@ function methods.deva(head,font,attr) local done=false local nbspaces=0 while current do - local char=ischar(current,font) + local char=ischar(current,font) if char then done=true local syllablestart=current local syllableend=nil local c=current local n=getnext(c) - local first=char + local first=char if n and ra[first] then local second=ischar(n,font) if second and halant[second] then @@ -28332,8 +29249,8 @@ function methods.deva(head,font,attr) end end if standalone then - local syllableend=analyze_next_chars_one(c,font,2) - current=getnext(syllableend) + local syllableend=analyze_next_chars_one(c,font,2) + current=getnext(syllableend) if syllablestart~=syllableend then head,current,nbspaces=deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces) current=getnext(current) @@ -28495,7 +29412,7 @@ function methods.dev2(head,font,attr) local nextnextchar=ischar(n,font) if nextnextchar then c=n - char=nextnextchar + char=nextnextchar end end end diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua index ef3bb74dc..5806debd2 100644 --- a/tex/generic/context/luatex/luatex-fonts.lua +++ b/tex/generic/context/luatex/luatex-fonts.lua @@ -226,7 +226,7 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then loadmodule('font-map.lua') -- for loading lum file (will be stripped) -- We use a bit simpler database because using the context one demands loading more helper - -- code and although it is more flexible (more wauys to resolve and so) it will never be + -- code and although it is more flexible (more ways to resolve and so) it will never be -- uses in plain/latex anyway, so let's stick to a simple approach. loadmodule('luatex-fonts-syn.lua') |