summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2020-06-11 22:30:31 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2020-06-11 22:30:31 +0200
commit8fb5c26bd2f15104a6db9945299d3ca2c75db2d6 (patch)
tree5a71acac6d1361cf98ec47ce966cffe5ca4be9b9
parent0226b596b39ea5d055dc37ea0609b67b64fe3d75 (diff)
downloadcontext-8fb5c26bd2f15104a6db9945299d3ca2c75db2d6.tar.gz
2020-06-11 21:29:00
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1229837 -> 1229025 bytes
-rw-r--r--doc/context/sources/general/manuals/evenmore/evenmore.tex1
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex.tex95
-rw-r--r--scripts/context/lua/mtxrun.lua6
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua6
-rw-r--r--scripts/context/stubs/unix/mtxrun6
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua6
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/char-def.lua182
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkxl2
-rw-r--r--tex/context/base/mkiv/font-ota.lua116
-rw-r--r--tex/context/base/mkiv/font-pre.mkiv11
-rw-r--r--tex/context/base/mkiv/font-tra.mkiv13
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin27771 -> 27806 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin252766 -> 252768 bytes
-rw-r--r--tex/context/base/mkiv/trac-inf.lua2
-rw-r--r--tex/context/modules/mkiv/s-system-tokens.mkxl36
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua105
21 files changed, 565 insertions, 30 deletions
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index 541c2e700..3fca734bd 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/evenmore/evenmore.tex b/doc/context/sources/general/manuals/evenmore/evenmore.tex
index fc2c3ba66..b662e5108 100644
--- a/doc/context/sources/general/manuals/evenmore/evenmore.tex
+++ b/doc/context/sources/general/manuals/evenmore/evenmore.tex
@@ -23,6 +23,7 @@
\component evenmore-numbers
% \component evenmore-parameters
% \component evenmore-parsing
+ % \component evenmore-tokens
\stopbodymatter
\stopdocument
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex.tex b/doc/context/sources/general/manuals/luametatex/luametatex.tex
new file mode 100644
index 000000000..0fd7a31b3
--- /dev/null
+++ b/doc/context/sources/general/manuals/luametatex/luametatex.tex
@@ -0,0 +1,95 @@
+% ------------------------ ------------------------
+% 2019-12-17 32bit 64bit 2020-01-10 32bit 64bit
+% ------------------------ ------------------------
+% freebsd 2270k 2662k freebsd 2186k 2558k
+% openbsd6.6 2569k 2824k openbsd6.6 2472k 2722k
+% linux-armhf 2134k linux-armhf 2063k
+% linux 2927k 2728k linux 2804k 2613k
+% osx 2821k osx 2732k
+% mswin 2562k 2555k mswin 2481k 2471k
+% ------------------------ ------------------------
+
+% experiment (if this becomes default we need to check visualizers and disable it when needed):
+
+\startluacode
+nodes.handlers.cleanuppage = nodes.nuts.flatten_discretionaries
+nodes.tasks.prependaction("shipouts", "normalizers", "nodes.handlers.cleanuppage", nil, "nut", "enabled")
+\stopluacode
+
+% 20200509 : 258 pages
+%
+% my 2013 i7 laptop with windows : 11.8 sec mingw64
+% raspberry pi 64 bit with ssd : 39.5 sec gcc 9.2
+% idem with native bin : 38.5 sec
+% idem overclocked f=2000/v=6 : 31.5 sec
+%
+% 20200526 : 258 pages
+% mingw all in: 10.9 / rpi: 33.1
+
+% 20200610 : 258 pages
+% mingw all in: 10.6
+
+% But speed can differ a bit per compilation (upto .5 seconds maybe due
+% to how compiled code is organized which might influence caching. Who
+% knows ... (or cares). For instance at 20200407 I measured 10.9 seconds
+% after some new low level metapost magic was added but who knows if that
+% was the reason, because mp processing is already fast. A week later,
+% at 20200415, a by then 254 page file took 10.5 seconds, that is, we
+% were at exactly 24 pages per second but after switching to gcc9 it
+% dropped again.
+
+% msvc 1899k (2% slower than mingw)
+% msvc /GL 2297k (similar to mingw)
+% msvc /GL /Ob3 2847k (not faster than /GL)
+% msvc /Ob3 2052k (slower than /Ob2)
+% msvc /Ob1 1763k (slower than /Ob2)
+% clang 2460k (15% slower than mingw)
+
+% Thanks to sebastian.miele@gmail.com for close reading the manual and
+% sending fixes.
+
+% \enabletrackers[*]
+
+\environment luametatex-style
+\environment luametatex-private
+
+\startdocument
+ [manual=LuaMeta\TeX,
+ % status=experimental,
+ version=\cldcontext{status.luatex_verbose}]
+
+\component luametatex-titlepage
+\component luametatex-firstpage
+
+\startfrontmatter
+ \component luametatex-contents
+ \component luametatex-introduction
+\stopfrontmatter
+
+\startbodymatter
+ \component luametatex-preamble
+ \component luametatex-differences
+ \component luametatex-modifications
+ \component luametatex-lua
+ \component luametatex-enhancements
+ \component luametatex-fonts
+ \component luametatex-languages
+ \component luametatex-math
+ \component luametatex-nodes
+ \component luametatex-callbacks
+ \component luametatex-tex
+ \component luametatex-metapost
+ \component luametatex-pdf
+ \component luametatex-libraries
+ \component luametatex-primitives
+\stopbodymatter
+
+\startbackmatter
+ % \component luametatex-rejected % local file
+ \component luametatex-registers
+ \component luametatex-differences
+ \component luametatex-statistics
+\stopbackmatter
+
+\stopdocument
+
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 23dc08145..74cb62938 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -13961,7 +13961,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 10184, stripped down to: 7500
+-- original size: 10182, stripped down to: 7498
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -14146,7 +14146,7 @@ function statistics.show()
LUATEXENGINE,LUATEXVERSION,LUATEXFUNCTIONALITY,lower(status.banner))
end)
end
- register("control sequences",function()
+ register("used hash slots",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
register("callbacks",statistics.callbacks)
@@ -26169,7 +26169,7 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1040908
+-- original bytes : 1040906
-- stripped bytes : 411386
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 23dc08145..74cb62938 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -13961,7 +13961,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 10184, stripped down to: 7500
+-- original size: 10182, stripped down to: 7498
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -14146,7 +14146,7 @@ function statistics.show()
LUATEXENGINE,LUATEXVERSION,LUATEXFUNCTIONALITY,lower(status.banner))
end)
end
- register("control sequences",function()
+ register("used hash slots",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
register("callbacks",statistics.callbacks)
@@ -26169,7 +26169,7 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1040908
+-- original bytes : 1040906
-- stripped bytes : 411386
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 23dc08145..74cb62938 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -13961,7 +13961,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 10184, stripped down to: 7500
+-- original size: 10182, stripped down to: 7498
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -14146,7 +14146,7 @@ function statistics.show()
LUATEXENGINE,LUATEXVERSION,LUATEXFUNCTIONALITY,lower(status.banner))
end)
end
- register("control sequences",function()
+ register("used hash slots",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
register("callbacks",statistics.callbacks)
@@ -26169,7 +26169,7 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1040908
+-- original bytes : 1040906
-- stripped bytes : 411386
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index 23dc08145..74cb62938 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -13961,7 +13961,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 10184, stripped down to: 7500
+-- original size: 10182, stripped down to: 7498
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -14146,7 +14146,7 @@ function statistics.show()
LUATEXENGINE,LUATEXVERSION,LUATEXFUNCTIONALITY,lower(status.banner))
end)
end
- register("control sequences",function()
+ register("used hash slots",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
register("callbacks",statistics.callbacks)
@@ -26169,7 +26169,7 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1040908
+-- original bytes : 1040906
-- stripped bytes : 411386
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 99d624dc7..5c6a2ec10 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{2020.06.09 18:53}
+\newcontextversion{2020.06.11 21:26}
%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 8f714b4c4..bf4e8407f 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{2020.06.09 18:53}
+\edef\contextversion{2020.06.11 21:26}
%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 7bf46ae74..51a227cb5 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -1675,6 +1675,7 @@ characters.data={
contextname="nobreakspace",
description="NO-BREAK SPACE",
direction="cs",
+ mongolian="nj",
linebreak="gl",
specials={ "nobreak", 0x20 },
synonyms={ "nbsp", "non-breaking space" },
@@ -45901,6 +45902,7 @@ characters.data={
category="po",
description="MONGOLIAN BIRGA",
direction="on",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1800,
},
@@ -45908,6 +45910,7 @@ characters.data={
category="po",
description="MONGOLIAN ELLIPSIS",
direction="on",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1801,
},
@@ -45915,6 +45918,7 @@ characters.data={
category="po",
description="MONGOLIAN COMMA",
direction="on",
+ mongolian="nj",
linebreak="ex",
unicodeslot=0x1802,
},
@@ -45922,6 +45926,7 @@ characters.data={
category="po",
description="MONGOLIAN FULL STOP",
direction="on",
+ mongolian="nj",
linebreak="ex",
unicodeslot=0x1803,
},
@@ -45929,6 +45934,7 @@ characters.data={
category="po",
description="MONGOLIAN COLON",
direction="on",
+ mongolian="nj",
linebreak="ba",
unicodeslot=0x1804,
},
@@ -45936,6 +45942,7 @@ characters.data={
category="po",
description="MONGOLIAN FOUR DOTS",
direction="on",
+ mongolian="nj",
linebreak="ba",
unicodeslot=0x1805,
},
@@ -45944,6 +45951,7 @@ characters.data={
category="pd",
description="MONGOLIAN TODO SOFT HYPHEN",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x1806,
},
@@ -45952,6 +45960,7 @@ characters.data={
category="po",
description="MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER",
direction="on",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1807,
},
@@ -45959,6 +45968,7 @@ characters.data={
category="po",
description="MONGOLIAN MANCHU COMMA",
direction="on",
+ mongolian="nj",
linebreak="ex",
unicodeslot=0x1808,
},
@@ -45966,6 +45976,7 @@ characters.data={
category="po",
description="MONGOLIAN MANCHU FULL STOP",
direction="on",
+ mongolian="nj",
linebreak="ex",
unicodeslot=0x1809,
},
@@ -45974,6 +45985,7 @@ characters.data={
category="po",
description="MONGOLIAN NIRUGU",
direction="on",
+ mongolian="jc",
linebreak="al",
unicodeslot=0x180A,
},
@@ -45981,6 +45993,7 @@ characters.data={
category="mn",
description="MONGOLIAN FREE VARIATION SELECTOR ONE",
direction="nsm",
+ mongolian="t",
linebreak="cm",
synonyms={ "fvs1" },
unicodeslot=0x180B,
@@ -45989,6 +46002,7 @@ characters.data={
category="mn",
description="MONGOLIAN FREE VARIATION SELECTOR TWO",
direction="nsm",
+ mongolian="t",
linebreak="cm",
unicodeslot=0x180C,
},
@@ -45996,6 +46010,7 @@ characters.data={
category="mn",
description="MONGOLIAN FREE VARIATION SELECTOR THREE",
direction="nsm",
+ mongolian="t",
linebreak="cm",
unicodeslot=0x180D,
},
@@ -46004,6 +46019,7 @@ characters.data={
category="zs",
description="MONGOLIAN VOWEL SEPARATOR",
direction="bn",
+ mongolian="nj",
linebreak="gl",
unicodeslot=0x180E,
},
@@ -46011,6 +46027,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT ZERO",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1810,
},
@@ -46018,6 +46035,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT ONE",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1811,
},
@@ -46025,6 +46043,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT TWO",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1812,
},
@@ -46032,6 +46051,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT THREE",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1813,
},
@@ -46039,6 +46059,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT FOUR",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1814,
},
@@ -46046,6 +46067,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT FIVE",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1815,
},
@@ -46053,6 +46075,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT SIX",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1816,
},
@@ -46060,6 +46083,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT SEVEN",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1817,
},
@@ -46067,6 +46091,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT EIGHT",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1818,
},
@@ -46074,6 +46099,7 @@ characters.data={
category="nd",
description="MONGOLIAN DIGIT NINE",
direction="l",
+ mongolian="nj",
linebreak="nu",
unicodeslot=0x1819,
},
@@ -46082,6 +46108,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER A",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1820,
variants={
@@ -46094,6 +46121,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER E",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1821,
variants={
@@ -46105,6 +46133,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER I",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1822,
variants={
@@ -46116,6 +46145,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER O",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1823,
variants={
@@ -46127,6 +46157,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER U",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1824,
variants={
@@ -46138,6 +46169,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER OE",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1825,
variants={
@@ -46150,6 +46182,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER UE",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1826,
variants={
@@ -46161,6 +46194,7 @@ characters.data={
arabic="d",
category="lo",
description="MONGOLIAN LETTER EE",
+ mongolian="d",
direction="l",
linebreak="al",
unicodeslot=0x1827,
@@ -46170,6 +46204,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER NA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1828,
variants={
@@ -46183,6 +46218,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ANG",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1829,
},
@@ -46191,6 +46227,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER BA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182A,
variants={
@@ -46202,6 +46239,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER PA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182B,
},
@@ -46210,6 +46248,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER QA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182C,
variants={
@@ -46223,6 +46262,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER GA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182D,
variants={
@@ -46236,6 +46276,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182E,
},
@@ -46244,6 +46285,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER LA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x182F,
},
@@ -46252,6 +46294,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1830,
variants={
@@ -46264,6 +46307,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1831,
},
@@ -46272,6 +46316,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1832,
variants={
@@ -46283,6 +46328,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER DA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1833,
variants={
@@ -46294,6 +46340,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER CHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1834,
},
@@ -46302,6 +46349,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER JA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1835,
variants={
@@ -46313,6 +46361,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER YA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1836,
variants={
@@ -46325,6 +46374,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER RA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1837,
},
@@ -46333,6 +46383,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER WA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1838,
variants={
@@ -46344,6 +46395,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER FA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1839,
},
@@ -46352,6 +46404,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER KA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183A,
},
@@ -46360,6 +46413,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER KHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183B,
},
@@ -46368,6 +46422,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TSA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183C,
},
@@ -46376,6 +46431,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ZA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183D,
},
@@ -46384,6 +46440,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER HAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183E,
},
@@ -46392,6 +46449,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ZRA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x183F,
},
@@ -46400,6 +46458,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER LHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1840,
},
@@ -46408,6 +46467,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ZHI",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1841,
},
@@ -46416,6 +46476,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER CHI",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1842,
},
@@ -46424,6 +46485,7 @@ characters.data={
category="lm",
description="MONGOLIAN LETTER TODO LONG VOWEL SIGN",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1843,
},
@@ -46432,6 +46494,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO E",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1844,
variants={
@@ -46443,6 +46506,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO I",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1845,
variants={
@@ -46454,6 +46518,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO O",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1846,
variants={
@@ -46465,6 +46530,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO U",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1847,
variants={
@@ -46477,6 +46543,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO OE",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1848,
variants={
@@ -46488,6 +46555,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO UE",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1849,
variants={
@@ -46499,6 +46567,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO ANG",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184A,
},
@@ -46507,6 +46576,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO BA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184B,
},
@@ -46515,6 +46585,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO PA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184C,
},
@@ -46523,6 +46594,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO QA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184D,
variants={
@@ -46534,6 +46606,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO GA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184E,
variants={
@@ -46545,6 +46618,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO MA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x184F,
},
@@ -46553,6 +46627,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1850,
},
@@ -46561,6 +46636,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO DA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1851,
},
@@ -46569,6 +46645,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO CHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1852,
},
@@ -46577,6 +46654,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO JA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1853,
},
@@ -46585,6 +46663,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO TSA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1854,
},
@@ -46593,6 +46672,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO YA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1855,
},
@@ -46601,6 +46681,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO WA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1856,
},
@@ -46609,6 +46690,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO KA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1857,
},
@@ -46617,6 +46699,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO GAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1858,
},
@@ -46625,6 +46708,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO HAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1859,
},
@@ -46633,6 +46717,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO JIA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185A,
},
@@ -46641,6 +46726,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO NIA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185B,
},
@@ -46649,6 +46735,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO DZA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185C,
},
@@ -46657,6 +46744,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE E",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185D,
variants={
@@ -46668,6 +46756,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE I",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185E,
variants={
@@ -46680,6 +46769,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE IY",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x185F,
},
@@ -46688,6 +46778,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE UE",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1860,
variants={
@@ -46699,6 +46790,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE U",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1861,
},
@@ -46707,6 +46799,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE ANG",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1862,
},
@@ -46715,6 +46808,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE KA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1863,
variants={
@@ -46726,6 +46820,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE GA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1864,
},
@@ -46734,6 +46829,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE HA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1865,
},
@@ -46742,6 +46838,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE PA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1866,
},
@@ -46750,6 +46847,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE SHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1867,
},
@@ -46758,6 +46856,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1868,
variants={
@@ -46770,6 +46869,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE DA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1869,
variants={
@@ -46781,6 +46881,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE JA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186A,
},
@@ -46789,6 +46890,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE FA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186B,
},
@@ -46797,6 +46899,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE GAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186C,
},
@@ -46805,6 +46908,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE HAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186D,
},
@@ -46813,6 +46917,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE TSA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186E,
},
@@ -46821,6 +46926,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE ZA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x186F,
variants={
@@ -46832,6 +46938,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE RAA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1870,
},
@@ -46840,6 +46947,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE CHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1871,
},
@@ -46848,6 +46956,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER SIBE ZHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1872,
},
@@ -46856,6 +46965,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU I",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1873,
variants={
@@ -46869,6 +46979,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU KA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1874,
variants={
@@ -46882,6 +46993,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU RA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1875,
},
@@ -46890,6 +47002,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU FA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1876,
variants={
@@ -46901,6 +47014,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ZHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1877,
},
@@ -46909,6 +47023,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER CHA WITH TWO DOTS",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1878,
},
@@ -46917,6 +47032,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI ANUSVARA ONE",
direction="l",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1880,
variants={
@@ -46928,6 +47044,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI VISARGA ONE",
direction="l",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1881,
variants={
@@ -46939,6 +47056,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI DAMARU",
direction="l",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1882,
},
@@ -46947,6 +47065,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI UBADAMA",
direction="l",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1883,
},
@@ -46955,6 +47074,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI INVERTED UBADAMA",
direction="l",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x1884,
},
@@ -46963,6 +47083,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI BALUDA",
direction="nsm",
+ mongolian="t",
linebreak="cm",
unicodeslot=0x1885,
},
@@ -46971,6 +47092,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI THREE BALUDA",
direction="nsm",
+ mongolian="t",
linebreak="cm",
unicodeslot=0x1886,
},
@@ -46979,6 +47101,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI A",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1887,
variants={
@@ -46992,6 +47115,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI I",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1888,
variants={
@@ -47003,6 +47127,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI KA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1889,
},
@@ -47011,6 +47136,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI NGA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188A,
variants={
@@ -47022,6 +47148,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI CA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188B,
},
@@ -47030,6 +47157,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI TTA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188C,
},
@@ -47038,6 +47166,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI TTHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188D,
},
@@ -47046,6 +47175,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI DDA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188E,
},
@@ -47054,6 +47184,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI NNA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x188F,
},
@@ -47062,6 +47193,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1890,
},
@@ -47070,6 +47202,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI DA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1891,
},
@@ -47078,6 +47211,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI PA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1892,
},
@@ -47086,6 +47220,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI PHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1893,
},
@@ -47094,6 +47229,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI SSA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1894,
},
@@ -47102,6 +47238,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI ZHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1895,
},
@@ -47110,6 +47247,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI ZA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1896,
},
@@ -47118,6 +47256,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI AH",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1897,
},
@@ -47126,6 +47265,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO ALI GALI TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1898,
},
@@ -47134,6 +47274,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER TODO ALI GALI ZHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x1899,
},
@@ -47142,6 +47283,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI GHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189A,
},
@@ -47150,6 +47292,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI NGA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189B,
},
@@ -47158,6 +47301,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI CA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189C,
},
@@ -47166,6 +47310,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI JHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189D,
},
@@ -47174,6 +47319,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI TTA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189E,
},
@@ -47182,6 +47328,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI DDHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x189F,
},
@@ -47190,6 +47337,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI TA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A0,
},
@@ -47198,6 +47346,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI DHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A1,
},
@@ -47206,6 +47355,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI SSA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A2,
},
@@ -47214,6 +47364,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI CYA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A3,
},
@@ -47222,6 +47373,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI ZHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A4,
},
@@ -47230,6 +47382,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI ZA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A5,
},
@@ -47238,6 +47391,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI HALF U",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A6,
},
@@ -47246,6 +47400,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER ALI GALI HALF YA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A7,
},
@@ -47254,6 +47409,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI BHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18A8,
},
@@ -47262,6 +47418,7 @@ characters.data={
combining=0xE4,
description="MONGOLIAN LETTER ALI GALI DAGALGA",
direction="nsm",
+ mongolian="t",
linebreak="cm",
unicodeslot=0x18A9,
},
@@ -47270,6 +47427,7 @@ characters.data={
category="lo",
description="MONGOLIAN LETTER MANCHU ALI GALI LHA",
direction="l",
+ mongolian="d",
linebreak="al",
unicodeslot=0x18AA,
},
@@ -61352,6 +61510,7 @@ characters.data={
contextname="zwnj",
description="ZERO WIDTH NON-JOINER",
direction="bn",
+ mongolian="nj",
linebreak="cm",
synonyms={ "zwnj" },
unicodeslot=0x200C,
@@ -61363,6 +61522,7 @@ characters.data={
contextname="zwj",
description="ZERO WIDTH JOINER",
direction="bn",
+ mongolian="nj",
linebreak="zwj",
synonyms={ "zwj" },
unicodeslot=0x200D,
@@ -61391,6 +61551,7 @@ characters.data={
cjkwd="a",
description="HYPHEN",
direction="on",
+ mongolian="nj",
linebreak="ba",
unicodeslot=0x2010,
},
@@ -61398,6 +61559,7 @@ characters.data={
category="pd",
description="NON-BREAKING HYPHEN",
direction="on",
+ mongolian="nj",
linebreak="gl",
specials={ "nobreak", 0x2010 },
unicodeslot=0x2011,
@@ -61408,6 +61570,7 @@ characters.data={
contextname="textminus",
description="FIGURE DASH",
direction="on",
+ mongolian="nj",
linebreak="ba",
unicodeslot=0x2012,
},
@@ -61418,6 +61581,7 @@ characters.data={
contextname="endash",
description="EN DASH",
direction="on",
+ mongolian="nj",
linebreak="ba",
unicodeslot=0x2013,
},
@@ -61428,6 +61592,7 @@ characters.data={
contextname="emdash",
description="EM DASH",
direction="on",
+ mongolian="nj",
linebreak="b2",
unicodeslot=0x2014,
},
@@ -61740,6 +61905,7 @@ characters.data={
contextname="narrownobreakspace",
description="NARROW NO-BREAK SPACE",
direction="cs",
+ mongolian="nj",
linebreak="gl",
specials={ "nobreak", 0x20 },
synonyms={ "nnbsp" },
@@ -74342,6 +74508,7 @@ characters.data={
contextname="dottedcircle",
description="DOTTED CIRCLE",
direction="on",
+ mongolian="nj",
linebreak="al",
unicodeslot=0x25CC,
},
@@ -165291,6 +165458,7 @@ characters.data={
category="po",
description="MONGOLIAN BIRGA WITH ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11660,
},
@@ -165298,6 +165466,7 @@ characters.data={
category="po",
description="MONGOLIAN ROTATED BIRGA",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11661,
},
@@ -165305,6 +165474,7 @@ characters.data={
category="po",
description="MONGOLIAN DOUBLE BIRGA WITH ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11662,
},
@@ -165312,6 +165482,7 @@ characters.data={
category="po",
description="MONGOLIAN TRIPLE BIRGA WITH ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11663,
},
@@ -165319,6 +165490,7 @@ characters.data={
category="po",
description="MONGOLIAN BIRGA WITH DOUBLE ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11664,
},
@@ -165326,6 +165498,7 @@ characters.data={
category="po",
description="MONGOLIAN ROTATED BIRGA WITH ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11665,
},
@@ -165333,6 +165506,7 @@ characters.data={
category="po",
description="MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11666,
},
@@ -165340,6 +165514,7 @@ characters.data={
category="po",
description="MONGOLIAN INVERTED BIRGA",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11667,
},
@@ -165347,6 +165522,7 @@ characters.data={
category="po",
description="MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11668,
},
@@ -165354,6 +165530,7 @@ characters.data={
category="po",
description="MONGOLIAN SWIRL BIRGA",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x11669,
},
@@ -165361,6 +165538,7 @@ characters.data={
category="po",
description="MONGOLIAN SWIRL BIRGA WITH ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x1166A,
},
@@ -165368,6 +165546,7 @@ characters.data={
category="po",
description="MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x1166B,
},
@@ -165375,6 +165554,7 @@ characters.data={
category="po",
description="MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT",
direction="on",
+ mongolian="nj",
linebreak="bb",
unicodeslot=0x1166C,
},
@@ -264677,4 +264857,4 @@ characters.data={
synonyms={ "vs17" },
unicodeslot=0xE0100,
},
-} \ No newline at end of file
+}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 269c8d98f..5f62f3ebc 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2020.06.09 18:53}
+\newcontextversion{2020.06.11 21:26}
%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 a33d7b1ed..e59b015f4 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -45,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2020.06.09 18:53}
+\edef\contextversion{2020.06.11 21:26}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl
index eefe2f97b..28322d492 100644
--- a/tex/context/base/mkiv/context.mkxl
+++ b/tex/context/base/mkiv/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2020.06.09 18:53}
+\edef\contextversion{2020.06.11 21:26}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-ota.lua b/tex/context/base/mkiv/font-ota.lua
index 6cbf4bb86..ce1b22b50 100644
--- a/tex/context/base/mkiv/font-ota.lua
+++ b/tex/context/base/mkiv/font-ota.lua
@@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['font-ota'] = {
-- context only
local type = type
+local setmetatableindex = table.setmetatableindex
if not trackers then trackers = { register = function() end } end
@@ -285,7 +286,7 @@ if not classifiers then
local f_nko, l_nko = characters.blockrange("nko")
local f_ext_a, l_ext_a = characters.blockrange("arabicextendeda")
- classifiers = table.setmetatableindex(function(t,k)
+ classifiers = setmetatableindex(function(t,k)
if type(k) == "number" then
local c = chardata[k]
local v = false
@@ -461,6 +462,119 @@ methods.syrc = methods.arab
methods.mand = methods.arab
methods.nko = methods.arab
+-- a quick first attemp .. more later
+
+do
+
+ -- https://github.com/n8willis/opentype-shaping-documents/blob/master/opentype-shaping-mongolian.md#joining-properties
+ -- todo syrc
+
+ local joining = setmetatableindex(function(t,k)
+ if type(k) == "number" then
+ local c = chardata[k]
+ local v = false
+ if c then
+ local mongolian = c.mongolian
+ --
+ v = mongolian
+ end
+ t[k] = v
+ return v
+ end
+ end)
+
+ function methods.mong(head,font,attr)
+ local first, last
+ local current = head
+ local done = false
+ local prevjoin = nil
+ local prestate = nil
+ current = tonut(current)
+
+ local function wrapup()
+ if last then
+ if last ~= first then
+ local s = getstate(last)
+ if s == s_medi then
+ setstate(last,s_fina)
+ elseif s == s_init then
+ setstate(last,s_isol)
+ end
+ end
+ last = nil
+ first = nil
+ prevjoin = nil
+ prestate = nil
+ end
+ end
+
+ while current do
+ local char, id = ischar(current,font)
+ if char and not getstate(current) then
+ local currjoin = joining[char]
+ done = true
+ if not last then
+ setstate(current,s_isol)
+ prevjoin = currjoin
+ first = current
+ last = current
+ prevstate = s_isol
+ elseif currjoin == "t" then -- transparent
+ -- keep state
+ last = current
+ elseif prevjoin == "d" or prevjoin == "jc" or prevjoin == "l" then
+ if currjoin == "d" or prevjoin == "jc" or prevjoin == "r" then
+ local s = getstate(last)
+ if s == s_isol then
+ setstate(last,s_init)
+ elseif s == s_fina then
+ setstate(last,s_medi)
+ end
+ setstate(current,s_fina)
+ prevstate = s_fina
+ elseif prevjoin == "nj" or prevjoin == "l" then
+ local s = getstate(last)
+ if s == s_medi then
+ setstate(last,s_fina)
+ elseif s == s_init then
+ setstate(last,s_isol)
+ end
+ setstate(current,s_isol)
+ prevstate = s_isol
+ end
+ prevjoin = currjoin
+ last = current
+ elseif prevjoin == "nj" or prevjoin == "r" then
+ if s == s_medi then
+ setstate(last,s_fina)
+ elseif s == s_init then
+ setstate(last,s_isol)
+ end
+ setstate(current,s_isol)
+ prevjoin = currjoin
+ prevstate = s_isol
+ last = current
+ elseif last then
+ wrapup()
+ end
+ else
+ if last then
+ wrapup()
+ end
+ if id == math_code then -- a bit duplicate as we test for glyphs twice
+ current = end_of_math(current)
+ end
+ end
+ current = getnext(current)
+ end
+ if last then
+ wrapup()
+ end
+ return head, done
+ end
+
+end
+
directives.register("otf.analyze.useunicodemarks",function(v)
analyzers.useunicodemarks = v
end)
diff --git a/tex/context/base/mkiv/font-pre.mkiv b/tex/context/base/mkiv/font-pre.mkiv
index 92da3892b..749c66fe7 100644
--- a/tex/context/base/mkiv/font-pre.mkiv
+++ b/tex/context/base/mkiv/font-pre.mkiv
@@ -325,6 +325,17 @@
\definefontfeature [tamil-two] [tamil-one] [script=tml2]
\definefontfeature [telugu-two] [telugu-one] [script=tel2]
+% mongolian
+
+\definefontfeature
+ [mongolian]
+ [default]
+ [script=mong,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ rlig=yes,rclt=yes,calt=yes,
+ %dlig=yes,cswh=yes, % optional
+ mset]
+
% tibetan
\definefontfeature
diff --git a/tex/context/base/mkiv/font-tra.mkiv b/tex/context/base/mkiv/font-tra.mkiv
index 89a50c5ae..7d02cd140 100644
--- a/tex/context/base/mkiv/font-tra.mkiv
+++ b/tex/context/base/mkiv/font-tra.mkiv
@@ -20,8 +20,8 @@
%D \macros
%D {showbodyfont}
%D
-%D One can call for a rather simple overview of a bodyfont and the
-%D relations between its alternative fonts.
+%D One can call for a rather simple overview of a bodyfont and the relations between
+%D its alternative fonts.
%D
%D \showsetup{showbodyfont}
%D
@@ -37,9 +37,8 @@
%D \macros
%D {showfontstrip, testminimalbaseline, showminimalbaseline}
%D
-%D The next command can come in handy when combining
-%D different fonts into a collection (typeface) and
-%D determining optimal baseline distances.
+%D The next command can come in handy when combining different fonts into a
+%D collection (typeface) and determining optimal baseline distances.
%D
%D \showfontstrip \blank \showminimalbaseline
@@ -109,10 +108,8 @@
\unexpanded\def\stopotfcollecting {\ctxlua{nodes.tracers.steppers.stop()}}
\unexpanded\def\resetotfcollecting{\ctxlua{nodes.tracers.steppers.reset()}}
-% Rather experimental:
-%
% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{الضَّرَّ} \page
-% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{لِلّٰهِ} \page
+% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{لِلّٰهِ} \page
\unexpanded\def\showotfstepglyphs#1%
{\ctxlua{nodes.tracers.steppers.glyphs(\number\otfcollector,#1)}%
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index e57661b9e..2a2a4781c 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 271444c2d..ae6c11e6c 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/trac-inf.lua b/tex/context/base/mkiv/trac-inf.lua
index 244ba4604..daf478199 100644
--- a/tex/context/base/mkiv/trac-inf.lua
+++ b/tex/context/base/mkiv/trac-inf.lua
@@ -237,7 +237,7 @@ function statistics.show()
LUATEXENGINE, LUATEXVERSION, LUATEXFUNCTIONALITY, lower(status.banner))
end)
end
- register("control sequences", function()
+ register("used hash slots", function()
return format("%s of %s + %s", status.cs_count, status.hash_size,status.hash_extra)
end)
register("callbacks", statistics.callbacks)
diff --git a/tex/context/modules/mkiv/s-system-tokens.mkxl b/tex/context/modules/mkiv/s-system-tokens.mkxl
new file mode 100644
index 000000000..e33b11a70
--- /dev/null
+++ b/tex/context/modules/mkiv/s-system-tokens.mkxl
@@ -0,0 +1,36 @@
+%D \module
+%D [ file=s-system-tokens.mkxl,
+%D version=2020.06.02,
+%D title=\CONTEXT\ Style File,
+%D subtitle=System Tokens Checking,
+%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.
+
+\startmodule[system-tokens]
+
+\registerctxluafile{s-system-tokens}{}
+
+\unexpanded\def\showsystemtokens
+ {\ctxlua{moduledata.system.tokens.showlist()}}
+
+\stopmodule
+
+\continueifinputfile{s-system-tokens.mkxl}
+
+\usemodule[article-basic]
+
+\setuppapersize[A4,landscape]
+
+\setuplayout[tight]
+
+\setupbodyfont[8pt]
+
+\starttext
+ \showsystemtokens
+\stoptext
+
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index d0aa965f3..c2128e8c3 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 : 2020-06-09 18:53
+-- merge date : 2020-06-11 21:26
do -- begin closure to overcome local limits and interference
@@ -26005,6 +26005,7 @@ if not modules then modules={} end modules ['font-ota']={
license="see context related readme files"
}
local type=type
+local setmetatableindex=table.setmetatableindex
if not trackers then trackers={ register=function() end } end
local fonts,nodes,node=fonts,nodes,node
local allocate=utilities.storage.allocate
@@ -26218,7 +26219,7 @@ if not classifiers then
local f_mandiac,l_mandiac=characters.blockrange("mandiac")
local f_nko,l_nko=characters.blockrange("nko")
local f_ext_a,l_ext_a=characters.blockrange("arabicextendeda")
- classifiers=table.setmetatableindex(function(t,k)
+ classifiers=setmetatableindex(function(t,k)
if type(k)=="number" then
local c=chardata[k]
local v=false
@@ -26384,6 +26385,106 @@ end
methods.syrc=methods.arab
methods.mand=methods.arab
methods.nko=methods.arab
+do
+ local joining=setmetatableindex(function(t,k)
+ if type(k)=="number" then
+ local c=chardata[k]
+ local v=false
+ if c then
+ local mongolian=c.mongolian
+ v=mongolian
+ end
+ t[k]=v
+ return v
+ end
+ end)
+ function methods.mong(head,font,attr)
+ local first,last
+ local current=head
+ local done=false
+ local prevjoin=nil
+ local prestate=nil
+ current=tonut(current)
+ local function wrapup()
+ if last then
+ if last~=first then
+ local s=getstate(last)
+ if s==s_medi then
+ setstate(last,s_fina)
+ elseif s==s_init then
+ setstate(last,s_isol)
+ end
+ end
+ last=nil
+ first=nil
+ prevjoin=nil
+ prestate=nil
+ end
+ end
+ while current do
+ local char,id=ischar(current,font)
+ if char and not getstate(current) then
+ local currjoin=joining[char]
+ done=true
+ if not last then
+ setstate(current,s_isol)
+ prevjoin=currjoin
+ first=current
+ last=current
+ prevstate=s_isol
+ elseif currjoin=="t" then
+ last=current
+ elseif prevjoin=="d" or prevjoin=="jc" or prevjoin=="l" then
+ if currjoin=="d" or prevjoin=="jc" or prevjoin=="r" then
+ local s=getstate(last)
+ if s==s_isol then
+ setstate(last,s_init)
+ elseif s==s_fina then
+ setstate(last,s_medi)
+ end
+ setstate(current,s_fina)
+ prevstate=s_fina
+ elseif prevjoin=="nj" or prevjoin=="l" then
+ local s=getstate(last)
+ if s==s_medi then
+ setstate(last,s_fina)
+ elseif s==s_init then
+ setstate(last,s_isol)
+ end
+ setstate(current,s_isol)
+ prevstate=s_isol
+ end
+ prevjoin=currjoin
+ last=current
+ elseif prevjoin=="nj" or prevjoin=="r" then
+ if s==s_medi then
+ setstate(last,s_fina)
+ elseif s==s_init then
+ setstate(last,s_isol)
+ end
+ setstate(current,s_isol)
+ prevjoin=currjoin
+ prevstate=s_isol
+ last=current
+ elseif last then
+ wrapup()
+ end
+ else
+ if last then
+ wrapup()
+ end
+ if id==math_code then
+ current=end_of_math(current)
+ end
+ end
+ current=getnext(current)
+ end
+ if last then
+ wrapup()
+ end
+ return head,done
+ end
+end
directives.register("otf.analyze.useunicodemarks",function(v)
analyzers.useunicodemarks=v
end)