summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/lexers/data/scite-context-data-context.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-lua.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-xml.lua2
-rw-r--r--context/data/scite/scite-context-data-context.properties121
-rw-r--r--context/data/scite/scite-context-data-interfaces.properties952
-rw-r--r--context/data/scite/scite-context-data-metapost.properties90
-rw-r--r--context/data/scite/scite-context-data-tex.properties32
-rw-r--r--scripts/context/lua/mtx-rsync.lua7
-rw-r--r--scripts/context/lua/mtxrun.lua326
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua326
-rwxr-xr-xscripts/context/stubs/unix/mtxrun326
-rw-r--r--tex/context/base/char-ini.lua41
-rw-r--r--tex/context/base/cldf-ini.lua3
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4098 -> 4103 bytes
-rw-r--r--tex/context/base/context-version.pngbin40164 -> 39994 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/file-mod.lua7
-rw-r--r--tex/context/base/file-mod.mkvi9
-rw-r--r--tex/context/base/font-aux.lua143
-rw-r--r--tex/context/base/grph-inc.lua14
-rw-r--r--tex/context/base/l-lpeg.lua3
-rw-r--r--tex/context/base/l-os.lua19
-rw-r--r--tex/context/base/l-unicode.lua114
-rw-r--r--tex/context/base/luat-cnf.lua7
-rw-r--r--tex/context/base/luat-env.lua3
-rw-r--r--tex/context/base/lxml-lpt.lua89
-rw-r--r--tex/context/base/mult-low.lua2
-rw-r--r--tex/context/base/s-pre-61.tex1
-rw-r--r--tex/context/base/spac-hor.mkiv17
-rw-r--r--tex/context/base/spac-ver.mkiv2
-rw-r--r--tex/context/base/status-files.pdfbin24751 -> 24700 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin208561 -> 208633 bytes
-rw-r--r--tex/context/base/util-mrg.lua4
-rw-r--r--tex/context/base/util-prs.lua118
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua40
38 files changed, 1831 insertions, 999 deletions
diff --git a/context/data/scite/lexers/data/scite-context-data-context.lua b/context/data/scite/lexers/data/scite-context-data-context.lua
index cae7b9548..a88e9689f 100644
--- a/context/data/scite/lexers/data/scite-context-data-context.lua
+++ b/context/data/scite/lexers/data/scite-context-data-context.lua
@@ -1,4 +1,4 @@
return {
- ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plushundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "etexversion", "pdftexversion", "xetexversion", "xetexrevision", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifmodeelse", "doifnotmode", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "startmodule", "stopmodule", "usemodule", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es" },
+ ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plushundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "etexversion", "pdftexversion", "xetexversion", "xetexrevision", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifmodeelse", "doifnotmode", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es" },
["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "scratchdimen", "globalscratchdimen", "scratchskip", "globalscratchskip", "scratchmuskip", "globalscratchmuskip", "scratchtoks", "globalscratchtoks", "scratchbox", "globalscratchbox", "availablehsize", "localhsize", "setlocalhsize", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "doifinset", "doifnotinset", "doifinsetelse", "doifnextcharelse", "doifnextoptionalelse", "doifnextbgroupelse", "doifnextparenthesiselse", "doiffastoptionalcheckelse", "doifundefinedelse", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifdimensionelse", "doifnumberelse", "doifnumber", "doifnotnumber", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifinstringelse", "doifassignmentelse", "docheckassignment", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "wait", "writestatus", "define", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "installcorenamespace", "getvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "strut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "begstrut", "endstrut", "lineheight", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "luaexpr", "expdoifelse", "expdoif", "expdoifnot", "expdoifcommonelse", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "carryoverpar", "Umathbotaccent" },
} \ No newline at end of file
diff --git a/context/data/scite/lexers/scite-context-lexer-lua.lua b/context/data/scite/lexers/scite-context-lexer-lua.lua
index e95d90977..a2d909e5a 100644
--- a/context/data/scite/lexers/scite-context-lexer-lua.lua
+++ b/context/data/scite/lexers/scite-context-lexer-lua.lua
@@ -6,6 +6,8 @@ local info = {
license = "see context related readme files",
}
+-- todo: _G.print (keep _G colored)
+
if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
diff --git a/context/data/scite/lexers/scite-context-lexer-xml.lua b/context/data/scite/lexers/scite-context-lexer-xml.lua
index 9d5199a64..29133cf23 100644
--- a/context/data/scite/lexers/scite-context-lexer-xml.lua
+++ b/context/data/scite/lexers/scite-context-lexer-xml.lua
@@ -1,6 +1,6 @@
local info = {
version = 1.002,
- comment = "scintilla lpeg lexer for metafun",
+ comment = "scintilla lpeg lexer for xml",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files",
diff --git a/context/data/scite/scite-context-data-context.properties b/context/data/scite/scite-context-data-context.properties
index acfe08ec1..1e257dfbc 100644
--- a/context/data/scite/scite-context-data-context.properties
+++ b/context/data/scite/scite-context-data-context.properties
@@ -1,63 +1,3 @@
-keywordclass.context.constants=\
-zerocount minusone minustwo plusone \
-plustwo plusthree plusfour plusfive plussix \
-plusseven pluseight plusnine plusten plussixteen \
-plushundred plusthousand plustenthousand plustwentythousand medcard \
-maxcard zeropoint onepoint halfapoint onebasepoint \
-maxdimen scaledpoint thousandpoint points halfpoint \
-zeroskip zeromuskip onemuskip pluscxxvii pluscxxviii \
-pluscclv pluscclvi normalpagebox endoflinetoken outputnewlinechar \
-emptytoks empty undefined voidbox emptybox \
-emptyvbox emptyhbox bigskipamount medskipamount smallskipamount \
-fmtname fmtversion texengine texenginename texengineversion \
-luatexengine pdftexengine xetexengine unknownengine etexversion \
-pdftexversion xetexversion xetexrevision activecatcode bgroup \
-egroup endline conditionaltrue conditionalfalse attributeunsetvalue \
-uprotationangle rightrotationangle downrotationangle leftrotationangle inicatcodes \
-ctxcatcodes texcatcodes notcatcodes txtcatcodes vrbcatcodes \
-prtcatcodes nilcatcodes luacatcodes tpacatcodes tpbcatcodes \
-xmlcatcodes escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode \
-alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode \
-ignorecatcode spacecatcode lettercatcode othercatcode activecatcode \
-commentcatcode invalidcatcode tabasciicode newlineasciicode formfeedasciicode \
-endoflineasciicode endoffileasciicode spaceasciicode hashasciicode dollarasciicode \
-commentasciicode ampersandasciicode colonasciicode backslashasciicode circumflexasciicode \
-underscoreasciicode leftbraceasciicode barasciicode rightbraceasciicode tildeasciicode \
-delasciicode lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode \
-exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode \
-primeasciicode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \
-batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \
-simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \
-aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \
-insertgroupcode vcentergroupcode mathchoicegroupcode semisimplegroupcode mathshiftgroupcode \
-mathleftgroupcode vadjustgroupcode charnodecode hlistnodecode vlistnodecode \
-rulenodecode insertnodecode marknodecode adjustnodecode ligaturenodecode \
-discretionarynodecode whatsitnodecode mathnodecode gluenodecode kernnodecode \
-penaltynodecode unsetnodecode mathsnodecode charifcode catifcode \
-numifcode dimifcode oddifcode vmodeifcode hmodeifcode \
-mmodeifcode innerifcode voidifcode hboxifcode vboxifcode \
-xifcode eofifcode trueifcode falseifcode caseifcode \
-definedifcode csnameifcode fontcharifcode fontslantperpoint fontinterwordspace \
-fontinterwordstretch fontinterwordshrink fontexheight fontemwidth fontextraspace \
-slantperpoint interwordspace interwordstretch interwordshrink exheight \
-emwidth extraspace mathsupdisplay mathsupnormal mathsupcramped \
-mathsubnormal mathsubcombined mathaxisheight startmode stopmode \
-startnotmode stopnotmode startmodeset stopmodeset doifmode \
-doifmodeelse doifnotmode startallmodes stopallmodes startnotallmodes \
-stopnotallmodes doifallmodes doifallmodeselse doifnotallmodes startenvironment \
-stopenvironment environment startcomponent stopcomponent component \
-startproduct stopproduct product startproject stopproject \
-project starttext stoptext startnotext stopnotext \
-startdocument stopdocument documentvariable startmodule stopmodule \
-usemodule startTEXpage stopTEXpage enablemode disablemode \
-preventmode globalenablemode globaldisablemode globalpreventmode pushmode \
-popmode typescriptone typescripttwo typescriptthree mathsizesuffix \
-mathordcode mathopcode mathbincode mathrelcode mathopencode \
-mathclosecode mathpunctcode mathalphacode mathinnercode mathnothingcode \
-mathlimopcode mathnolopcode mathboxcode mathchoicecode mathaccentcode \
-mathradicalcode constantnumber constantnumberargument constantdimen constantdimenargument \
-constantemptyargument continueifinputfile luastringsep !!bs !!es
-
keywordclass.context.helpers=\
startsetups stopsetups startxmlsetups stopxmlsetups \
startluasetups stopluasetups starttexsetups stoptexsetups startrawsetups \
@@ -172,3 +112,64 @@ luaconditional luaexpanded startluaparameterset stopluaparameterset luaparameter
definenamedlua obeylualines obeyluatokens startluacode stopluacode \
startlua stoplua carryoverpar Umathbotaccent
+keywordclass.context.constants=\
+zerocount minusone minustwo plusone \
+plustwo plusthree plusfour plusfive plussix \
+plusseven pluseight plusnine plusten plussixteen \
+plushundred plusthousand plustenthousand plustwentythousand medcard \
+maxcard zeropoint onepoint halfapoint onebasepoint \
+maxdimen scaledpoint thousandpoint points halfpoint \
+zeroskip zeromuskip onemuskip pluscxxvii pluscxxviii \
+pluscclv pluscclvi normalpagebox endoflinetoken outputnewlinechar \
+emptytoks empty undefined voidbox emptybox \
+emptyvbox emptyhbox bigskipamount medskipamount smallskipamount \
+fmtname fmtversion texengine texenginename texengineversion \
+luatexengine pdftexengine xetexengine unknownengine etexversion \
+pdftexversion xetexversion xetexrevision activecatcode bgroup \
+egroup endline conditionaltrue conditionalfalse attributeunsetvalue \
+uprotationangle rightrotationangle downrotationangle leftrotationangle inicatcodes \
+ctxcatcodes texcatcodes notcatcodes txtcatcodes vrbcatcodes \
+prtcatcodes nilcatcodes luacatcodes tpacatcodes tpbcatcodes \
+xmlcatcodes escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode \
+alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode \
+ignorecatcode spacecatcode lettercatcode othercatcode activecatcode \
+commentcatcode invalidcatcode tabasciicode newlineasciicode formfeedasciicode \
+endoflineasciicode endoffileasciicode spaceasciicode hashasciicode dollarasciicode \
+commentasciicode ampersandasciicode colonasciicode backslashasciicode circumflexasciicode \
+underscoreasciicode leftbraceasciicode barasciicode rightbraceasciicode tildeasciicode \
+delasciicode lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode \
+exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode \
+primeasciicode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \
+batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \
+simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \
+aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \
+insertgroupcode vcentergroupcode mathchoicegroupcode semisimplegroupcode mathshiftgroupcode \
+mathleftgroupcode vadjustgroupcode charnodecode hlistnodecode vlistnodecode \
+rulenodecode insertnodecode marknodecode adjustnodecode ligaturenodecode \
+discretionarynodecode whatsitnodecode mathnodecode gluenodecode kernnodecode \
+penaltynodecode unsetnodecode mathsnodecode charifcode catifcode \
+numifcode dimifcode oddifcode vmodeifcode hmodeifcode \
+mmodeifcode innerifcode voidifcode hboxifcode vboxifcode \
+xifcode eofifcode trueifcode falseifcode caseifcode \
+definedifcode csnameifcode fontcharifcode fontslantperpoint fontinterwordspace \
+fontinterwordstretch fontinterwordshrink fontexheight fontemwidth fontextraspace \
+slantperpoint interwordspace interwordstretch interwordshrink exheight \
+emwidth extraspace mathsupdisplay mathsupnormal mathsupcramped \
+mathsubnormal mathsubcombined mathaxisheight startmode stopmode \
+startnotmode stopnotmode startmodeset stopmodeset doifmode \
+doifmodeelse doifnotmode startallmodes stopallmodes startnotallmodes \
+stopnotallmodes doifallmodes doifallmodeselse doifnotallmodes startenvironment \
+stopenvironment environment startcomponent stopcomponent component \
+startproduct stopproduct product startproject stopproject \
+project starttext stoptext startnotext stopnotext \
+startdocument stopdocument documentvariable startmodule stopmodule \
+usemodule usetexmodule useluamodule startTEXpage stopTEXpage \
+enablemode disablemode preventmode globalenablemode globaldisablemode \
+globalpreventmode pushmode popmode typescriptone typescripttwo \
+typescriptthree mathsizesuffix mathordcode mathopcode mathbincode \
+mathrelcode mathopencode mathclosecode mathpunctcode mathalphacode \
+mathinnercode mathnothingcode mathlimopcode mathnolopcode mathboxcode \
+mathchoicecode mathaccentcode mathradicalcode constantnumber constantnumberargument \
+constantdimen constantdimenargument constantemptyargument continueifinputfile luastringsep \
+!!bs !!es
+
diff --git a/context/data/scite/scite-context-data-interfaces.properties b/context/data/scite/scite-context-data-interfaces.properties
index d15201e3c..2bbc4336b 100644
--- a/context/data/scite/scite-context-data-interfaces.properties
+++ b/context/data/scite/scite-context-data-interfaces.properties
@@ -1,3 +1,153 @@
+keywordclass.context.en=\
+CAP Cap Caps Character \
+Characters MONTH Numbers Romannumerals WEEKDAY \
+WORD WORDS Word Words about \
+adaptlayout adding appendix arg at \
+atleftmargin atpage atrightmargin background backspace \
+blackrule blackrules blank bookmark bottomdistance \
+bottomheight bottomspace but button bypassblocks \
+cap chapter character characters chem \
+clip clonefield color colorbar colorvalue \
+column comment comparecolorgroup comparepalet completecombinedlist \
+completelistoffloats completelistofsorts completelistofsynonyms completepagenumber completeregister \
+component convertnumber copyfield correctwhitespace coupledocument \
+coupledregister couplemarking couplepage couplepaper coupleregister \
+crlf currentdate currentheadnumber cutspace date \
+decouplemarking decrementnumber define defineaccent defineblank \
+defineblock definebodyfont definebodyfontDEF definebodyfontREF definebodyfontenvironment \
+definebuffer definecharacter definecolor definecolorgroup definecolumnbreak \
+definecolumnset definecombination definecombinedlist definecommand defineconversion \
+definedescription definedfont defineenumeration definefield definefieldstack \
+definefiguresymbol definefloat definefont definefontfeature definefonthandling \
+definefontstyle definefontsynonym defineframed defineframedtext definehbox \
+definehead defineindentedtext defineinmargin defineinteractionmenu defineitemgroup \
+definelabel definelayer definelayout definelist definelogo \
+definemainfield definemakeup definemarking definemathalignment defineoutput \
+defineoverlay definepagebreak definepalet definepapersize defineparagraphs \
+defineplacement defineprofile defineprogram definerawfont definereference \
+definereferenceformat definereferencelist defineregister definerule definesection \
+definesectionblock definesorting definestartstop definestyle definesubfield \
+definesymbol definesynonyms definetabletemplate definetabulate definetext \
+definetextposition definetextvariable definetype definetypeface definetyping \
+defineversion description determineheadnumber determinelistcharacteristics determineregistercharacteristics \
+dimension disableinteractionmenu domicile donttest edgedistance \
+edgewidth emptylines enumeration environment externalfigure \
+fact field fieldstack fillinfield fillinline \
+fillinrules fillintext fitfield fixedspace fixedspaces \
+followprofile followprofileversion followversion footerdistance footerheight \
+footnote footnotetext forceblocks formulanumber fraction \
+framed framedtext from getbuffer getmarking \
+getnumber godown goto gotobox gotopage \
+graycolor greyvalue grid hairline head \
+headerdistance headerheight headlevel headnumber headsym \
+headtext hideblocks high hl immediatebetweenlist \
+immediatetolist in incrementnumber indentation indenting \
+inframed infull ininner inleft inleftedge \
+inleftmargin inline inmaframed inmargin inneredgedistance \
+inneredgewidth innermargindistance innermarginwidth inothermargin inouter \
+inright inrightedge inrightmargin installlanguage interactionbar \
+interactionbuttons interactionmenu item items its \
+keepblocks label labeling labels labeltext \
+language leftaligned leftedgedistance leftedgewidth leftmargindistance \
+leftmarginwidth leg linethickness listheight listlength \
+listsymbol listwidth loadsorts loadsynonyms logfields \
+lohi low maframed mainlanguage makeupheight \
+makeupwidth mapfontsize mar margindistance marginrule \
+margintext margintitle marginwidth marginword marking \
+markversion mathematics mediaeval menubutton midaligned \
+mirror month moveformula moveongrid movesidefloat \
+name navigating nextsection nocap nodimension \
+noheaderandfooterlines noindenting nolist nomarking nomoreblocks \
+nomorefiles nop nospace note notopandbottomlines \
+nowhitespace numberofsubpages numbers outeredgedistance outeredgewidth \
+outermargindistance outermarginwidth overbar overbars overstrike \
+overstrikes packed page pagedepth pagenumber \
+pageoffset pagereference paperheight paperwidth paragraph \
+part periods placebookmarks placecombinedlist placefloat \
+placefootnotes placeformula placeheadnumber placeheadtext placelegend \
+placelist placelistoffloats placelistofsorts placelistofsynonyms placelocalfootnotes \
+placelogos placeongrid placeontopofeachother placepagenumber placerawlist \
+placereferencelist placeregister placerule placesidebyside placesubformula \
+placetextvariable position positiontext printpaperheight printpaperwidth \
+processblocks processpage product program project \
+publication quotation quote ran redo \
+ref reference referral referraldate referring \
+register remark reservefloat reset resetmarking \
+resetnumber resettextcontent rightaligned rightedgedistance rightedgewidth \
+rightmargindistance rightmarginwidth romannumerals rotate scale \
+screen section seeregister selectblocks selectpaper \
+selectversion setnumber settextcontent settextvariable setupalign \
+setupanswerarea setuparranging setupbackground setupbackgrounds setupblackrules \
+setupblank setupblock setupbodyfont setupbodyfontenvironment setupbottom \
+setupbottomtexts setupbuffer setupbuttons setupcapitals setupcaption \
+setupcaptions setupclipping setupcolor setupcolors setupcolumns \
+setupcolumnset setupcolumnsetlines setupcolumnsetstart setupcombinations setupcombinedlist \
+setupcomment setupdescriptions setupenumerations setupexternalfigures setupfield \
+setupfields setupfillinlines setupfillinrules setupfloat setupfloats \
+setupfloatsplitting setupfonthandling setupfontsynonym setupfooter setupfootertexts \
+setupfootnotedefinition setupfootnotes setupforms setupformulae setupframed \
+setupframedtexts setuphead setupheader setupheadertexts setupheadnumber \
+setupheads setupheadtext setuphyphenmark setupindentedtext setupindenting \
+setupinmargin setupinteraction setupinteractionbar setupinteractionmenu setupinteractionscreen \
+setupinterlinespace setupinterlinespace2 setupitemgroup setupitemizations setupitems \
+setuplabeltext setuplanguage setuplayout setuplegend setuplinenumbering \
+setuplines setuplinewidth setuplist setuplistalternative setupmakeup \
+setupmarginblocks setupmarginrules setupmarking setupmathalignment setupnarrower \
+setupnumber setupnumbering setupoppositeplacing setupoutput setuppagecomment \
+setuppagenumber setuppagenumbering setuppagetransitions setuppalet setuppaper \
+setuppapersize setupparagraphnumbering setupparagraphs setupplacement setuppositioning \
+setupprofiles setupprograms setuppublications setupquote setupreferencelist \
+setupreferencing setupregister setuprotate setuprule setups \
+setupscreens setupsection setupsectionblock setupsorting setupspacing \
+setupstartstop setupstrut setupsubpagenumber setupsymbolset setupsynchronization \
+setupsynchronizationbar setupsynonyms setupsystem setuptab setuptables \
+setuptabulate setuptext setuptextposition setuptextrules setuptexttexts \
+setuptextvariable setupthinrules setuptolerance setuptop setuptoptexts \
+setuptype setuptyping setupunderbar setupurl setupversions \
+setupwhitespace showbodyfont showbodyfontenvironment showcolor showcolorgroup \
+showexternalfigures showfields showframe showgrid showlayout \
+showmakeup showpalet showprint showsetups showstruts \
+showsymbolset someline somewhere sort space \
+splitfloat startalignment startbackground startbuffer startcoding \
+startcolor startcolumnmakeup startcolumns startcolumnset startcombination \
+startcomment startcomponent startdescription startdocument startenumeration \
+startenvironment startfact startfigure startfloattext startformula \
+startframedtext startglobal starthiding startinteractionmenu startitemgroup \
+startlegend startline startlinecorrection startlinenumbering startlines \
+startlocal startlocalenvironment startlocalfootnotes startmakeup startmarginblock \
+startmarginrule startnamemakeup startnarrower startopposite startoverlay \
+startoverview startpacked startparagraph startpositioning startpostponing \
+startproduct startprofile startproject startquotation startraster \
+startregister startsymbolset startsynchronization starttable starttables \
+starttabulate starttext starttextrule starttyping startunpacked \
+startversion stopalignment stopbackground stopbuffer stopcoding \
+stopcolor stopcolumnmakeup stopcolumns stopcolumnset stopcombination \
+stopcomment stopcomponent stopdescription stopdocument stopenumeration \
+stopenvironment stopfact stopfigure stopfloattext stopformula \
+stopframedtext stopglobal stophiding stopinteractionmenu stopitemgroup \
+stoplegend stopline stoplinecorrection stoplinenumbering stoplines \
+stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup stopmarginblock \
+stopmarginrule stopnamemakeup stopnarrower stopopposite stopoverlay \
+stopoverview stoppacked stopparagraph stoppositioning stoppostponing \
+stopproduct stopprofile stopproject stopquotation stopraster \
+stopsymbolset stopsynchronization stoptable stoptables stoptabulate \
+stoptext stoptextrule stoptyping stopunpacked stopversion \
+stretched sub subformulanumber subject subpagenumber \
+subsection subsubject subsubsection subsubsubject switchtobodyfont \
+switchtorawfont sym symbol symoffset synchronizationbar \
+synchronize synonym tab testcolumn testpage \
+tex textheight textreference textrule textvariable \
+textwidth thinrule thinrules title tooltip \
+topdistance topheight topspace totalnumberofpages translate \
+txt typ type typebuffer typefile \
+underbar underbars unitmeaning unknown useJSscripts \
+useURL useXMLfilter useblocks usecommands usedirectory \
+useencoding useexternaldocument useexternalfigure useexternalfile useexternalfiles \
+useexternalsoundtrack usemodule usemodules usereferences usespecials \
+usesymbols usetypescript usetypescriptfile useurl version \
+vl weekday whitespace wordright writebetweenlist \
+writetolist writetoreferencelist writetoregister
+
keywordclass.context.ro=\
CAP CUVANT CUVINTE Cap \
Caps Cuvant Cuvinte KAP Kap \
@@ -156,6 +306,332 @@ urmeazaversiune urmeazaversiuneprofil useXMLfilter usedirectory usetypescript \
usetypescriptfile valoareculoare valoaregri variabilatext versiune \
vl zidinsaptamana
+keywordclass.context.fr=\
+CAP Cap Caps Caractere \
+Caracteres Chiffresromains JOURSEMAINE MOIS MOT \
+MOTS Mot Mots Numeros a \
+adaptedisposition affectenumero affectevariabletexte ajustechamp alaligne \
+alapage aligneadroite aligneagauche aligneaumilieu appendix \
+arg arriereplan atleftmargin atrightmargin baha \
+barrecouleur barreinteraction barresynchronisation bas bouton \
+boutonmenu boutonsinteraction but cacheblocs cap \
+caractere caracteres champ changepolicebrute changepolicecorps \
+chapter chem chiffresromains citation citer \
+clip clonechamp colonne comment commentaire \
+comparegroupecouleur comparepalette completecombinedlist completelistoffloats completelistofsorts \
+completelistofsynonyms completenumeropage completeregistre composant composeenalinea \
+concernant convertitnumero copitchamp corrigeespaceblanc couleur \
+couleurgrise coupledocument coupledregister couplemarquage couplepapier \
+coupleregistre crlf cutspace dactylographier dans \
+dansautremarge dansborddroit dansbordgauche dansdroite dansgauche \
+dansmarge dansmargedroite dansmargegauche date datecourante \
+daterecommandation de decouplemarquage decrementenumero definebodyfontDEF \
+definebodyfontREF definecombination definedfont definefontfeature definefonthandling \
+defineframed defineframedtext defineindentedtext defineitemgroup definemathalignment \
+defineplacement definetypeface definicaractere definit definitaccent \
+definitbloc definitblocsection definitbuffer definitcalque definitchamp \
+definitchampprincipal definitcommande definitconversion definitcouleur definitdactylo \
+definitdansmarge definitdemarrestoppe definitdescription definitdisposition definitenumeration \
+definitenvironnementpolicecorps definitetiquette definitflottant definitformatreference definitgroupecouleur \
+definithbox definitjeucolonne definitliste definitlisteimbriquee definitlistereference \
+definitlogo definitmakeup definitmarquage definitmenuinteraction definitnotepdp \
+definitpalette definitparagraphes definitpilechamp definitpolice definitpolicebrute \
+definitpolicecorps definitpositiontexte definitprofil definitprogramme definitreference \
+definitregistre definitregle definitrevetement definitsautdecolonne definitsautdepage \
+definitsection definitsortie definitsouschamp definitstyle definitstylepolice \
+definitsymbole definitsymbolefigure definitsynonymepolice definitsynonymes definittabulation \
+definittaillepapier definittete definittexte definittrametableau definittri \
+definittype definitvariabletexte definitversion definitvide demarrealignement \
+demarrearriereplan demarreblocmarge demarrecitation demarreciter demarrecodage \
+demarrecolonnes demarrecombinaison demarrecompoetroite demarrecomposant demarrecorrectionligne \
+demarrecouleur demarredegroupe demarredocument demarreenvironement demarrefigure \
+demarreglobal demarregroupe demarrejeucolonne demarrejeusymboles demarreligne \
+demarreligneregleetexte demarrelignes demarrelocal demarremakeup demarremargereglee \
+demarrenotespdplocales demarrenumerotationligne demarreopposition demarrepositionnement demarreproduit \
+demarreprofil demarreprojet demarreraster demarrerevetement demarresynchronisation \
+demarretableau demarretableaux demarretexte demarreversion demarrevuedensemble \
+deplaceformule deplacesurgrille description determinecaracteristiqueliste determinecaracteristiquesregistre \
+determinenumerotete dimension distancebord distanceborddroit distancebordgauche \
+distanceentete distanceinf distancemarge distancemargedroite distancemargegauche \
+distancepdp distancesup domicile echelle ecran \
+ecritdansliste ecritdanslistereference ecritentreliste ecritregistre el \
+element elements emptylines enumeration environement \
+espace espaceblanc espacefixe espaceinf espacesfixes \
+espacesup etiquette etiquettes etire fait \
+faitreference fichierdactylo figureexterne forceblocs fraction \
+framed framedtext gardeblocs getnumber grille \
+groupe haut hauteureditionpapier hauteurentete hauteurinf \
+hauteurliste hauteurmakeup hauteurpapier hauteurpdp hauteursup \
+hauteurtexte headsym hl immediatebetweenlist immediatetolist \
+inconnu incrementenumero indentation inframed infull \
+inhibemenuinteraction ininner inmframed inneredgedistance inneredgewidth \
+innermargindistance innermarginwidth inouter installelangue joursemaine \
+labeling labeltexte langue langueprincipale largeurbord \
+largeurborddroit largeurbordgauche largeureditionpapier largeurligne largeurliste \
+largeurmakeup largeurmarge largeurmargedroite largeurmargegauche largeurpapier \
+largeurtexte leg ligneh lignenoire ligneregleetexte \
+lignesnoires listesymbole llongueurliste loadsorts loadsynonyms \
+logchamp mapfontsize mar margereglee marquage \
+marquageversion marquepage mathematique mediaeval menuinteraction \
+mframed mois montrecadre montrechamps montrecouleur \
+montredisposition montreedition montreenvironnementpolicecorps montrefiguresexternes montregrille \
+montregroupecouleur montrejeusymboles montremakeup montrepalette montrepolicecorps \
+montrereglages montrestruts motdroit motmarge movesidefloat \
+name navigating nextsection niveautete nocap \
+nombredesouspages nombretotaldepages nommacro nop note \
+notepdp numeroformule numeropage numeros numerosousformule \
+numerotete numerotetecourant obtientmarquage oriente outeredgedistance \
+outeredgewidth outermargindistance outermarginwidth overbar overbars \
+overstrike overstrikes page pagedepth pagedouble \
+pageoffset paragraph part pasplusdeblocs pasplusdefichiers \
+periodes pilechamp placecoteacote placeflottant placeformule \
+placelegende placelesunsaudessusdesautres placeliste placelisteinmbriquee placelistereference \
+placelistoffloats placelistofsorts placelistofsynonyms placelogos placemarquespages \
+placenotespdp placenotespdplocales placenumeropage placenumerotete placerawlist \
+placeregistre placeregle placesousformule placesurgrille placetextetete \
+placevariabletexte position positionnetexte prendbuffer produit \
+programme projet publication qqpart ran \
+raz razmarquage raznumero recommandation ref \
+refait reference referencepage referencetexte reflete \
+register reglages reglealignement reglearrangement reglearriereplan \
+reglearriereplans reglebarreinteraction reglebarresynchronisation reglebloc regleblocmarge \
+regleblocsection regleboutons reglebuffer reglecapitales reglechamp \
+reglechamps regleclipping reglecolonnes reglecombinaisons reglecommentaire \
+reglecommentairepage reglecompoetroite reglecomposeenalinea reglecouleur reglecouleurs \
+regledactylo regledansmarge regledemarrestoppe regledescriptions regledisposition \
+regleecraninteraction regleecrans regleelements regleencadre regleentete \
+regleenumerations regleenvironnementpolicecorps regleepaisseurligne regleespaceblanc regleespacement \
+regleespacementinterligne reglefiguresexternes regleflottant regleflottants regleformulaires \
+regleformules reglegroupeselements regleinf regleinteraction regleintitule \
+regleintitules reglejeucolonne reglejeusymboles reglelabeltexte reglelangue \
+reglelegende reglelignes reglelignesnoires reglelignesreglestexte regleliste \
+reglelisteimbriquee reglelistereference reglemakeup reglemargereglee reglemarquage \
+reglemarquagehyphenation reglemenuinteraction reglenotepdp reglenumero reglenumeropage \
+reglenumerotation reglenumerotationligne reglenumerotationpage reglenumerotationparagraphe reglenumerotete \
+regleoriente reglepalette reglepapier regleparagraphes reglepdp \
+regleplacementopposition reglepolicecorps reglepositionnement reglepositiontexte regleprofils \
+regleprogrammes reglepublications reglereferencage regleregistre regleregle \
+regleremplitligne regleremplitlignesreglees reglesection regleseparationflottant reglesortie \
+reglesouslignage reglesousnumeropage reglestrut reglesup reglesynchronisation \
+reglesynonymes reglesysteme regletab regletableaux regletabulation \
+regletaillepapier regletete regletetes regletexte regletextesentete \
+regletextesinf regletextespdp regletextessup regletextestexte regletextetete \
+regletolerance regletraitsfins regletransitionspage regletri regletype \
+regleurl reglevariabletexte regleversions remplitchamp remplitligne \
+remplitlignesreglees remplittexte reservefloat resettextcontent retourarriere \
+sansalinea sansdimension sansespace sansespaceblanc sanslignesenteteetpdp \
+sanslignessupetinf sansliste sansmarquage sanstest sauteblocs \
+section seeregister selectionneblocs selectionnepapier selectionneversion \
+sensunite separeflottant settext setupanswerarea setupcolumnsetlines \
+setupcolumnsetstart setupfonthandling setupfontsynonym setupframedtexts setupindentedtext \
+setupinterlinespace2 setupitemgroup setuplistalternative setupmathalignment setupplacement \
+sort sousnumeropage startalignment startarriereplan startbuffer \
+startcitation startcolumnmakeup startcolumns startcombination startcomment \
+startcomposant startcouleur startdescription startdocument startenumeration \
+startenvironement startfait startfigure startfloattext startformula \
+startframedtext startgroupe starthiding startitemgroup startlegend \
+startligneregleetexte startline startlinecorrection startlinenumbering startlines \
+startlocal startlocalenvironment startlocalfootnotes startmakeup startmargereglee \
+startmarginblock startmenuinteraction startnamemakeup startnarrower startopposite \
+startoverlay startoverview startparagraph startpositioning startpostponing \
+startproduit startprofile startprojet startregister startsymbolset \
+startsynchronization starttable starttables starttabulate starttyping \
+startunpacked startversion stopalignment stoparriereplan stopbuffer \
+stopcitation stopcolumnmakeup stopcolumns stopcombination stopcomment \
+stopcompoetroite stopcomposant stopcouleur stopdescription stopdocument \
+stopenumeration stopenvironement stopfait stopfigure stopfloattext \
+stopformula stopframedtext stopgroupe stophiding stopitemgroup \
+stoplegend stopligneregleetexte stopline stoplinecorrection stoplinenumbering \
+stoplines stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup \
+stopmargereglee stopmarginblock stopmenuinteraction stopnamemakeup stopnarrower \
+stopopposite stopoverlay stopoverview stopparagraph stoppealignement \
+stoppearriereplan stoppeblocmarge stoppecitation stoppecodage stoppecolonnes \
+stoppecombinaison stoppecomposant stoppecorrectionligne stoppecouleur stoppedegroupe \
+stoppedocument stoppeenvironement stoppeglobal stoppegroupe stoppejeucolonne \
+stoppeligne stoppeligneregleetexte stoppelignes stoppelocal stoppemakeup \
+stoppemargereglee stoppenotespdplocales stoppenumerotationligne stoppeopposition stoppepositionnement \
+stoppeproduit stoppeprofil stoppeprojet stopperaster stopperevetement \
+stoppesynchronisation stoppetableau stoppetableaux stoppetexte stoppeversion \
+stoppevuedensemble stoppositioning stoppostponing stopproduit stopprofile \
+stopprojet stopsymbolset stopsynchronization stoptable stoptables \
+stoptabulate stoptyping stopunpacked stopversion sub \
+subject subsection subsubject subsubsection subsubsubject \
+suggestion suivantprofil suivantversion suivantversionprofil sym \
+symbole synchronise synonym tab tapebuffer \
+testcolumn testpage tete tex textemarge \
+textenotepdp textetete title titremarge traduire \
+traiteblocs traitepage traitfin traitsfins txt \
+typ underbar underbars uneligne useXMLfilter \
+usedirectory usetypescript usetypescriptfile utiliseJSscripts utiliseURL \
+utiliseblocs utilisechemin utilisecommandes utilisedocumentexterne utiliseencodage \
+utilisefichierexterne utilisefichiersexternes utilisefigureexterne utilisemodule utilisemodules \
+utilisepsiteaudioexterne utilisereferences utilisespecialites utilisesymboles utiliseurl \
+va vaalaboite vaalapage vaenbas valeurcouleur \
+valeurgris variabletexte version vide vl
+
+keywordclass.context.pe=\
+CAP Cap Caps Character \
+Characters MONTH Numbers Romannumerals WEEKDAY \
+WORD WORDS Word Words appendix \
+cap chapter chem comment completecombinedlist \
+completelistoffloats completelistofsorts completelistofsynonyms coupledregister crlf \
+definebodyfontDEF definebodyfontREF definedfont definefontfeature definefonthandling \
+defineindentedtext definetypeface description enumeration framedtext \
+indentation inmframed its labeling loadsorts \
+loadsynonyms mapfontsize mediaeval mframed name \
+nextsection nocap overbar overbars overstrike \
+overstrikes paragraph part placelistoffloats placelistofsorts \
+placelistofsynonyms ran register reservefloat resettextcontent \
+section seeregister setupanswerarea setupcapitals setupfonthandling \
+setupfontsynonym setupindentedtext setupinterlinespace2 setuplistalternative setupurl \
+sort startalignment startbuffer startcolumns startcombination \
+startcomment startdescription startdocument startenumeration startfigure \
+startfloattext startformula startframedtext starthiding startitemgroup \
+startlegend startline startlinecorrection startlinenumbering startlines \
+startlocal startlocalenvironment startlocalfootnotes startmakeup startmarginblock \
+startnamemakeup startnarrower startopposite startoverlay startoverview \
+startparagraph startpositioning startpostponing startprofile startraster \
+startregister startsymbolset startsynchronization starttable starttables \
+starttabulate starttyping startunpacked startتولید startحقیقت \
+startخط‌حاشیه startخط‌متن startرنگ startفشرده startمحیط \
+startمنوی‌پانل startمولفه startنسخه startنقل‌قول startپروژه \
+startپس‌زمینه stopalignment stopbuffer stopcolumns stopcombination \
+stopcomment stopdescription stopdocument stopenumeration stopfigure \
+stopfloattext stopformula stopframedtext stophiding stopitemgroup \
+stoplegend stopline stoplinecorrection stoplinenumbering stoplines \
+stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup stopmarginblock \
+stopnamemakeup stopnarrower stopopposite stopoverlay stopoverview \
+stopparagraph stoppositioning stoppostponing stopprofile stopraster \
+stopsymbolset stopsynchronization stoptable stoptables stoptabulate \
+stoptyping stopunpacked stopتولید stopحقیقت stopخط‌حاشیه \
+stopخط‌متن stopرنگ stopفشرده stopمحیط stopمنوی‌پانل \
+stopمولفه stopنسخه stopنقل‌قول stopپروژه stopپس‌زمینه \
+sub subject subsection subsubject subsubsection \
+subsubsubject synonym title tooltip txt \
+typ underbar underbars useJSscripts useURL \
+useXMLfilter usedirectory useurl آفست‌صفحه آیتم \
+آیتمها آینه اجباربلوکها ارتفاع‌آرایش ارتفاع‌بالا \
+ارتفاع‌برگ ارتفاع‌ته‌برگ ارتفاع‌خط ارتفاع‌سربرگ ارتفاع‌متن \
+ارتفاع‌پایین از ازکارانداختن‌منوی‌پانل استفاده‌بلوکها استفاده‌دستخط‌تایپ \
+استفاده‌رمزینه استفاده‌شکل‌خارجی استفاده‌فرمانها استفاده‌قطعه‌موزیک‌خارجی استفاده‌مدول \
+استفاده‌مدولها استفاده‌مرجعها استفاده‌مسیر استفاده‌نمادها استفاده‌نوشتارخارجی \
+استفاده‌ویژگیها استفاده‌پرونده‌خارجی استفاده‌پرونده‌دستخط‌تایپ استفاده‌پرونده‌های‌خارجی اعدادلاتین \
+افزودن اما امتحان‌نکن انتخاب‌برگ انتخاب‌بلوکها \
+انتخاب‌نسخه انتقال‌به‌توری انتقال‌فرمول انتقال‌کنار‌شناور انجام‌دوباره \
+بارگذاریها بارگذاری‌آرایش بارگذاری‌آیتمها بارگذاری‌ارجاع بارگذاری‌اندازه‌برگ \
+بارگذاری‌باریکتر بارگذاری‌بافر بارگذاری‌بالا بارگذاری‌بخش بارگذاری‌بردباری \
+بارگذاری‌برنامه‌ها بارگذاری‌برگ بارگذاری‌بست بارگذاری‌بلوک بارگذاری‌بلوکهای‌حاشیه \
+بارگذاری‌بلوک‌بخش بارگذاری‌تایپ بارگذاری‌تایپ‌کردن بارگذاری‌تب بارگذاری‌ترتیب \
+بارگذاری‌ترکیب‌ها بارگذاری‌تطابق بارگذاری‌تعریف‌پانوشت بارگذاری‌تنظیم بارگذاری‌تنظیم‌ریاضی \
+بارگذاری‌ته‌برگ بارگذاری‌تورفتگی بارگذاری‌توضیح بارگذاری‌توضیح‌صفحه بارگذاری‌ثبت \
+بارگذاری‌جانشانی بارگذاری‌جدولها بارگذاری‌جدول‌بندی بارگذاری‌خالی بارگذاری‌خروجی \
+بارگذاری‌خط بارگذاری‌خطها بارگذاری‌خطهای‌حاشیه بارگذاری‌خطهای‌سیاه بارگذاری‌خطهای‌متن \
+بارگذاری‌خطهای‌مجموعه‌ستون بارگذاری‌خطها‌ی‌نازک بارگذاری‌درج‌درخطها بارگذاری‌درج‌مخالف بارگذاری‌درون‌حاشیه \
+بارگذاری‌دوران بارگذاری‌دکمه‌ها بارگذاری‌راهنما بارگذاری‌رنگ بارگذاری‌رنگها \
+بارگذاری‌زبان بارگذاری‌ستونها بارگذاری‌سر بارگذاری‌سربرگ بارگذاری‌سرها \
+بارگذاری‌سیستم بارگذاری‌شرح بارگذاری‌شرحها بارگذاری‌شروع‌مجموعه‌ستون بارگذاری‌شروع‌پایان \
+بارگذاری‌شماره بارگذاری‌شماره‌زیرصفحه بارگذاری‌شماره‌سر بارگذاری‌شماره‌صفحه بارگذاری‌شماره‌گذاری \
+بارگذاری‌شماره‌گذاریها بارگذاری‌شماره‌گذاری‌صفحه بارگذاری‌شماره‌گذاری‌پاراگراف بارگذاری‌شماره‌‌گذاری‌خط بارگذاری‌شناور \
+بارگذاری‌شناورها بارگذاری‌شکافتن‌شناورها بارگذاری‌شکلهای‌خارجی بارگذاری‌طرح بارگذاری‌طرح‌بندی \
+بارگذاری‌عرض‌خط بارگذاری‌فاصله‌بین‌خط بارگذاری‌فرمولها بارگذاری‌فضای‌سفید بارگذاری‌فضا‌گذاری \
+بارگذاری‌قالبی بارگذاری‌قلم‌متن بارگذاری‌لوح بارگذاری‌لیست بارگذاری‌لیست‌ترکیبی \
+بارگذاری‌لیست‌مرجع بارگذاری‌مترادفها بارگذاری‌متغیر‌متن بارگذاری‌متن بارگذاری‌متنهای‌بالا \
+بارگذاری‌متن‌سر بارگذاری‌متن‌سربرگ بارگذاری‌متن‌قالبی بارگذاری‌متن‌متنها بارگذاری‌متن‌پانوشت \
+بارگذاری‌متن‌پایین بارگذاری‌مجموعه‌ستون بارگذاری‌مجموعه‌نماد بارگذاری‌محیط‌قلم‌متن بارگذاری‌منوی‌پانل \
+بارگذاری‌مکان‌متن بارگذاری‌مکان‌گذاری بارگذاری‌میدان بارگذاری‌میدانها بارگذاری‌میله‌تطابق \
+بارگذاری‌میله‌زیر بارگذاری‌میله‌پانل بارگذاری‌نسخه‌ها بارگذاری‌نشانه‌شکستن بارگذاری‌نشانه‌گذاری \
+بارگذاری‌نشرها بارگذاری‌نقل بارگذاری‌پاراگرافها بارگذاری‌پانل بارگذاری‌پانوشتها \
+بارگذاری‌پایین بارگذاری‌پرده‌ها بارگذاری‌پرده‌پانل بارگذاری‌پروفایلها بارگذاری‌پرکردن‌خطها \
+بارگذاری‌پس‌زمینه بارگذاری‌پس‌زمینه‌ها بارگذاری‌چیدن بارگذاری‌گذارصفحه بارگذاری‌گروههای‌آیتم \
+بارگذاری‌گروه‌آیتم بازنشانی بازنشانی‌شماره بازنشانی‌متن بازنشانی‌نشانه‌گذاری \
+باگذاری‌متن‌برچسب بدون‌بعد بدون‌بلوکهای‌بیشتر بدون‌تورفتگی بدون‌خط‌بالاوپایین \
+بدون‌خط‌سروته‌برگ بدون‌فایلهای‌بیشتر بدون‌فضا بدون‌فضای‌سفید بدون‌لیست \
+بدون‌نشانه‌گذاری برنامه بروبه بروبه‌جعبه بروبه‌صفحه \
+بروپایین برچسب برچسبها بعد بلند \
+بلوکهای‌پردازش بلوکها‌پنهان بنویس‌بین‌لیست بنویس‌درثبت بنویس‌درلیست‌مرجع \
+بنویس‌در‌لیست تاریخ تاریخ‌جاری تاریخ‌رجوع تایپ \
+تایپ‌بافر تایپ‌پرونده تب ترجمه تطابق \
+تعریف تعریف‌آرایش تعریف‌آرم تعریف‌الگوی‌جدول تعریف‌اندازه‌برگ \
+تعریف‌بافر تعریف‌بخش تعریف‌برنامه تعریف‌برچسب تعریف‌بلوک \
+تعریف‌بلوک‌بخش تعریف‌تایپ تعریف‌تایپ‌کردن تعریف‌تبدیل تعریف‌ترتیب \
+تعریف‌ترکیب تعریف‌تنظیم‌ریاضی تعریف‌توده‌میدان تعریف‌ثبت تعریف‌جانشانی \
+تعریف‌جدول‌بندی تعریف‌جعبه‌‌افقی تعریف‌حرف تعریف‌خالی تعریف‌خروجی \
+تعریف‌خط‌حائل تعریف‌درون‌حاشیه تعریف‌رنگ تعریف‌زیرمیدان تعریف‌سبک \
+تعریف‌سبک‌قلم تعریف‌سر تعریف‌شرح تعریف‌شروع‌پایان تعریف‌شماره‌بندی \
+تعریف‌شمایل‌مرجع تعریف‌شناور تعریف‌شکستن‌ستون تعریف‌شکست‌صفحه تعریف‌طرح‌بندی \
+تعریف‌فرمان تعریف‌قالبی تعریف‌قلم تعریف‌قلم‌خام تعریف‌قلم‌متن \
+تعریف‌لایه تعریف‌لهجه تعریف‌لوح تعریف‌لیست تعریف‌لیست‌ترکیبی \
+تعریف‌لیست‌مرجع تعریف‌مترادفها تعریف‌مترادف‌قلم تعریف‌متغیرمتن تعریف‌متن \
+تعریف‌متن‌قالبی تعریف‌مجموعه‌ستون تعریف‌محیط‌قلم‌بدنه تعریف‌مرجع تعریف‌منوی‌پانل \
+تعریف‌مکان‌متن تعریف‌میدان تعریف‌میدان‌اصلی تعریف‌نسخه تعریف‌نشانه‌گذاری \
+تعریف‌نماد تعریف‌نمادشکل تعریف‌پاراگرافها تعریف‌پروفایل تعریف‌پوشش \
+تعریف‌گروه‌آیتم تعریف‌گروه‌رنگ تعیین‌شماره تعیین‌شماره‌سر تعیین‌متغیر‌متن \
+تعیین‌محتوای‌متن تعیین‌مشخصات‌ثبت تعیین‌مشخصات‌لیست تغییربه‌قلم‌بدنه تغییربه‌قلم‌خام \
+تنظیم‌راست تنظیم‌طرح‌بندی تنظیم‌وسط توجه تورفتگی \
+توری تولید تک ثبت‌زوج ثبت‌کامل \
+جداسازی‌نشانه‌گذاری حاش حرف حرفها حفظ‌بلوکها \
+حقیقت خالی خطهای‌سیاه خطهای‌نازک خطها‌خالی \
+خط‌حاشیه خط‌سیاه خط‌متن خط‌مو خط‌نازک \
+خ‌ا خ‌ع در درج‌آرمها درج‌ثبت \
+درج‌خط درج‌درخط درج‌درخطها درج‌درمتن درج‌درمیدان \
+درج‌در‌بالای‌یکدیگر درج‌در‌توری درج‌راهنما درج‌زیرفرمول درج‌شماره‌سر \
+درج‌شماره‌صفحه درج‌شناور درج‌فرمول درج‌لیست درج‌لیست‌خام \
+درج‌لیست‌مختلط درج‌لیست‌مرجع درج‌متغیرمتن درج‌متن‌سر درج‌پانوشتها \
+درج‌پانوشتهای‌موضعی درج‌چوب‌خط درج‌کنار‌به‌کنار درحاشیه درحاشیه‌دیگر \
+درحاشیه‌راست درحاشیه‌چپ درخارجی درخط درداخلی \
+درراست درصفحه درقالبی درلبه‌راست درلبه‌چپ \
+درمورد درون درپر درچپ دریافت‌بافر \
+دریافت‌شماره دریافت‌نشانه دوران دکمه دکمه‌منو \
+دکمه‌پانل رج رجوع رنگ رنگ‌خاکستری \
+روزهفته ریاضی زبان زبان‌اصلی ستون \
+ستون‌امتحان سر سرپوش‌کوچک‌نه شروع‌آرایش شروع‌آرایش‌ستون \
+شروع‌باریکتر شروع‌بازبینی شروع‌بلوک‌حاشیه شروع‌ترکیب شروع‌تصحیح‌خط \
+شروع‌تطابق شروع‌تنظیم شروع‌تولید شروع‌جدول شروع‌جدولها \
+شروع‌خط شروع‌خطها شروع‌خط‌حاشیه شروع‌خط‌متن شروع‌رنگ \
+شروع‌ستونها شروع‌سراسری شروع‌شماره‌گذاری‌خط شروع‌شکل شروع‌غیر‌فشرده \
+شروع‌فشرده شروع‌متن شروع‌مجموعه‌ستون شروع‌مجموعه‌نماد شروع‌محیط \
+شروع‌مخالف شروع‌موضعی شروع‌مولفه شروع‌مکان‌گذاری شروع‌نسخه \
+شروع‌نقل‌قول شروع‌نوشتار شروع‌پانوشتهای‌موضعی شروع‌پروفایل شروع‌پروژه \
+شروع‌پس‌زمینه شروع‌پوشش شروع‌کد شماره‌افزایش شماره‌زیرصفحه \
+شماره‌زیرفرمول شماره‌سر شماره‌سرجاری شماره‌صفحه شماره‌صفحه‌کامل \
+شماره‌فرمول شماره‌مبدل شماره‌ها شماره‌کاهش شماره‌کل‌صفحه‌ها \
+شکافتن‌شناور شکل‌خارجی صفحه صفحه‌تست صفحه‌زوج \
+صفحه‌پردازش طول‌لیست عبوربلوکها عرض‌آرایش عرض‌برگ \
+عرض‌حاشیه عرض‌حاشیه‌خارجی عرض‌حاشیه‌داخلی عرض‌حاشیه‌راست عرض‌حاشیه‌چپ \
+عرض‌خط عرض‌لبه عرض‌لبه‌خارجی عرض‌لبه‌داخلی عرض‌لبه‌راست \
+عرض‌لبه‌چپ عرض‌لیست عرض‌متن عمق‌صفحه عنوان‌حاشیه \
+فاصله‌بالا فاصله‌ته‌برگ فاصله‌حاشیه فاصله‌حاشیه‌خارجی فاصله‌حاشیه‌داخلی \
+فاصله‌حاشیه‌راست فاصله‌حاشیه‌چپ فاصله‌سربرگ فاصله‌لبه فاصله‌لبه‌خارجی \
+فاصله‌لبه‌داخلی فاصله‌لبه‌راست فاصله‌لبه‌چپ فاصله‌پایین فاصله‌پشت \
+فشرده فضا فضاهای‌ثابت فضای‌بالا فضای‌برش \
+فضای‌ثابت فضای‌سفید فضای‌سفیدصحیح فضای‌پایین فوری‌به‌لیست \
+فوری‌بین‌لیست قالبی لوح‌مقایسه ماه متغیر متن \
+متن‌برچسب متن‌حاشیه متن‌سر متن‌پانوشت محیط \
+مراجعه مرجع مرجع‌صفحه مرجع‌متن مرحله‌سر \
+مسکن معنی‌واحد مقایسه‌گروه‌رنگ مقدارخاکستری مقداررنگ \
+مقیاس منفی منوی‌پانل مولفه مکان \
+مکان‌متن میدان میدانهای‌گزارش میدان‌شبیه‌سازی میدان‌پشته \
+میدان‌کپی میله‌تطابق میله‌رنگ میله‌پانل ناشناس \
+نام‌ماکرو نسخه نسخه‌نشانه نشانه‌گذاری نشانه‌گذاری‌زوج \
+نشر نصب‌زبان نقطه‌ها نقل نقل‌قول \
+نم نماد نمادسر نمادلیست نمایش‌آرایش \
+نمایش‌بارگذاریها نمایش‌بستها نمایش‌توری نمایش‌رنگ نمایش‌شکلهای‌خارجی \
+نمایش‌طرح‌بندی نمایش‌قالب نمایش‌قلم‌بدنه نمایش‌لوح نمایش‌مجموعه‌علامت \
+نمایش‌محیط‌قلم‌بدنه نمایش‌میدانها نمایش‌چاپ نمایش‌گروه‌رنگ نوشتارزوج \
+هدایت پا پابا پانوشت پایان‌آرایش \
+پایان‌آرایش‌ستون پایان‌بازبینی پایان‌بلوک‌حاشیه پایان‌ترکیب پایان‌تصحیح‌خط \
+پایان‌تطابق پایان‌تنظیم پایان‌تولید پایان‌جدول پایان‌جدولها \
+پایان‌خط پایان‌خطها پایان‌خط‌حاشیه پایان‌خط‌متن پایان‌رنگ \
+پایان‌ستونها پایان‌سراسری پایان‌شماره‌گذاری‌خط پایان‌غیرفشرده پایان‌فشرده \
+پایان‌متن پایان‌مجموعه‌ستون پایان‌محیط پایان‌مخالف پایان‌موضعی \
+پایان‌مولفه پایان‌مکان‌گذاری پایان‌نازکتر پایان‌نسخه پایان‌نقل‌قول \
+پایان‌نوشتار پایان‌پانوشتهای‌موضعی پایان‌پروفایل پایان‌پروژه پایان‌پس‌زمینه \
+پایان‌پوشش پایان‌کد پایین پرده پروژه \
+پرکردن‌میدان پس‌زمینه پیروی‌نسخه پیروی‌نسخه‌پروفایل پیروی‌پروفایل \
+چاپ‌ارتفاع‌برگ چاپ‌عرض‌برگ چوبخط چپ‌چین کاغذزوج \
+کسر کشیده کلمه‌حاشیه کلمه‌راست گیره \
+یادداشت یک‌جا یک‌خط
+
keywordclass.context.de=\
Buchstabe Buchstaben CAP Cap \
Caps KAP Kap Kaps MONAT \
@@ -638,156 +1114,6 @@ usaspecialita usaurl useXMLfilter usedirectory usetypescript \
usetypescriptfile vaia vaiabox vaiapagina vaigiu \
valorecolore valoregrigio variabiletesto versione vl
-keywordclass.context.en=\
-CAP Cap Caps Character \
-Characters MONTH Numbers Romannumerals WEEKDAY \
-WORD WORDS Word Words about \
-adaptlayout adding appendix arg at \
-atleftmargin atpage atrightmargin background backspace \
-blackrule blackrules blank bookmark bottomdistance \
-bottomheight bottomspace but button bypassblocks \
-cap chapter character characters chem \
-clip clonefield color colorbar colorvalue \
-column comment comparecolorgroup comparepalet completecombinedlist \
-completelistoffloats completelistofsorts completelistofsynonyms completepagenumber completeregister \
-component convertnumber copyfield correctwhitespace coupledocument \
-coupledregister couplemarking couplepage couplepaper coupleregister \
-crlf currentdate currentheadnumber cutspace date \
-decouplemarking decrementnumber define defineaccent defineblank \
-defineblock definebodyfont definebodyfontDEF definebodyfontREF definebodyfontenvironment \
-definebuffer definecharacter definecolor definecolorgroup definecolumnbreak \
-definecolumnset definecombination definecombinedlist definecommand defineconversion \
-definedescription definedfont defineenumeration definefield definefieldstack \
-definefiguresymbol definefloat definefont definefontfeature definefonthandling \
-definefontstyle definefontsynonym defineframed defineframedtext definehbox \
-definehead defineindentedtext defineinmargin defineinteractionmenu defineitemgroup \
-definelabel definelayer definelayout definelist definelogo \
-definemainfield definemakeup definemarking definemathalignment defineoutput \
-defineoverlay definepagebreak definepalet definepapersize defineparagraphs \
-defineplacement defineprofile defineprogram definerawfont definereference \
-definereferenceformat definereferencelist defineregister definerule definesection \
-definesectionblock definesorting definestartstop definestyle definesubfield \
-definesymbol definesynonyms definetabletemplate definetabulate definetext \
-definetextposition definetextvariable definetype definetypeface definetyping \
-defineversion description determineheadnumber determinelistcharacteristics determineregistercharacteristics \
-dimension disableinteractionmenu domicile donttest edgedistance \
-edgewidth emptylines enumeration environment externalfigure \
-fact field fieldstack fillinfield fillinline \
-fillinrules fillintext fitfield fixedspace fixedspaces \
-followprofile followprofileversion followversion footerdistance footerheight \
-footnote footnotetext forceblocks formulanumber fraction \
-framed framedtext from getbuffer getmarking \
-getnumber godown goto gotobox gotopage \
-graycolor greyvalue grid hairline head \
-headerdistance headerheight headlevel headnumber headsym \
-headtext hideblocks high hl immediatebetweenlist \
-immediatetolist in incrementnumber indentation indenting \
-inframed infull ininner inleft inleftedge \
-inleftmargin inline inmaframed inmargin inneredgedistance \
-inneredgewidth innermargindistance innermarginwidth inothermargin inouter \
-inright inrightedge inrightmargin installlanguage interactionbar \
-interactionbuttons interactionmenu item items its \
-keepblocks label labeling labels labeltext \
-language leftaligned leftedgedistance leftedgewidth leftmargindistance \
-leftmarginwidth leg linethickness listheight listlength \
-listsymbol listwidth loadsorts loadsynonyms logfields \
-lohi low maframed mainlanguage makeupheight \
-makeupwidth mapfontsize mar margindistance marginrule \
-margintext margintitle marginwidth marginword marking \
-markversion mathematics mediaeval menubutton midaligned \
-mirror month moveformula moveongrid movesidefloat \
-name navigating nextsection nocap nodimension \
-noheaderandfooterlines noindenting nolist nomarking nomoreblocks \
-nomorefiles nop nospace note notopandbottomlines \
-nowhitespace numberofsubpages numbers outeredgedistance outeredgewidth \
-outermargindistance outermarginwidth overbar overbars overstrike \
-overstrikes packed page pagedepth pagenumber \
-pageoffset pagereference paperheight paperwidth paragraph \
-part periods placebookmarks placecombinedlist placefloat \
-placefootnotes placeformula placeheadnumber placeheadtext placelegend \
-placelist placelistoffloats placelistofsorts placelistofsynonyms placelocalfootnotes \
-placelogos placeongrid placeontopofeachother placepagenumber placerawlist \
-placereferencelist placeregister placerule placesidebyside placesubformula \
-placetextvariable position positiontext printpaperheight printpaperwidth \
-processblocks processpage product program project \
-publication quotation quote ran redo \
-ref reference referral referraldate referring \
-register remark reservefloat reset resetmarking \
-resetnumber resettextcontent rightaligned rightedgedistance rightedgewidth \
-rightmargindistance rightmarginwidth romannumerals rotate scale \
-screen section seeregister selectblocks selectpaper \
-selectversion setnumber settextcontent settextvariable setupalign \
-setupanswerarea setuparranging setupbackground setupbackgrounds setupblackrules \
-setupblank setupblock setupbodyfont setupbodyfontenvironment setupbottom \
-setupbottomtexts setupbuffer setupbuttons setupcapitals setupcaption \
-setupcaptions setupclipping setupcolor setupcolors setupcolumns \
-setupcolumnset setupcolumnsetlines setupcolumnsetstart setupcombinations setupcombinedlist \
-setupcomment setupdescriptions setupenumerations setupexternalfigures setupfield \
-setupfields setupfillinlines setupfillinrules setupfloat setupfloats \
-setupfloatsplitting setupfonthandling setupfontsynonym setupfooter setupfootertexts \
-setupfootnotedefinition setupfootnotes setupforms setupformulae setupframed \
-setupframedtexts setuphead setupheader setupheadertexts setupheadnumber \
-setupheads setupheadtext setuphyphenmark setupindentedtext setupindenting \
-setupinmargin setupinteraction setupinteractionbar setupinteractionmenu setupinteractionscreen \
-setupinterlinespace setupinterlinespace2 setupitemgroup setupitemizations setupitems \
-setuplabeltext setuplanguage setuplayout setuplegend setuplinenumbering \
-setuplines setuplinewidth setuplist setuplistalternative setupmakeup \
-setupmarginblocks setupmarginrules setupmarking setupmathalignment setupnarrower \
-setupnumber setupnumbering setupoppositeplacing setupoutput setuppagecomment \
-setuppagenumber setuppagenumbering setuppagetransitions setuppalet setuppaper \
-setuppapersize setupparagraphnumbering setupparagraphs setupplacement setuppositioning \
-setupprofiles setupprograms setuppublications setupquote setupreferencelist \
-setupreferencing setupregister setuprotate setuprule setups \
-setupscreens setupsection setupsectionblock setupsorting setupspacing \
-setupstartstop setupstrut setupsubpagenumber setupsymbolset setupsynchronization \
-setupsynchronizationbar setupsynonyms setupsystem setuptab setuptables \
-setuptabulate setuptext setuptextposition setuptextrules setuptexttexts \
-setuptextvariable setupthinrules setuptolerance setuptop setuptoptexts \
-setuptype setuptyping setupunderbar setupurl setupversions \
-setupwhitespace showbodyfont showbodyfontenvironment showcolor showcolorgroup \
-showexternalfigures showfields showframe showgrid showlayout \
-showmakeup showpalet showprint showsetups showstruts \
-showsymbolset someline somewhere sort space \
-splitfloat startalignment startbackground startbuffer startcoding \
-startcolor startcolumnmakeup startcolumns startcolumnset startcombination \
-startcomment startcomponent startdescription startdocument startenumeration \
-startenvironment startfact startfigure startfloattext startformula \
-startframedtext startglobal starthiding startinteractionmenu startitemgroup \
-startlegend startline startlinecorrection startlinenumbering startlines \
-startlocal startlocalenvironment startlocalfootnotes startmakeup startmarginblock \
-startmarginrule startnamemakeup startnarrower startopposite startoverlay \
-startoverview startpacked startparagraph startpositioning startpostponing \
-startproduct startprofile startproject startquotation startraster \
-startregister startsymbolset startsynchronization starttable starttables \
-starttabulate starttext starttextrule starttyping startunpacked \
-startversion stopalignment stopbackground stopbuffer stopcoding \
-stopcolor stopcolumnmakeup stopcolumns stopcolumnset stopcombination \
-stopcomment stopcomponent stopdescription stopdocument stopenumeration \
-stopenvironment stopfact stopfigure stopfloattext stopformula \
-stopframedtext stopglobal stophiding stopinteractionmenu stopitemgroup \
-stoplegend stopline stoplinecorrection stoplinenumbering stoplines \
-stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup stopmarginblock \
-stopmarginrule stopnamemakeup stopnarrower stopopposite stopoverlay \
-stopoverview stoppacked stopparagraph stoppositioning stoppostponing \
-stopproduct stopprofile stopproject stopquotation stopraster \
-stopsymbolset stopsynchronization stoptable stoptables stoptabulate \
-stoptext stoptextrule stoptyping stopunpacked stopversion \
-stretched sub subformulanumber subject subpagenumber \
-subsection subsubject subsubsection subsubsubject switchtobodyfont \
-switchtorawfont sym symbol symoffset synchronizationbar \
-synchronize synonym tab testcolumn testpage \
-tex textheight textreference textrule textvariable \
-textwidth thinrule thinrules title tooltip \
-topdistance topheight topspace totalnumberofpages translate \
-txt typ type typebuffer typefile \
-underbar underbars unitmeaning unknown useJSscripts \
-useURL useXMLfilter useblocks usecommands usedirectory \
-useencoding useexternaldocument useexternalfigure useexternalfile useexternalfiles \
-useexternalsoundtrack usemodule usemodules usereferences usespecials \
-usesymbols usetypescript usetypescriptfile useurl version \
-vl weekday whitespace wordright writebetweenlist \
-writetolist writetoreferencelist writetoregister
-
keywordclass.context.nl=\
CAP Cap Caps Cijfers \
KAP Kap Kaps Letter Letters \
@@ -948,329 +1274,3 @@ volgversie volledigepaginanummer volledigregister voluit weekdag \
wilijnd wiskunde witruimte woonplaats woordrechts \
zetbreedte zethoogte
-keywordclass.context.fr=\
-CAP Cap Caps Caractere \
-Caracteres Chiffresromains JOURSEMAINE MOIS MOT \
-MOTS Mot Mots Numeros a \
-adaptedisposition affectenumero affectevariabletexte ajustechamp alaligne \
-alapage aligneadroite aligneagauche aligneaumilieu appendix \
-arg arriereplan atleftmargin atrightmargin baha \
-barrecouleur barreinteraction barresynchronisation bas bouton \
-boutonmenu boutonsinteraction but cacheblocs cap \
-caractere caracteres champ changepolicebrute changepolicecorps \
-chapter chem chiffresromains citation citer \
-clip clonechamp colonne comment commentaire \
-comparegroupecouleur comparepalette completecombinedlist completelistoffloats completelistofsorts \
-completelistofsynonyms completenumeropage completeregistre composant composeenalinea \
-concernant convertitnumero copitchamp corrigeespaceblanc couleur \
-couleurgrise coupledocument coupledregister couplemarquage couplepapier \
-coupleregistre crlf cutspace dactylographier dans \
-dansautremarge dansborddroit dansbordgauche dansdroite dansgauche \
-dansmarge dansmargedroite dansmargegauche date datecourante \
-daterecommandation de decouplemarquage decrementenumero definebodyfontDEF \
-definebodyfontREF definecombination definedfont definefontfeature definefonthandling \
-defineframed defineframedtext defineindentedtext defineitemgroup definemathalignment \
-defineplacement definetypeface definicaractere definit definitaccent \
-definitbloc definitblocsection definitbuffer definitcalque definitchamp \
-definitchampprincipal definitcommande definitconversion definitcouleur definitdactylo \
-definitdansmarge definitdemarrestoppe definitdescription definitdisposition definitenumeration \
-definitenvironnementpolicecorps definitetiquette definitflottant definitformatreference definitgroupecouleur \
-definithbox definitjeucolonne definitliste definitlisteimbriquee definitlistereference \
-definitlogo definitmakeup definitmarquage definitmenuinteraction definitnotepdp \
-definitpalette definitparagraphes definitpilechamp definitpolice definitpolicebrute \
-definitpolicecorps definitpositiontexte definitprofil definitprogramme definitreference \
-definitregistre definitregle definitrevetement definitsautdecolonne definitsautdepage \
-definitsection definitsortie definitsouschamp definitstyle definitstylepolice \
-definitsymbole definitsymbolefigure definitsynonymepolice definitsynonymes definittabulation \
-definittaillepapier definittete definittexte definittrametableau definittri \
-definittype definitvariabletexte definitversion definitvide demarrealignement \
-demarrearriereplan demarreblocmarge demarrecitation demarreciter demarrecodage \
-demarrecolonnes demarrecombinaison demarrecompoetroite demarrecomposant demarrecorrectionligne \
-demarrecouleur demarredegroupe demarredocument demarreenvironement demarrefigure \
-demarreglobal demarregroupe demarrejeucolonne demarrejeusymboles demarreligne \
-demarreligneregleetexte demarrelignes demarrelocal demarremakeup demarremargereglee \
-demarrenotespdplocales demarrenumerotationligne demarreopposition demarrepositionnement demarreproduit \
-demarreprofil demarreprojet demarreraster demarrerevetement demarresynchronisation \
-demarretableau demarretableaux demarretexte demarreversion demarrevuedensemble \
-deplaceformule deplacesurgrille description determinecaracteristiqueliste determinecaracteristiquesregistre \
-determinenumerotete dimension distancebord distanceborddroit distancebordgauche \
-distanceentete distanceinf distancemarge distancemargedroite distancemargegauche \
-distancepdp distancesup domicile echelle ecran \
-ecritdansliste ecritdanslistereference ecritentreliste ecritregistre el \
-element elements emptylines enumeration environement \
-espace espaceblanc espacefixe espaceinf espacesfixes \
-espacesup etiquette etiquettes etire fait \
-faitreference fichierdactylo figureexterne forceblocs fraction \
-framed framedtext gardeblocs getnumber grille \
-groupe haut hauteureditionpapier hauteurentete hauteurinf \
-hauteurliste hauteurmakeup hauteurpapier hauteurpdp hauteursup \
-hauteurtexte headsym hl immediatebetweenlist immediatetolist \
-inconnu incrementenumero indentation inframed infull \
-inhibemenuinteraction ininner inmframed inneredgedistance inneredgewidth \
-innermargindistance innermarginwidth inouter installelangue joursemaine \
-labeling labeltexte langue langueprincipale largeurbord \
-largeurborddroit largeurbordgauche largeureditionpapier largeurligne largeurliste \
-largeurmakeup largeurmarge largeurmargedroite largeurmargegauche largeurpapier \
-largeurtexte leg ligneh lignenoire ligneregleetexte \
-lignesnoires listesymbole llongueurliste loadsorts loadsynonyms \
-logchamp mapfontsize mar margereglee marquage \
-marquageversion marquepage mathematique mediaeval menuinteraction \
-mframed mois montrecadre montrechamps montrecouleur \
-montredisposition montreedition montreenvironnementpolicecorps montrefiguresexternes montregrille \
-montregroupecouleur montrejeusymboles montremakeup montrepalette montrepolicecorps \
-montrereglages montrestruts motdroit motmarge movesidefloat \
-name navigating nextsection niveautete nocap \
-nombredesouspages nombretotaldepages nommacro nop note \
-notepdp numeroformule numeropage numeros numerosousformule \
-numerotete numerotetecourant obtientmarquage oriente outeredgedistance \
-outeredgewidth outermargindistance outermarginwidth overbar overbars \
-overstrike overstrikes page pagedepth pagedouble \
-pageoffset paragraph part pasplusdeblocs pasplusdefichiers \
-periodes pilechamp placecoteacote placeflottant placeformule \
-placelegende placelesunsaudessusdesautres placeliste placelisteinmbriquee placelistereference \
-placelistoffloats placelistofsorts placelistofsynonyms placelogos placemarquespages \
-placenotespdp placenotespdplocales placenumeropage placenumerotete placerawlist \
-placeregistre placeregle placesousformule placesurgrille placetextetete \
-placevariabletexte position positionnetexte prendbuffer produit \
-programme projet publication qqpart ran \
-raz razmarquage raznumero recommandation ref \
-refait reference referencepage referencetexte reflete \
-register reglages reglealignement reglearrangement reglearriereplan \
-reglearriereplans reglebarreinteraction reglebarresynchronisation reglebloc regleblocmarge \
-regleblocsection regleboutons reglebuffer reglecapitales reglechamp \
-reglechamps regleclipping reglecolonnes reglecombinaisons reglecommentaire \
-reglecommentairepage reglecompoetroite reglecomposeenalinea reglecouleur reglecouleurs \
-regledactylo regledansmarge regledemarrestoppe regledescriptions regledisposition \
-regleecraninteraction regleecrans regleelements regleencadre regleentete \
-regleenumerations regleenvironnementpolicecorps regleepaisseurligne regleespaceblanc regleespacement \
-regleespacementinterligne reglefiguresexternes regleflottant regleflottants regleformulaires \
-regleformules reglegroupeselements regleinf regleinteraction regleintitule \
-regleintitules reglejeucolonne reglejeusymboles reglelabeltexte reglelangue \
-reglelegende reglelignes reglelignesnoires reglelignesreglestexte regleliste \
-reglelisteimbriquee reglelistereference reglemakeup reglemargereglee reglemarquage \
-reglemarquagehyphenation reglemenuinteraction reglenotepdp reglenumero reglenumeropage \
-reglenumerotation reglenumerotationligne reglenumerotationpage reglenumerotationparagraphe reglenumerotete \
-regleoriente reglepalette reglepapier regleparagraphes reglepdp \
-regleplacementopposition reglepolicecorps reglepositionnement reglepositiontexte regleprofils \
-regleprogrammes reglepublications reglereferencage regleregistre regleregle \
-regleremplitligne regleremplitlignesreglees reglesection regleseparationflottant reglesortie \
-reglesouslignage reglesousnumeropage reglestrut reglesup reglesynchronisation \
-reglesynonymes reglesysteme regletab regletableaux regletabulation \
-regletaillepapier regletete regletetes regletexte regletextesentete \
-regletextesinf regletextespdp regletextessup regletextestexte regletextetete \
-regletolerance regletraitsfins regletransitionspage regletri regletype \
-regleurl reglevariabletexte regleversions remplitchamp remplitligne \
-remplitlignesreglees remplittexte reservefloat resettextcontent retourarriere \
-sansalinea sansdimension sansespace sansespaceblanc sanslignesenteteetpdp \
-sanslignessupetinf sansliste sansmarquage sanstest sauteblocs \
-section seeregister selectionneblocs selectionnepapier selectionneversion \
-sensunite separeflottant settext setupanswerarea setupcolumnsetlines \
-setupcolumnsetstart setupfonthandling setupfontsynonym setupframedtexts setupindentedtext \
-setupinterlinespace2 setupitemgroup setuplistalternative setupmathalignment setupplacement \
-sort sousnumeropage startalignment startarriereplan startbuffer \
-startcitation startcolumnmakeup startcolumns startcombination startcomment \
-startcomposant startcouleur startdescription startdocument startenumeration \
-startenvironement startfait startfigure startfloattext startformula \
-startframedtext startgroupe starthiding startitemgroup startlegend \
-startligneregleetexte startline startlinecorrection startlinenumbering startlines \
-startlocal startlocalenvironment startlocalfootnotes startmakeup startmargereglee \
-startmarginblock startmenuinteraction startnamemakeup startnarrower startopposite \
-startoverlay startoverview startparagraph startpositioning startpostponing \
-startproduit startprofile startprojet startregister startsymbolset \
-startsynchronization starttable starttables starttabulate starttyping \
-startunpacked startversion stopalignment stoparriereplan stopbuffer \
-stopcitation stopcolumnmakeup stopcolumns stopcombination stopcomment \
-stopcompoetroite stopcomposant stopcouleur stopdescription stopdocument \
-stopenumeration stopenvironement stopfait stopfigure stopfloattext \
-stopformula stopframedtext stopgroupe stophiding stopitemgroup \
-stoplegend stopligneregleetexte stopline stoplinecorrection stoplinenumbering \
-stoplines stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup \
-stopmargereglee stopmarginblock stopmenuinteraction stopnamemakeup stopnarrower \
-stopopposite stopoverlay stopoverview stopparagraph stoppealignement \
-stoppearriereplan stoppeblocmarge stoppecitation stoppecodage stoppecolonnes \
-stoppecombinaison stoppecomposant stoppecorrectionligne stoppecouleur stoppedegroupe \
-stoppedocument stoppeenvironement stoppeglobal stoppegroupe stoppejeucolonne \
-stoppeligne stoppeligneregleetexte stoppelignes stoppelocal stoppemakeup \
-stoppemargereglee stoppenotespdplocales stoppenumerotationligne stoppeopposition stoppepositionnement \
-stoppeproduit stoppeprofil stoppeprojet stopperaster stopperevetement \
-stoppesynchronisation stoppetableau stoppetableaux stoppetexte stoppeversion \
-stoppevuedensemble stoppositioning stoppostponing stopproduit stopprofile \
-stopprojet stopsymbolset stopsynchronization stoptable stoptables \
-stoptabulate stoptyping stopunpacked stopversion sub \
-subject subsection subsubject subsubsection subsubsubject \
-suggestion suivantprofil suivantversion suivantversionprofil sym \
-symbole synchronise synonym tab tapebuffer \
-testcolumn testpage tete tex textemarge \
-textenotepdp textetete title titremarge traduire \
-traiteblocs traitepage traitfin traitsfins txt \
-typ underbar underbars uneligne useXMLfilter \
-usedirectory usetypescript usetypescriptfile utiliseJSscripts utiliseURL \
-utiliseblocs utilisechemin utilisecommandes utilisedocumentexterne utiliseencodage \
-utilisefichierexterne utilisefichiersexternes utilisefigureexterne utilisemodule utilisemodules \
-utilisepsiteaudioexterne utilisereferences utilisespecialites utilisesymboles utiliseurl \
-va vaalaboite vaalapage vaenbas valeurcouleur \
-valeurgris variabletexte version vide vl
-
-keywordclass.context.pe=\
-CAP Cap Caps Character \
-Characters MONTH Numbers Romannumerals WEEKDAY \
-WORD WORDS Word Words appendix \
-cap chapter chem comment completecombinedlist \
-completelistoffloats completelistofsorts completelistofsynonyms coupledregister crlf \
-definebodyfontDEF definebodyfontREF definedfont definefontfeature definefonthandling \
-defineindentedtext definetypeface description enumeration framedtext \
-indentation inmframed its labeling loadsorts \
-loadsynonyms mapfontsize mediaeval mframed name \
-nextsection nocap overbar overbars overstrike \
-overstrikes paragraph part placelistoffloats placelistofsorts \
-placelistofsynonyms ran register reservefloat resettextcontent \
-section seeregister setupanswerarea setupcapitals setupfonthandling \
-setupfontsynonym setupindentedtext setupinterlinespace2 setuplistalternative setupurl \
-sort startalignment startbuffer startcolumns startcombination \
-startcomment startdescription startdocument startenumeration startfigure \
-startfloattext startformula startframedtext starthiding startitemgroup \
-startlegend startline startlinecorrection startlinenumbering startlines \
-startlocal startlocalenvironment startlocalfootnotes startmakeup startmarginblock \
-startnamemakeup startnarrower startopposite startoverlay startoverview \
-startparagraph startpositioning startpostponing startprofile startraster \
-startregister startsymbolset startsynchronization starttable starttables \
-starttabulate starttyping startunpacked startتولید startحقیقت \
-startخط‌حاشیه startخط‌متن startرنگ startفشرده startمحیط \
-startمنوی‌پانل startمولفه startنسخه startنقل‌قول startپروژه \
-startپس‌زمینه stopalignment stopbuffer stopcolumns stopcombination \
-stopcomment stopdescription stopdocument stopenumeration stopfigure \
-stopfloattext stopformula stopframedtext stophiding stopitemgroup \
-stoplegend stopline stoplinecorrection stoplinenumbering stoplines \
-stoplocal stoplocalenvironment stoplocalfootnotes stopmakeup stopmarginblock \
-stopnamemakeup stopnarrower stopopposite stopoverlay stopoverview \
-stopparagraph stoppositioning stoppostponing stopprofile stopraster \
-stopsymbolset stopsynchronization stoptable stoptables stoptabulate \
-stoptyping stopunpacked stopتولید stopحقیقت stopخط‌حاشیه \
-stopخط‌متن stopرنگ stopفشرده stopمحیط stopمنوی‌پانل \
-stopمولفه stopنسخه stopنقل‌قول stopپروژه stopپس‌زمینه \
-sub subject subsection subsubject subsubsection \
-subsubsubject synonym title tooltip txt \
-typ underbar underbars useJSscripts useURL \
-useXMLfilter usedirectory useurl آفست‌صفحه آیتم \
-آیتمها آینه اجباربلوکها ارتفاع‌آرایش ارتفاع‌بالا \
-ارتفاع‌برگ ارتفاع‌ته‌برگ ارتفاع‌خط ارتفاع‌سربرگ ارتفاع‌متن \
-ارتفاع‌پایین از ازکارانداختن‌منوی‌پانل استفاده‌بلوکها استفاده‌دستخط‌تایپ \
-استفاده‌رمزینه استفاده‌شکل‌خارجی استفاده‌فرمانها استفاده‌قطعه‌موزیک‌خارجی استفاده‌مدول \
-استفاده‌مدولها استفاده‌مرجعها استفاده‌مسیر استفاده‌نمادها استفاده‌نوشتارخارجی \
-استفاده‌ویژگیها استفاده‌پرونده‌خارجی استفاده‌پرونده‌دستخط‌تایپ استفاده‌پرونده‌های‌خارجی اعدادلاتین \
-افزودن اما امتحان‌نکن انتخاب‌برگ انتخاب‌بلوکها \
-انتخاب‌نسخه انتقال‌به‌توری انتقال‌فرمول انتقال‌کنار‌شناور انجام‌دوباره \
-بارگذاریها بارگذاری‌آرایش بارگذاری‌آیتمها بارگذاری‌ارجاع بارگذاری‌اندازه‌برگ \
-بارگذاری‌باریکتر بارگذاری‌بافر بارگذاری‌بالا بارگذاری‌بخش بارگذاری‌بردباری \
-بارگذاری‌برنامه‌ها بارگذاری‌برگ بارگذاری‌بست بارگذاری‌بلوک بارگذاری‌بلوکهای‌حاشیه \
-بارگذاری‌بلوک‌بخش بارگذاری‌تایپ بارگذاری‌تایپ‌کردن بارگذاری‌تب بارگذاری‌ترتیب \
-بارگذاری‌ترکیب‌ها بارگذاری‌تطابق بارگذاری‌تعریف‌پانوشت بارگذاری‌تنظیم بارگذاری‌تنظیم‌ریاضی \
-بارگذاری‌ته‌برگ بارگذاری‌تورفتگی بارگذاری‌توضیح بارگذاری‌توضیح‌صفحه بارگذاری‌ثبت \
-بارگذاری‌جانشانی بارگذاری‌جدولها بارگذاری‌جدول‌بندی بارگذاری‌خالی بارگذاری‌خروجی \
-بارگذاری‌خط بارگذاری‌خطها بارگذاری‌خطهای‌حاشیه بارگذاری‌خطهای‌سیاه بارگذاری‌خطهای‌متن \
-بارگذاری‌خطهای‌مجموعه‌ستون بارگذاری‌خطها‌ی‌نازک بارگذاری‌درج‌درخطها بارگذاری‌درج‌مخالف بارگذاری‌درون‌حاشیه \
-بارگذاری‌دوران بارگذاری‌دکمه‌ها بارگذاری‌راهنما بارگذاری‌رنگ بارگذاری‌رنگها \
-بارگذاری‌زبان بارگذاری‌ستونها بارگذاری‌سر بارگذاری‌سربرگ بارگذاری‌سرها \
-بارگذاری‌سیستم بارگذاری‌شرح بارگذاری‌شرحها بارگذاری‌شروع‌مجموعه‌ستون بارگذاری‌شروع‌پایان \
-بارگذاری‌شماره بارگذاری‌شماره‌زیرصفحه بارگذاری‌شماره‌سر بارگذاری‌شماره‌صفحه بارگذاری‌شماره‌گذاری \
-بارگذاری‌شماره‌گذاریها بارگذاری‌شماره‌گذاری‌صفحه بارگذاری‌شماره‌گذاری‌پاراگراف بارگذاری‌شماره‌‌گذاری‌خط بارگذاری‌شناور \
-بارگذاری‌شناورها بارگذاری‌شکافتن‌شناورها بارگذاری‌شکلهای‌خارجی بارگذاری‌طرح بارگذاری‌طرح‌بندی \
-بارگذاری‌عرض‌خط بارگذاری‌فاصله‌بین‌خط بارگذاری‌فرمولها بارگذاری‌فضای‌سفید بارگذاری‌فضا‌گذاری \
-بارگذاری‌قالبی بارگذاری‌قلم‌متن بارگذاری‌لوح بارگذاری‌لیست بارگذاری‌لیست‌ترکیبی \
-بارگذاری‌لیست‌مرجع بارگذاری‌مترادفها بارگذاری‌متغیر‌متن بارگذاری‌متن بارگذاری‌متنهای‌بالا \
-بارگذاری‌متن‌سر بارگذاری‌متن‌سربرگ بارگذاری‌متن‌قالبی بارگذاری‌متن‌متنها بارگذاری‌متن‌پانوشت \
-بارگذاری‌متن‌پایین بارگذاری‌مجموعه‌ستون بارگذاری‌مجموعه‌نماد بارگذاری‌محیط‌قلم‌متن بارگذاری‌منوی‌پانل \
-بارگذاری‌مکان‌متن بارگذاری‌مکان‌گذاری بارگذاری‌میدان بارگذاری‌میدانها بارگذاری‌میله‌تطابق \
-بارگذاری‌میله‌زیر بارگذاری‌میله‌پانل بارگذاری‌نسخه‌ها بارگذاری‌نشانه‌شکستن بارگذاری‌نشانه‌گذاری \
-بارگذاری‌نشرها بارگذاری‌نقل بارگذاری‌پاراگرافها بارگذاری‌پانل بارگذاری‌پانوشتها \
-بارگذاری‌پایین بارگذاری‌پرده‌ها بارگذاری‌پرده‌پانل بارگذاری‌پروفایلها بارگذاری‌پرکردن‌خطها \
-بارگذاری‌پس‌زمینه بارگذاری‌پس‌زمینه‌ها بارگذاری‌چیدن بارگذاری‌گذارصفحه بارگذاری‌گروههای‌آیتم \
-بارگذاری‌گروه‌آیتم بازنشانی بازنشانی‌شماره بازنشانی‌متن بازنشانی‌نشانه‌گذاری \
-باگذاری‌متن‌برچسب بدون‌بعد بدون‌بلوکهای‌بیشتر بدون‌تورفتگی بدون‌خط‌بالاوپایین \
-بدون‌خط‌سروته‌برگ بدون‌فایلهای‌بیشتر بدون‌فضا بدون‌فضای‌سفید بدون‌لیست \
-بدون‌نشانه‌گذاری برنامه بروبه بروبه‌جعبه بروبه‌صفحه \
-بروپایین برچسب برچسبها بعد بلند \
-بلوکهای‌پردازش بلوکها‌پنهان بنویس‌بین‌لیست بنویس‌درثبت بنویس‌درلیست‌مرجع \
-بنویس‌در‌لیست تاریخ تاریخ‌جاری تاریخ‌رجوع تایپ \
-تایپ‌بافر تایپ‌پرونده تب ترجمه تطابق \
-تعریف تعریف‌آرایش تعریف‌آرم تعریف‌الگوی‌جدول تعریف‌اندازه‌برگ \
-تعریف‌بافر تعریف‌بخش تعریف‌برنامه تعریف‌برچسب تعریف‌بلوک \
-تعریف‌بلوک‌بخش تعریف‌تایپ تعریف‌تایپ‌کردن تعریف‌تبدیل تعریف‌ترتیب \
-تعریف‌ترکیب تعریف‌تنظیم‌ریاضی تعریف‌توده‌میدان تعریف‌ثبت تعریف‌جانشانی \
-تعریف‌جدول‌بندی تعریف‌جعبه‌‌افقی تعریف‌حرف تعریف‌خالی تعریف‌خروجی \
-تعریف‌خط‌حائل تعریف‌درون‌حاشیه تعریف‌رنگ تعریف‌زیرمیدان تعریف‌سبک \
-تعریف‌سبک‌قلم تعریف‌سر تعریف‌شرح تعریف‌شروع‌پایان تعریف‌شماره‌بندی \
-تعریف‌شمایل‌مرجع تعریف‌شناور تعریف‌شکستن‌ستون تعریف‌شکست‌صفحه تعریف‌طرح‌بندی \
-تعریف‌فرمان تعریف‌قالبی تعریف‌قلم تعریف‌قلم‌خام تعریف‌قلم‌متن \
-تعریف‌لایه تعریف‌لهجه تعریف‌لوح تعریف‌لیست تعریف‌لیست‌ترکیبی \
-تعریف‌لیست‌مرجع تعریف‌مترادفها تعریف‌مترادف‌قلم تعریف‌متغیرمتن تعریف‌متن \
-تعریف‌متن‌قالبی تعریف‌مجموعه‌ستون تعریف‌محیط‌قلم‌بدنه تعریف‌مرجع تعریف‌منوی‌پانل \
-تعریف‌مکان‌متن تعریف‌میدان تعریف‌میدان‌اصلی تعریف‌نسخه تعریف‌نشانه‌گذاری \
-تعریف‌نماد تعریف‌نمادشکل تعریف‌پاراگرافها تعریف‌پروفایل تعریف‌پوشش \
-تعریف‌گروه‌آیتم تعریف‌گروه‌رنگ تعیین‌شماره تعیین‌شماره‌سر تعیین‌متغیر‌متن \
-تعیین‌محتوای‌متن تعیین‌مشخصات‌ثبت تعیین‌مشخصات‌لیست تغییربه‌قلم‌بدنه تغییربه‌قلم‌خام \
-تنظیم‌راست تنظیم‌طرح‌بندی تنظیم‌وسط توجه تورفتگی \
-توری تولید تک ثبت‌زوج ثبت‌کامل \
-جداسازی‌نشانه‌گذاری حاش حرف حرفها حفظ‌بلوکها \
-حقیقت خالی خطهای‌سیاه خطهای‌نازک خطها‌خالی \
-خط‌حاشیه خط‌سیاه خط‌متن خط‌مو خط‌نازک \
-خ‌ا خ‌ع در درج‌آرمها درج‌ثبت \
-درج‌خط درج‌درخط درج‌درخطها درج‌درمتن درج‌درمیدان \
-درج‌در‌بالای‌یکدیگر درج‌در‌توری درج‌راهنما درج‌زیرفرمول درج‌شماره‌سر \
-درج‌شماره‌صفحه درج‌شناور درج‌فرمول درج‌لیست درج‌لیست‌خام \
-درج‌لیست‌مختلط درج‌لیست‌مرجع درج‌متغیرمتن درج‌متن‌سر درج‌پانوشتها \
-درج‌پانوشتهای‌موضعی درج‌چوب‌خط درج‌کنار‌به‌کنار درحاشیه درحاشیه‌دیگر \
-درحاشیه‌راست درحاشیه‌چپ درخارجی درخط درداخلی \
-درراست درصفحه درقالبی درلبه‌راست درلبه‌چپ \
-درمورد درون درپر درچپ دریافت‌بافر \
-دریافت‌شماره دریافت‌نشانه دوران دکمه دکمه‌منو \
-دکمه‌پانل رج رجوع رنگ رنگ‌خاکستری \
-روزهفته ریاضی زبان زبان‌اصلی ستون \
-ستون‌امتحان سر سرپوش‌کوچک‌نه شروع‌آرایش شروع‌آرایش‌ستون \
-شروع‌باریکتر شروع‌بازبینی شروع‌بلوک‌حاشیه شروع‌ترکیب شروع‌تصحیح‌خط \
-شروع‌تطابق شروع‌تنظیم شروع‌تولید شروع‌جدول شروع‌جدولها \
-شروع‌خط شروع‌خطها شروع‌خط‌حاشیه شروع‌خط‌متن شروع‌رنگ \
-شروع‌ستونها شروع‌سراسری شروع‌شماره‌گذاری‌خط شروع‌شکل شروع‌غیر‌فشرده \
-شروع‌فشرده شروع‌متن شروع‌مجموعه‌ستون شروع‌مجموعه‌نماد شروع‌محیط \
-شروع‌مخالف شروع‌موضعی شروع‌مولفه شروع‌مکان‌گذاری شروع‌نسخه \
-شروع‌نقل‌قول شروع‌نوشتار شروع‌پانوشتهای‌موضعی شروع‌پروفایل شروع‌پروژه \
-شروع‌پس‌زمینه شروع‌پوشش شروع‌کد شماره‌افزایش شماره‌زیرصفحه \
-شماره‌زیرفرمول شماره‌سر شماره‌سرجاری شماره‌صفحه شماره‌صفحه‌کامل \
-شماره‌فرمول شماره‌مبدل شماره‌ها شماره‌کاهش شماره‌کل‌صفحه‌ها \
-شکافتن‌شناور شکل‌خارجی صفحه صفحه‌تست صفحه‌زوج \
-صفحه‌پردازش طول‌لیست عبوربلوکها عرض‌آرایش عرض‌برگ \
-عرض‌حاشیه عرض‌حاشیه‌خارجی عرض‌حاشیه‌داخلی عرض‌حاشیه‌راست عرض‌حاشیه‌چپ \
-عرض‌خط عرض‌لبه عرض‌لبه‌خارجی عرض‌لبه‌داخلی عرض‌لبه‌راست \
-عرض‌لبه‌چپ عرض‌لیست عرض‌متن عمق‌صفحه عنوان‌حاشیه \
-فاصله‌بالا فاصله‌ته‌برگ فاصله‌حاشیه فاصله‌حاشیه‌خارجی فاصله‌حاشیه‌داخلی \
-فاصله‌حاشیه‌راست فاصله‌حاشیه‌چپ فاصله‌سربرگ فاصله‌لبه فاصله‌لبه‌خارجی \
-فاصله‌لبه‌داخلی فاصله‌لبه‌راست فاصله‌لبه‌چپ فاصله‌پایین فاصله‌پشت \
-فشرده فضا فضاهای‌ثابت فضای‌بالا فضای‌برش \
-فضای‌ثابت فضای‌سفید فضای‌سفیدصحیح فضای‌پایین فوری‌به‌لیست \
-فوری‌بین‌لیست قالبی لوح‌مقایسه ماه متغیر متن \
-متن‌برچسب متن‌حاشیه متن‌سر متن‌پانوشت محیط \
-مراجعه مرجع مرجع‌صفحه مرجع‌متن مرحله‌سر \
-مسکن معنی‌واحد مقایسه‌گروه‌رنگ مقدارخاکستری مقداررنگ \
-مقیاس منفی منوی‌پانل مولفه مکان \
-مکان‌متن میدان میدانهای‌گزارش میدان‌شبیه‌سازی میدان‌پشته \
-میدان‌کپی میله‌تطابق میله‌رنگ میله‌پانل ناشناس \
-نام‌ماکرو نسخه نسخه‌نشانه نشانه‌گذاری نشانه‌گذاری‌زوج \
-نشر نصب‌زبان نقطه‌ها نقل نقل‌قول \
-نم نماد نمادسر نمادلیست نمایش‌آرایش \
-نمایش‌بارگذاریها نمایش‌بستها نمایش‌توری نمایش‌رنگ نمایش‌شکلهای‌خارجی \
-نمایش‌طرح‌بندی نمایش‌قالب نمایش‌قلم‌بدنه نمایش‌لوح نمایش‌مجموعه‌علامت \
-نمایش‌محیط‌قلم‌بدنه نمایش‌میدانها نمایش‌چاپ نمایش‌گروه‌رنگ نوشتارزوج \
-هدایت پا پابا پانوشت پایان‌آرایش \
-پایان‌آرایش‌ستون پایان‌بازبینی پایان‌بلوک‌حاشیه پایان‌ترکیب پایان‌تصحیح‌خط \
-پایان‌تطابق پایان‌تنظیم پایان‌تولید پایان‌جدول پایان‌جدولها \
-پایان‌خط پایان‌خطها پایان‌خط‌حاشیه پایان‌خط‌متن پایان‌رنگ \
-پایان‌ستونها پایان‌سراسری پایان‌شماره‌گذاری‌خط پایان‌غیرفشرده پایان‌فشرده \
-پایان‌متن پایان‌مجموعه‌ستون پایان‌محیط پایان‌مخالف پایان‌موضعی \
-پایان‌مولفه پایان‌مکان‌گذاری پایان‌نازکتر پایان‌نسخه پایان‌نقل‌قول \
-پایان‌نوشتار پایان‌پانوشتهای‌موضعی پایان‌پروفایل پایان‌پروژه پایان‌پس‌زمینه \
-پایان‌پوشش پایان‌کد پایین پرده پروژه \
-پرکردن‌میدان پس‌زمینه پیروی‌نسخه پیروی‌نسخه‌پروفایل پیروی‌پروفایل \
-چاپ‌ارتفاع‌برگ چاپ‌عرض‌برگ چوبخط چپ‌چین کاغذزوج \
-کسر کشیده کلمه‌حاشیه کلمه‌راست گیره \
-یادداشت یک‌جا یک‌خط
-
diff --git a/context/data/scite/scite-context-data-metapost.properties b/context/data/scite/scite-context-data-metapost.properties
index ccdaf70b5..a0a53e600 100644
--- a/context/data/scite/scite-context-data-metapost.properties
+++ b/context/data/scite/scite-context-data-metapost.properties
@@ -1,48 +1,3 @@
-keywordclass.metapost.shortcuts=\
-.. ... -- --- \
-&
-
-keywordclass.metapost.tex=\
-btex etex verbatimtex
-
-keywordclass.metapost.commands=\
-beginfig endfig rotatedaround reflectedabout \
-arrowhead currentpen currentpicture cuttings defaultfont \
-extra_beginfig extra_endfig ditto EOF down \
-evenly fullcircle halfcircle identity in \
-left origin pensquare quartercircle right \
-unitsquare up withdots abs bbox \
-ceiling center cutafter cutbefore dir \
-directionpoint div dotprod intersectionpoint inverse \
-mod round unitvector whatever cutdraw \
-draw drawarrow drawdblarrow fill filldraw \
-drawdot loggingall interact tracingall tracingnone \
-pickup undraw unfill unfilldraw buildcycle \
-dashpattern decr dotlabel dotlabels drawoptions \
-incr label labels max min \
-thelabel z beginchar blacker capsule_end \
-change_width define_blacker_pixels define_corrected_pixels define_good_x_pixels define_good_y_pixels \
-define_horizontal_corrected_pixels define_pixels define_whole_blacker_pixels define_whole_pixels define_whole_vertical_blacker_pixels \
-define_whole_vertical_pixels endchar extra_beginchar extra_endchar extra_setup \
-font_coding_scheme clearxy clearit clearpen shipit \
-font_extra_space exitunless relax hide gobble \
-gobbled stop blankpicture counterclockwise tensepath \
-takepower direction softjoin makelabel rotatedabout \
-flex superellipse erase image nullpen \
-savepen clearpen penpos penlabels range \
-numtok thru z laboff bye \
-red green blue cyan magenta \
-yellow black white background graypart \
-graycolor mm pt dd bp \
-cm pc cc in
-
-keywordclass.metapost.internals=\
-mitered rounded beveled butt \
-squared eps epsilon infinity bboxmargin \
-ahlength ahangle labeloffset dotlabeldiam defaultpen \
-defaultscale join_radius pen_lft pen_rt pen_top \
-pen_bot
-
keywordclass.metapost.primitives=\
charcode day linecap linejoin \
miterlimit month pausing prologues showstopping \
@@ -96,3 +51,48 @@ graycolor colormodel graypart dashpart penpart \
stroked filled textual clipped bounded \
expandafter
+keywordclass.metapost.tex=\
+btex etex verbatimtex
+
+keywordclass.metapost.shortcuts=\
+.. ... -- --- \
+&
+
+keywordclass.metapost.internals=\
+mitered rounded beveled butt \
+squared eps epsilon infinity bboxmargin \
+ahlength ahangle labeloffset dotlabeldiam defaultpen \
+defaultscale join_radius pen_lft pen_rt pen_top \
+pen_bot
+
+keywordclass.metapost.commands=\
+beginfig endfig rotatedaround reflectedabout \
+arrowhead currentpen currentpicture cuttings defaultfont \
+extra_beginfig extra_endfig ditto EOF down \
+evenly fullcircle halfcircle identity in \
+left origin pensquare quartercircle right \
+unitsquare up withdots abs bbox \
+ceiling center cutafter cutbefore dir \
+directionpoint div dotprod intersectionpoint inverse \
+mod round unitvector whatever cutdraw \
+draw drawarrow drawdblarrow fill filldraw \
+drawdot loggingall interact tracingall tracingnone \
+pickup undraw unfill unfilldraw buildcycle \
+dashpattern decr dotlabel dotlabels drawoptions \
+incr label labels max min \
+thelabel z beginchar blacker capsule_end \
+change_width define_blacker_pixels define_corrected_pixels define_good_x_pixels define_good_y_pixels \
+define_horizontal_corrected_pixels define_pixels define_whole_blacker_pixels define_whole_pixels define_whole_vertical_blacker_pixels \
+define_whole_vertical_pixels endchar extra_beginchar extra_endchar extra_setup \
+font_coding_scheme clearxy clearit clearpen shipit \
+font_extra_space exitunless relax hide gobble \
+gobbled stop blankpicture counterclockwise tensepath \
+takepower direction softjoin makelabel rotatedabout \
+flex superellipse erase image nullpen \
+savepen clearpen penpos penlabels range \
+numtok thru z laboff bye \
+red green blue cyan magenta \
+yellow black white background graypart \
+graycolor mm pt dd bp \
+cm pc cc in
+
diff --git a/context/data/scite/scite-context-data-tex.properties b/context/data/scite/scite-context-data-tex.properties
index 81fa85413..fa4c60370 100644
--- a/context/data/scite/scite-context-data-tex.properties
+++ b/context/data/scite/scite-context-data-tex.properties
@@ -23,6 +23,14 @@ pdftrailer pdfuniformdeviate pdfuniqueresname pdfvorigin pdfxform \
pdfxformattr pdfxformname pdfxformresources pdfximage pdfximagebbox \
quitvmode rightmarginkern rpcode tagcode
+keywordclass.tex.xetex=\
+XeTeXversion
+
+keywordclass.tex.aleph=\
+AlephVersion Alephminorversion Alephrevision Alephversion \
+Omegaminorversion Omegarevision Omegaversion boxdir pagebottomoffset \
+pagerightoffset
+
keywordclass.tex.luatex=\
Udelcode Udelcodenum Udelimiter Udelimiterover \
Udelimiterunder Umathaccent Umathaxis Umathbinbinspacing Umathbinclosespacing \
@@ -205,22 +213,6 @@ vskip vsplit vss vtop wd \
widowpenalties widowpenalty write xdef xleaders \
xspaceskip year
-keywordclass.tex.omega=\
-OmegaVersion bodydir chardp charht \
-charit charwd leftghost localbrokenpenalty localinterlinepenalty \
-localleftbox localrightbox mathdir odelcode odelimiter \
-omathaccent omathchar omathchardef omathcode oradical \
-pagedir pageheight pagewidth pardir rightghost \
-textdir
-
-keywordclass.tex.xetex=\
-XeTeXversion
-
-keywordclass.tex.aleph=\
-AlephVersion Alephminorversion Alephrevision Alephversion \
-Omegaminorversion Omegarevision Omegaversion boxdir pagebottomoffset \
-pagerightoffset
-
keywordclass.tex.etex=\
botmarks clubpenalties currentgrouplevel currentgrouptype \
currentifbranch currentiflevel currentiftype detokenize dimexpr \
@@ -236,3 +228,11 @@ showtokens splitbotmarks splitdiscards splitfirstmarks topmarks \
tracingassigns tracinggroups tracingifs tracingnesting tracingscantokens \
unexpanded unless widowpenalties
+keywordclass.tex.omega=\
+OmegaVersion bodydir chardp charht \
+charit charwd leftghost localbrokenpenalty localinterlinepenalty \
+localleftbox localrightbox mathdir odelcode odelimiter \
+omathaccent omathchar omathchardef omathcode oradical \
+pagedir pageheight pagewidth pardir rightghost \
+textdir
+
diff --git a/scripts/context/lua/mtx-rsync.lua b/scripts/context/lua/mtx-rsync.lua
index b549d5bcb..288419431 100644
--- a/scripts/context/lua/mtx-rsync.lua
+++ b/scripts/context/lua/mtx-rsync.lua
@@ -79,7 +79,7 @@ else
end
function rsynccommand(dryrun,recurse,origin,target)
- local command = "rsync -ptlv "
+ local command = "rsync -ptlva "
if dryrun then
command = command .. "-n "
end
@@ -104,6 +104,11 @@ function rsync.run(origin,target,message,recurse)
end
origin = cleanup(origin)
target = cleanup(target)
+ local path = gsub(target,"^/cygdrive/(.)","%1:")
+ if not lfs.isdir(path) then
+ report_message("creating target dir %s",path)
+ dir.makedirs(path) -- as rsync only creates them when --recursive
+ end
if message then
report_message(message)
end
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 6a894df01..3245a538c 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -54,6 +54,8 @@ if not modules then modules = { } end modules ['mtxrun'] = {
do -- create closure to overcome 200 locals limit
+package.loaded["l-lua"] = package.loaded["l-lua"] or true
+
-- original size: 2956, stripped down to: 1509
if not modules then modules={} end modules ['l-lua']={
@@ -132,7 +134,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25424, stripped down to: 14069
+package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
+
+-- original size: 25597, stripped down to: 14149
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -183,8 +187,10 @@ patterns.utftype=utftype
patterns.utfoffset=utfoffset
local utf8char=patterns.utf8one+patterns.utf8two+patterns.utf8three+patterns.utf8four
local validutf8char=utf8char^0*endofstring*Cc(true)+Cc(false)
+local utf8character=P(1)*R("\128\191")^0
patterns.utf8=utf8char
patterns.utf8char=utf8char
+patterns.utf8character=utf8character
patterns.validutf8=validutf8char
patterns.validutf8char=validutf8char
local eol=S("\n\r")
@@ -698,6 +704,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-function"] = package.loaded["l-function"] or true
+
-- original size: 361, stripped down to: 322
if not modules then modules={} end modules ['l-functions']={
@@ -715,6 +723,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-string"] = package.loaded["l-string"] or true
+
-- original size: 5490, stripped down to: 2685
if not modules then modules={} end modules ['l-string']={
@@ -814,6 +824,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-table"] = package.loaded["l-table"] or true
+
-- original size: 29069, stripped down to: 19493
if not modules then modules={} end modules ['l-table']={
@@ -1669,6 +1681,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-io"] = package.loaded["l-io"] or true
+
-- original size: 8799, stripped down to: 6325
if not modules then modules={} end modules ['l-io']={
@@ -1983,6 +1997,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-number"] = package.loaded["l-number"] or true
+
-- original size: 4851, stripped down to: 2828
if not modules then modules={} end modules ['l-number']={
@@ -2126,6 +2142,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-set"] = package.loaded["l-set"] or true
+
-- original size: 1923, stripped down to: 1133
if not modules then modules={} end modules ['l-set']={
@@ -2197,7 +2215,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 13891, stripped down to: 8591
+package.loaded["l-os"] = package.loaded["l-os"] or true
+
+-- original size: 13687, stripped down to: 8406
if not modules then modules={} end modules ['l-os']={
version=1.001,
@@ -2319,18 +2339,10 @@ function os.runtime()
end
os.resolvers=os.resolvers or {}
local resolvers=os.resolvers
-local osmt=getmetatable(os) or { __index=function(t,k)
- local v=function()
- print(format("function os.%s in namespace is undefined"))
- end
- t[k]=v
- return v
-end }
-local osix=osmt.__index
-osmt.__index=function(t,k)
- return (resolvers[k] or osix)(t,k)
-end
-setmetatable(os,osmt)
+setmetatable(os,{ __index=function(t,k)
+ local r=resolvers[k]
+ return r and r(t,k) or nil
+end })
local name,platform=os.name or "linux",os.getenv("MTX_PLATFORM") or ""
local function guess()
local architecture=os.resultof("uname -m") or ""
@@ -2525,6 +2537,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-file"] = package.loaded["l-file"] or true
+
-- original size: 16516, stripped down to: 8942
if not modules then modules={} end modules ['l-file']={
@@ -2873,6 +2887,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-md5"] = package.loaded["l-md5"] or true
+
-- original size: 3684, stripped down to: 2019
if not modules then modules={} end modules ['l-md5']={
@@ -2949,6 +2965,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-url"] = package.loaded["l-url"] or true
+
-- original size: 11806, stripped down to: 5417
if not modules then modules={} end modules ['l-url']={
@@ -3153,6 +3171,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-dir"] = package.loaded["l-dir"] or true
+
-- original size: 13035, stripped down to: 8133
if not modules then modules={} end modules ['l-dir']={
@@ -3488,6 +3508,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-boolean"] = package.loaded["l-boolean"] or true
+
-- original size: 1822, stripped down to: 1544
if not modules then modules={} end modules ['l-boolean']={
@@ -3560,7 +3582,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25422, stripped down to: 11909
+package.loaded["l-unicode"] = package.loaded["l-unicode"] or true
+
+-- original size: 26810, stripped down to: 11943
if not modules then modules={} end modules ['l-unicode']={
version=1.001,
@@ -3575,7 +3599,7 @@ utf.values=utf.values or string.utfvalues
local type=type
local char,byte,format,sub=string.char,string.byte,string.format,string.sub
local concat=table.concat
-local P,C,R,Cs,Ct,Cmt,Cc,Carg=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg
+local P,C,R,Cs,Ct,Cmt,Cc,Carg,Cp=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg,lpeg.Cp
local lpegmatch,patterns=lpeg.match,lpeg.patterns
local bytepairs=string.bytepairs
local finder=lpeg.finder
@@ -4030,19 +4054,24 @@ if not utf.characters then
string.utfcharacters=utf.characters
end
if not utf.values then
- local wrap,yield,gmatch=coroutine.wrap,coroutine.yield,string.gmatch
+ local find=string.find
local dummy=function()
end
function utf.values(str)
local n=#str
if n==0 then
- return wrap(dummy)
+ return dummy
elseif n==1 then
- return wrap(function() yield(utfbyte(str)) end)
- else
- return wrap(function() for s in gmatch(str,".[\128-\191]*") do
- yield(utfbyte(s))
- end end)
+ return function() return utfbyte(str) end
+ else
+ local p=1
+ return function()
+ local b,e=find(str,".[\128-\191]*",p)
+ if b then
+ p=e+1
+ return utfbyte(sub(str,b,e))
+ end
+ end
end
end
string.utfvalues=utf.values
@@ -4053,6 +4082,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-math"] = package.loaded["l-math"] or true
+
-- original size: 915, stripped down to: 836
if not modules then modules={} end modules ['l-math']={
@@ -4088,6 +4119,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tab"] = package.loaded["util-tab"] or true
+
-- original size: 10334, stripped down to: 6756
if not modules then modules={} end modules ['util-tab']={
@@ -4383,6 +4416,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-sto"] = package.loaded["util-sto"] or true
+
-- original size: 4270, stripped down to: 2989
if not modules then modules={} end modules ['util-sto']={
@@ -4527,6 +4562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-str"] = package.loaded["util-str"] or true
+
-- original size: 12069, stripped down to: 7814
if not modules then modules={} end modules ['util-str']={
@@ -4826,7 +4863,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 7245, stripped down to: 5822
+package.loaded["util-mrg"] = package.loaded["util-mrg"] or true
+
+-- original size: 7447, stripped down to: 6001
if not modules then modules={} end modules ['util-mrg']={
version=1.001,
@@ -4858,6 +4897,7 @@ local m_report=[[
-- original bytes : %s
-- stripped bytes : %s
]]
+local m_preloaded=[[package.loaded[%q] = package.loaded[%q] or true]]
local function self_fake()
return m_faked
end
@@ -4949,11 +4989,13 @@ local function self_libs(libs,list)
local fullname=foundpath.."/"..lib
if lfs.isfile(fullname) then
utilities.report("merge: using library %s",fullname)
+ local preloaded=file.nameonly(lib)
local data=io.loaddata(fullname,true)
original=original+#data
local data,delta=self_compact(data)
right[#right+1]=lib
result[#result+1]=m_begin_closure
+ result[#result+1]=format(m_preloaded,preloaded,preloaded)
result[#result+1]=data
result[#result+1]=m_end_closure
stripped=stripped+delta
@@ -4991,6 +5033,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-lua"] = package.loaded["util-lua"] or true
+
-- original size: 12411, stripped down to: 8581
if not modules then modules={} end modules ['util-lua']={
@@ -5274,7 +5318,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 14514, stripped down to: 10374
+package.loaded["util-prs"] = package.loaded["util-prs"] or true
+
+-- original size: 15913, stripped down to: 11403
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -5285,13 +5331,14 @@ if not modules then modules={} end modules ['util-prs']={
}
local lpeg,table,string=lpeg,table,string
local P,R,V,S,C,Ct,Cs,Carg,Cc,Cg,Cf,Cp=lpeg.P,lpeg.R,lpeg.V,lpeg.S,lpeg.C,lpeg.Ct,lpeg.Cs,lpeg.Carg,lpeg.Cc,lpeg.Cg,lpeg.Cf,lpeg.Cp
-local lpegmatch,patterns=lpeg.match,lpeg.patterns
+local lpegmatch,lpegpatterns=lpeg.match,lpeg.patterns
local concat,format,gmatch,find=table.concat,string.format,string.gmatch,string.find
local tostring,type,next,rawset=tostring,type,next,rawset
utilities=utilities or {}
-utilities.parsers=utilities.parsers or {}
-local parsers=utilities.parsers
-parsers.patterns=parsers.patterns or {}
+local parsers=utilities.parsers or {}
+utilities.parsers=parsers
+local patterns=parsers.patterns or {}
+parsers.patterns=patterns
local setmetatableindex=table.setmetatableindex
local sortedhash=table.sortedhash
local digit=R("09")
@@ -5304,15 +5351,15 @@ local lparent=P("(")
local rparent=P(")")
local period=S(".")
local punctuation=S(".,:;")
-local spacer=patterns.spacer
-local whitespace=patterns.whitespace
-local newline=patterns.newline
-local anything=patterns.anything
-local endofstring=patterns.endofstring
+local spacer=lpegpatterns.spacer
+local whitespace=lpegpatterns.whitespace
+local newline=lpegpatterns.newline
+local anything=lpegpatterns.anything
+local endofstring=lpegpatterns.endofstring
local nobrace=1-(lbrace+rbrace )
local noparent=1-(lparent+rparent)
local escape,left,right=P("\\"),P('{'),P('}')
-patterns.balanced=P {
+lpegpatterns.balanced=P {
[1]=((escape*(left+right))+(1-(left+right))+V(2))^0,
[2]=left*V(1)*right
}
@@ -5321,11 +5368,11 @@ local nestedparents=P { lparent*(noparent+V(1))^0*rparent }
local spaces=space^0
local argument=Cs((lbrace/"")*((nobrace+nestedbraces)^0)*(rbrace/""))
local content=(1-endofstring)^0
-patterns.nestedbraces=nestedbraces
-patterns.nestedparents=nestedparents
-patterns.nested=nestedbraces
-patterns.argument=argument
-patterns.content=content
+lpegpatterns.nestedbraces=nestedbraces
+lpegpatterns.nestedparents=nestedparents
+lpegpatterns.nested=nestedbraces
+lpegpatterns.argument=argument
+lpegpatterns.content=content
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local key=C((1-equal-comma)^1)
local pattern_a=(space+comma)^0*(key*equal*value+key*C(""))
@@ -5339,9 +5386,9 @@ end
local pattern_a_s=(pattern_a/set)^1
local pattern_b_s=(pattern_b/set)^1
local pattern_c_s=(pattern_c/set)^1
-parsers.patterns.settings_to_hash_a=pattern_a_s
-parsers.patterns.settings_to_hash_b=pattern_b_s
-parsers.patterns.settings_to_hash_c=pattern_c_s
+patterns.settings_to_hash_a=pattern_a_s
+patterns.settings_to_hash_b=pattern_b_s
+patterns.settings_to_hash_c=pattern_c_s
function parsers.make_settings_to_hash_pattern(set,how)
if how=="strict" then
return (pattern_c/set)^1
@@ -5381,7 +5428,7 @@ end
local separator=comma*space^0
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local pattern=spaces*Ct(value*(separator*value)^0)
-parsers.patterns.settings_to_array=pattern
+patterns.settings_to_array=pattern
function parsers.settings_to_array(str,strict)
if not str or str=="" then
return {}
@@ -5521,14 +5568,14 @@ local pattern=Cs { "start",
two=digit*digit*V("rest"),
three=V("thousand")*V("rest"),
}
-patterns.splitthousands=pattern
+lpegpatterns.splitthousands=pattern
function parsers.splitthousands(str)
return lpegmatch(pattern,str) or str
end
local optionalwhitespace=whitespace^0
-patterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
-patterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
-patterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
+lpegpatterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
+lpegpatterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
+lpegpatterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
local dquote=P('"')
local equal=P('=')
local escape=P('\\')
@@ -5536,7 +5583,7 @@ local separator=S(' ,')
local key=C((1-equal)^1)
local value=dquote*C((1-dquote-escape*dquote)^0)*dquote
local pattern=Cf(Ct("")*Cg(key*equal*value)*separator^0,rawset)^0
-parsers.patterns.keq_to_hash_c=pattern
+patterns.keq_to_hash_c=pattern
function parsers.keq_to_hash(str)
if str and str~="" then
return lpegmatch(pattern,str)
@@ -5606,24 +5653,64 @@ local function ranger(first,last,n,action)
action(first)
end
end
-local cardinal=patterns.cardinal/tonumber
-local spacers=patterns.spacer^0
-local endofstring=patterns.endofstring
+local cardinal=lpegpatterns.cardinal/tonumber
+local spacers=lpegpatterns.spacer^0
+local endofstring=lpegpatterns.endofstring
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+(P("*")+endofstring)*Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1*endofstring
-function utilities.parsers.stepper(str,n,action)
+function parsers.stepper(str,n,action)
if type(n)=="function" then
lpegmatch(stepper,str,1,false,n or print)
else
lpegmatch(stepper,str,1,n,action or print)
end
end
+local pattern=Cs((P("%")/"\\percent "+P("^")*Cc("{")*lpegpatterns.integer*Cc("}")+P(1))^0)
+patterns.unittotex=pattern
+function parsers.unittotex(str)
+ return lpegmatch(pattern,str)
+end
+local pattern=Cs((P("^")/"<sup>"*lpegpatterns.integer*Cc("</sup>")+P(1))^0)
+function parsers.unittoxml(str)
+ return lpegmatch(pattern,str)
+end
+local cache={}
+local spaces=lpeg.patterns.space^0
+local dummy=function() end
+table.setmetatableindex(cache,function(t,k)
+ local separator=P(k)
+ local value=(1-separator)^0
+ local pattern=spaces*C(value)*separator^0*Cp()
+ t[k]=pattern
+ return pattern
+end)
+local commalistiterator=cache[","]
+function utilities.parsers.iterator(str,separator)
+ local n=#str
+ if n==0 then
+ return dummy
+ else
+ local pattern=separator and cache[separator] or commalistiterator
+ local p=1
+ return function()
+ if p<=n then
+ local s,e=lpegmatch(pattern,str,p)
+ if e then
+ p=e
+ return s
+ end
+ end
+ end
+ end
+end
end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-fmt"] = package.loaded["util-fmt"] or true
+
-- original size: 3006, stripped down to: 2072
if not modules then modules={} end modules ['util-fmt']={
@@ -5712,6 +5799,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-deb"] = package.loaded["util-deb"] or true
+
-- original size: 3676, stripped down to: 2553
if not modules then modules={} end modules ['util-deb']={
@@ -5811,6 +5900,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
+
-- original size: 6380, stripped down to: 5101
if not modules then modules={} end modules ['trac-inf']={
@@ -5993,6 +6084,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-set"] = package.loaded["trac-set"] or true
+
-- original size: 12560, stripped down to: 8979
if not modules then modules={} end modules ['trac-set']={
@@ -6303,6 +6396,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-log"] = package.loaded["trac-log"] or true
+
-- original size: 17885, stripped down to: 13242
if not modules then modules={} end modules ['trac-log']={
@@ -6823,6 +6918,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-pro"] = package.loaded["trac-pro"] or true
+
-- original size: 5789, stripped down to: 3469
if not modules then modules={} end modules ['trac-pro']={
@@ -6966,6 +7063,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tpl"] = package.loaded["util-tpl"] or true
+
-- original size: 3570, stripped down to: 2441
if not modules then modules={} end modules ['util-tpl']={
@@ -7063,6 +7162,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-env"] = package.loaded["util-env"] or true
+
-- original size: 7702, stripped down to: 4701
if not modules then modules={} end modules ['util-env']={
@@ -7242,7 +7343,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 5441, stripped down to: 3874
+package.loaded["luat-env"] = package.loaded["luat-env"] or true
+
+-- original size: 5581, stripped down to: 3940
if not modules then modules={} end modules ['luat-env']={
version=1.001,
@@ -7251,6 +7354,7 @@ do -- create closure to overcome 200 locals limit
copyright="PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
+local rawset,rawget,loadfile,assert=rawset,rawget,loadfile,assert
local trace_locating=false trackers.register("resolvers.locating",function(v) trace_locating=v end)
local report_lua=logs.reporter("resolvers","lua")
local luautilities=utilities.lua
@@ -7385,6 +7489,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true
+
-- original size: 42438, stripped down to: 26556
if not modules then modules={} end modules ['lxml-tab']={
@@ -8364,7 +8470,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 47510, stripped down to: 30425
+package.loaded["lxml-lpt"] = package.loaded["lxml-lpt"] or true
+
+-- original size: 48888, stripped down to: 30550
if not modules then modules={} end modules ['lxml-lpt']={
version=1.001,
@@ -9340,32 +9448,54 @@ expressions.tag=function(e,n)
return (found and found.tg) or ""
end
end
-local wrap,yield=coroutine.wrap,coroutine.yield
+local dummy=function() end
function xml.elements(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
- else
- return wrap(function() for c=1,#collected do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
end
end
- return wrap(function() end)
end
function xml.collected(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do yield(collected[c]) end end)
- else
- return wrap(function() for c=1,#collected do yield(collected[c]) end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ return collected[c]
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ return collected[c]
+ end
end
end
- return wrap(function() end)
end
function xml.inspect(collection,pattern)
pattern=pattern or "."
@@ -9401,6 +9531,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-mis"] = package.loaded["lxml-mis"] or true
+
-- original size: 3684, stripped down to: 1957
if not modules then modules={} end modules ['lxml-mis']={
@@ -9468,6 +9600,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-aux"] = package.loaded["lxml-aux"] or true
+
-- original size: 23813, stripped down to: 16826
if not modules then modules={} end modules ['lxml-aux']={
@@ -10159,6 +10293,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
+
-- original size: 10274, stripped down to: 7538
if not modules then modules={} end modules ['lxml-xml']={
@@ -10535,6 +10671,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-ini"] = package.loaded["data-ini"] or true
+
-- original size: 7894, stripped down to: 5497
if not modules then modules={} end modules ['data-ini']={
@@ -10695,6 +10833,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-exp"] = package.loaded["data-exp"] or true
+
-- original size: 14663, stripped down to: 9537
if not modules then modules={} end modules ['data-exp']={
@@ -11055,6 +11195,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-env"] = package.loaded["data-env"] or true
+
-- original size: 8762, stripped down to: 6484
if not modules then modules={} end modules ['data-env']={
@@ -11321,6 +11463,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmp"] = package.loaded["data-tmp"] or true
+
-- original size: 14075, stripped down to: 10764
if not modules then modules={} end modules ['data-tmp']={
@@ -11662,6 +11806,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-met"] = package.loaded["data-met"] or true
+
-- original size: 4863, stripped down to: 3890
if not modules then modules={} end modules ['data-met']={
@@ -11777,6 +11923,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-res"] = package.loaded["data-res"] or true
+
-- original size: 60360, stripped down to: 42573
if not modules then modules={} end modules ['data-res']={
@@ -13185,6 +13333,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-pre"] = package.loaded["data-pre"] or true
+
-- original size: 6430, stripped down to: 4219
if not modules then modules={} end modules ['data-pre']={
@@ -13359,6 +13509,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-inp"] = package.loaded["data-inp"] or true
+
-- original size: 910, stripped down to: 823
if not modules then modules={} end modules ['data-inp']={
@@ -13387,6 +13539,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-out"] = package.loaded["data-out"] or true
+
-- original size: 530, stripped down to: 475
if not modules then modules={} end modules ['data-out']={
@@ -13408,6 +13562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-fil"] = package.loaded["data-fil"] or true
+
-- original size: 3818, stripped down to: 3248
if not modules then modules={} end modules ['data-fil']={
@@ -13513,6 +13669,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-con"] = package.loaded["data-con"] or true
+
-- original size: 4651, stripped down to: 3330
if not modules then modules={} end modules ['data-con']={
@@ -13627,6 +13785,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-use"] = package.loaded["data-use"] or true
+
-- original size: 3913, stripped down to: 2998
if not modules then modules={} end modules ['data-use']={
@@ -13716,6 +13876,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-zip"] = package.loaded["data-zip"] or true
+
-- original size: 8537, stripped down to: 6805
if not modules then modules={} end modules ['data-zip']={
@@ -13950,6 +14112,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tre"] = package.loaded["data-tre"] or true
+
-- original size: 2514, stripped down to: 2080
if not modules then modules={} end modules ['data-tre']={
@@ -14021,6 +14185,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-sch"] = package.loaded["data-sch"] or true
+
-- original size: 6218, stripped down to: 5165
if not modules then modules={} end modules ['data-sch']={
@@ -14195,6 +14361,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lua"] = package.loaded["data-lua"] or true
+
-- original size: 6387, stripped down to: 5108
if not modules then modules={} end modules ['data-lua']={
@@ -14372,6 +14540,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-aux"] = package.loaded["data-aux"] or true
+
-- original size: 2394, stripped down to: 2005
if not modules then modules={} end modules ['data-aux']={
@@ -14437,6 +14607,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmf"] = package.loaded["data-tmf"] or true
+
-- original size: 2610, stripped down to: 1637
if not modules then modules={} end modules ['data-tmf']={
@@ -14491,6 +14663,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lst"] = package.loaded["data-lst"] or true
+
-- original size: 2632, stripped down to: 2278
if not modules then modules={} end modules ['data-lst']={
@@ -14566,6 +14740,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-sta"] = package.loaded["luat-sta"] or true
+
-- original size: 5703, stripped down to: 2507
if not modules then modules={} end modules ['luat-sta']={
@@ -14667,6 +14843,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-fmt"] = package.loaded["luat-fmt"] or true
+
-- original size: 5954, stripped down to: 4923
if not modules then modules={} end modules ['luat-fmt']={
@@ -14801,8 +14979,8 @@ end -- of closure
-- used libraries : l-lua.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-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-tab.lua util-sto.lua util-str.lua util-mrg.lua util-lua.lua util-prs.lua util-fmt.lua util-deb.lua trac-inf.lua trac-set.lua trac-log.lua trac-pro.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-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 luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 594353
--- stripped bytes : 200182
+-- original bytes : 598829
+-- stripped bytes : 203330
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 6a894df01..3245a538c 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -54,6 +54,8 @@ if not modules then modules = { } end modules ['mtxrun'] = {
do -- create closure to overcome 200 locals limit
+package.loaded["l-lua"] = package.loaded["l-lua"] or true
+
-- original size: 2956, stripped down to: 1509
if not modules then modules={} end modules ['l-lua']={
@@ -132,7 +134,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25424, stripped down to: 14069
+package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
+
+-- original size: 25597, stripped down to: 14149
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -183,8 +187,10 @@ patterns.utftype=utftype
patterns.utfoffset=utfoffset
local utf8char=patterns.utf8one+patterns.utf8two+patterns.utf8three+patterns.utf8four
local validutf8char=utf8char^0*endofstring*Cc(true)+Cc(false)
+local utf8character=P(1)*R("\128\191")^0
patterns.utf8=utf8char
patterns.utf8char=utf8char
+patterns.utf8character=utf8character
patterns.validutf8=validutf8char
patterns.validutf8char=validutf8char
local eol=S("\n\r")
@@ -698,6 +704,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-function"] = package.loaded["l-function"] or true
+
-- original size: 361, stripped down to: 322
if not modules then modules={} end modules ['l-functions']={
@@ -715,6 +723,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-string"] = package.loaded["l-string"] or true
+
-- original size: 5490, stripped down to: 2685
if not modules then modules={} end modules ['l-string']={
@@ -814,6 +824,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-table"] = package.loaded["l-table"] or true
+
-- original size: 29069, stripped down to: 19493
if not modules then modules={} end modules ['l-table']={
@@ -1669,6 +1681,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-io"] = package.loaded["l-io"] or true
+
-- original size: 8799, stripped down to: 6325
if not modules then modules={} end modules ['l-io']={
@@ -1983,6 +1997,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-number"] = package.loaded["l-number"] or true
+
-- original size: 4851, stripped down to: 2828
if not modules then modules={} end modules ['l-number']={
@@ -2126,6 +2142,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-set"] = package.loaded["l-set"] or true
+
-- original size: 1923, stripped down to: 1133
if not modules then modules={} end modules ['l-set']={
@@ -2197,7 +2215,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 13891, stripped down to: 8591
+package.loaded["l-os"] = package.loaded["l-os"] or true
+
+-- original size: 13687, stripped down to: 8406
if not modules then modules={} end modules ['l-os']={
version=1.001,
@@ -2319,18 +2339,10 @@ function os.runtime()
end
os.resolvers=os.resolvers or {}
local resolvers=os.resolvers
-local osmt=getmetatable(os) or { __index=function(t,k)
- local v=function()
- print(format("function os.%s in namespace is undefined"))
- end
- t[k]=v
- return v
-end }
-local osix=osmt.__index
-osmt.__index=function(t,k)
- return (resolvers[k] or osix)(t,k)
-end
-setmetatable(os,osmt)
+setmetatable(os,{ __index=function(t,k)
+ local r=resolvers[k]
+ return r and r(t,k) or nil
+end })
local name,platform=os.name or "linux",os.getenv("MTX_PLATFORM") or ""
local function guess()
local architecture=os.resultof("uname -m") or ""
@@ -2525,6 +2537,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-file"] = package.loaded["l-file"] or true
+
-- original size: 16516, stripped down to: 8942
if not modules then modules={} end modules ['l-file']={
@@ -2873,6 +2887,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-md5"] = package.loaded["l-md5"] or true
+
-- original size: 3684, stripped down to: 2019
if not modules then modules={} end modules ['l-md5']={
@@ -2949,6 +2965,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-url"] = package.loaded["l-url"] or true
+
-- original size: 11806, stripped down to: 5417
if not modules then modules={} end modules ['l-url']={
@@ -3153,6 +3171,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-dir"] = package.loaded["l-dir"] or true
+
-- original size: 13035, stripped down to: 8133
if not modules then modules={} end modules ['l-dir']={
@@ -3488,6 +3508,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-boolean"] = package.loaded["l-boolean"] or true
+
-- original size: 1822, stripped down to: 1544
if not modules then modules={} end modules ['l-boolean']={
@@ -3560,7 +3582,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25422, stripped down to: 11909
+package.loaded["l-unicode"] = package.loaded["l-unicode"] or true
+
+-- original size: 26810, stripped down to: 11943
if not modules then modules={} end modules ['l-unicode']={
version=1.001,
@@ -3575,7 +3599,7 @@ utf.values=utf.values or string.utfvalues
local type=type
local char,byte,format,sub=string.char,string.byte,string.format,string.sub
local concat=table.concat
-local P,C,R,Cs,Ct,Cmt,Cc,Carg=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg
+local P,C,R,Cs,Ct,Cmt,Cc,Carg,Cp=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg,lpeg.Cp
local lpegmatch,patterns=lpeg.match,lpeg.patterns
local bytepairs=string.bytepairs
local finder=lpeg.finder
@@ -4030,19 +4054,24 @@ if not utf.characters then
string.utfcharacters=utf.characters
end
if not utf.values then
- local wrap,yield,gmatch=coroutine.wrap,coroutine.yield,string.gmatch
+ local find=string.find
local dummy=function()
end
function utf.values(str)
local n=#str
if n==0 then
- return wrap(dummy)
+ return dummy
elseif n==1 then
- return wrap(function() yield(utfbyte(str)) end)
- else
- return wrap(function() for s in gmatch(str,".[\128-\191]*") do
- yield(utfbyte(s))
- end end)
+ return function() return utfbyte(str) end
+ else
+ local p=1
+ return function()
+ local b,e=find(str,".[\128-\191]*",p)
+ if b then
+ p=e+1
+ return utfbyte(sub(str,b,e))
+ end
+ end
end
end
string.utfvalues=utf.values
@@ -4053,6 +4082,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-math"] = package.loaded["l-math"] or true
+
-- original size: 915, stripped down to: 836
if not modules then modules={} end modules ['l-math']={
@@ -4088,6 +4119,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tab"] = package.loaded["util-tab"] or true
+
-- original size: 10334, stripped down to: 6756
if not modules then modules={} end modules ['util-tab']={
@@ -4383,6 +4416,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-sto"] = package.loaded["util-sto"] or true
+
-- original size: 4270, stripped down to: 2989
if not modules then modules={} end modules ['util-sto']={
@@ -4527,6 +4562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-str"] = package.loaded["util-str"] or true
+
-- original size: 12069, stripped down to: 7814
if not modules then modules={} end modules ['util-str']={
@@ -4826,7 +4863,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 7245, stripped down to: 5822
+package.loaded["util-mrg"] = package.loaded["util-mrg"] or true
+
+-- original size: 7447, stripped down to: 6001
if not modules then modules={} end modules ['util-mrg']={
version=1.001,
@@ -4858,6 +4897,7 @@ local m_report=[[
-- original bytes : %s
-- stripped bytes : %s
]]
+local m_preloaded=[[package.loaded[%q] = package.loaded[%q] or true]]
local function self_fake()
return m_faked
end
@@ -4949,11 +4989,13 @@ local function self_libs(libs,list)
local fullname=foundpath.."/"..lib
if lfs.isfile(fullname) then
utilities.report("merge: using library %s",fullname)
+ local preloaded=file.nameonly(lib)
local data=io.loaddata(fullname,true)
original=original+#data
local data,delta=self_compact(data)
right[#right+1]=lib
result[#result+1]=m_begin_closure
+ result[#result+1]=format(m_preloaded,preloaded,preloaded)
result[#result+1]=data
result[#result+1]=m_end_closure
stripped=stripped+delta
@@ -4991,6 +5033,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-lua"] = package.loaded["util-lua"] or true
+
-- original size: 12411, stripped down to: 8581
if not modules then modules={} end modules ['util-lua']={
@@ -5274,7 +5318,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 14514, stripped down to: 10374
+package.loaded["util-prs"] = package.loaded["util-prs"] or true
+
+-- original size: 15913, stripped down to: 11403
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -5285,13 +5331,14 @@ if not modules then modules={} end modules ['util-prs']={
}
local lpeg,table,string=lpeg,table,string
local P,R,V,S,C,Ct,Cs,Carg,Cc,Cg,Cf,Cp=lpeg.P,lpeg.R,lpeg.V,lpeg.S,lpeg.C,lpeg.Ct,lpeg.Cs,lpeg.Carg,lpeg.Cc,lpeg.Cg,lpeg.Cf,lpeg.Cp
-local lpegmatch,patterns=lpeg.match,lpeg.patterns
+local lpegmatch,lpegpatterns=lpeg.match,lpeg.patterns
local concat,format,gmatch,find=table.concat,string.format,string.gmatch,string.find
local tostring,type,next,rawset=tostring,type,next,rawset
utilities=utilities or {}
-utilities.parsers=utilities.parsers or {}
-local parsers=utilities.parsers
-parsers.patterns=parsers.patterns or {}
+local parsers=utilities.parsers or {}
+utilities.parsers=parsers
+local patterns=parsers.patterns or {}
+parsers.patterns=patterns
local setmetatableindex=table.setmetatableindex
local sortedhash=table.sortedhash
local digit=R("09")
@@ -5304,15 +5351,15 @@ local lparent=P("(")
local rparent=P(")")
local period=S(".")
local punctuation=S(".,:;")
-local spacer=patterns.spacer
-local whitespace=patterns.whitespace
-local newline=patterns.newline
-local anything=patterns.anything
-local endofstring=patterns.endofstring
+local spacer=lpegpatterns.spacer
+local whitespace=lpegpatterns.whitespace
+local newline=lpegpatterns.newline
+local anything=lpegpatterns.anything
+local endofstring=lpegpatterns.endofstring
local nobrace=1-(lbrace+rbrace )
local noparent=1-(lparent+rparent)
local escape,left,right=P("\\"),P('{'),P('}')
-patterns.balanced=P {
+lpegpatterns.balanced=P {
[1]=((escape*(left+right))+(1-(left+right))+V(2))^0,
[2]=left*V(1)*right
}
@@ -5321,11 +5368,11 @@ local nestedparents=P { lparent*(noparent+V(1))^0*rparent }
local spaces=space^0
local argument=Cs((lbrace/"")*((nobrace+nestedbraces)^0)*(rbrace/""))
local content=(1-endofstring)^0
-patterns.nestedbraces=nestedbraces
-patterns.nestedparents=nestedparents
-patterns.nested=nestedbraces
-patterns.argument=argument
-patterns.content=content
+lpegpatterns.nestedbraces=nestedbraces
+lpegpatterns.nestedparents=nestedparents
+lpegpatterns.nested=nestedbraces
+lpegpatterns.argument=argument
+lpegpatterns.content=content
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local key=C((1-equal-comma)^1)
local pattern_a=(space+comma)^0*(key*equal*value+key*C(""))
@@ -5339,9 +5386,9 @@ end
local pattern_a_s=(pattern_a/set)^1
local pattern_b_s=(pattern_b/set)^1
local pattern_c_s=(pattern_c/set)^1
-parsers.patterns.settings_to_hash_a=pattern_a_s
-parsers.patterns.settings_to_hash_b=pattern_b_s
-parsers.patterns.settings_to_hash_c=pattern_c_s
+patterns.settings_to_hash_a=pattern_a_s
+patterns.settings_to_hash_b=pattern_b_s
+patterns.settings_to_hash_c=pattern_c_s
function parsers.make_settings_to_hash_pattern(set,how)
if how=="strict" then
return (pattern_c/set)^1
@@ -5381,7 +5428,7 @@ end
local separator=comma*space^0
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local pattern=spaces*Ct(value*(separator*value)^0)
-parsers.patterns.settings_to_array=pattern
+patterns.settings_to_array=pattern
function parsers.settings_to_array(str,strict)
if not str or str=="" then
return {}
@@ -5521,14 +5568,14 @@ local pattern=Cs { "start",
two=digit*digit*V("rest"),
three=V("thousand")*V("rest"),
}
-patterns.splitthousands=pattern
+lpegpatterns.splitthousands=pattern
function parsers.splitthousands(str)
return lpegmatch(pattern,str) or str
end
local optionalwhitespace=whitespace^0
-patterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
-patterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
-patterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
+lpegpatterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
+lpegpatterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
+lpegpatterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
local dquote=P('"')
local equal=P('=')
local escape=P('\\')
@@ -5536,7 +5583,7 @@ local separator=S(' ,')
local key=C((1-equal)^1)
local value=dquote*C((1-dquote-escape*dquote)^0)*dquote
local pattern=Cf(Ct("")*Cg(key*equal*value)*separator^0,rawset)^0
-parsers.patterns.keq_to_hash_c=pattern
+patterns.keq_to_hash_c=pattern
function parsers.keq_to_hash(str)
if str and str~="" then
return lpegmatch(pattern,str)
@@ -5606,24 +5653,64 @@ local function ranger(first,last,n,action)
action(first)
end
end
-local cardinal=patterns.cardinal/tonumber
-local spacers=patterns.spacer^0
-local endofstring=patterns.endofstring
+local cardinal=lpegpatterns.cardinal/tonumber
+local spacers=lpegpatterns.spacer^0
+local endofstring=lpegpatterns.endofstring
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+(P("*")+endofstring)*Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1*endofstring
-function utilities.parsers.stepper(str,n,action)
+function parsers.stepper(str,n,action)
if type(n)=="function" then
lpegmatch(stepper,str,1,false,n or print)
else
lpegmatch(stepper,str,1,n,action or print)
end
end
+local pattern=Cs((P("%")/"\\percent "+P("^")*Cc("{")*lpegpatterns.integer*Cc("}")+P(1))^0)
+patterns.unittotex=pattern
+function parsers.unittotex(str)
+ return lpegmatch(pattern,str)
+end
+local pattern=Cs((P("^")/"<sup>"*lpegpatterns.integer*Cc("</sup>")+P(1))^0)
+function parsers.unittoxml(str)
+ return lpegmatch(pattern,str)
+end
+local cache={}
+local spaces=lpeg.patterns.space^0
+local dummy=function() end
+table.setmetatableindex(cache,function(t,k)
+ local separator=P(k)
+ local value=(1-separator)^0
+ local pattern=spaces*C(value)*separator^0*Cp()
+ t[k]=pattern
+ return pattern
+end)
+local commalistiterator=cache[","]
+function utilities.parsers.iterator(str,separator)
+ local n=#str
+ if n==0 then
+ return dummy
+ else
+ local pattern=separator and cache[separator] or commalistiterator
+ local p=1
+ return function()
+ if p<=n then
+ local s,e=lpegmatch(pattern,str,p)
+ if e then
+ p=e
+ return s
+ end
+ end
+ end
+ end
+end
end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-fmt"] = package.loaded["util-fmt"] or true
+
-- original size: 3006, stripped down to: 2072
if not modules then modules={} end modules ['util-fmt']={
@@ -5712,6 +5799,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-deb"] = package.loaded["util-deb"] or true
+
-- original size: 3676, stripped down to: 2553
if not modules then modules={} end modules ['util-deb']={
@@ -5811,6 +5900,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
+
-- original size: 6380, stripped down to: 5101
if not modules then modules={} end modules ['trac-inf']={
@@ -5993,6 +6084,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-set"] = package.loaded["trac-set"] or true
+
-- original size: 12560, stripped down to: 8979
if not modules then modules={} end modules ['trac-set']={
@@ -6303,6 +6396,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-log"] = package.loaded["trac-log"] or true
+
-- original size: 17885, stripped down to: 13242
if not modules then modules={} end modules ['trac-log']={
@@ -6823,6 +6918,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-pro"] = package.loaded["trac-pro"] or true
+
-- original size: 5789, stripped down to: 3469
if not modules then modules={} end modules ['trac-pro']={
@@ -6966,6 +7063,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tpl"] = package.loaded["util-tpl"] or true
+
-- original size: 3570, stripped down to: 2441
if not modules then modules={} end modules ['util-tpl']={
@@ -7063,6 +7162,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-env"] = package.loaded["util-env"] or true
+
-- original size: 7702, stripped down to: 4701
if not modules then modules={} end modules ['util-env']={
@@ -7242,7 +7343,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 5441, stripped down to: 3874
+package.loaded["luat-env"] = package.loaded["luat-env"] or true
+
+-- original size: 5581, stripped down to: 3940
if not modules then modules={} end modules ['luat-env']={
version=1.001,
@@ -7251,6 +7354,7 @@ do -- create closure to overcome 200 locals limit
copyright="PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
+local rawset,rawget,loadfile,assert=rawset,rawget,loadfile,assert
local trace_locating=false trackers.register("resolvers.locating",function(v) trace_locating=v end)
local report_lua=logs.reporter("resolvers","lua")
local luautilities=utilities.lua
@@ -7385,6 +7489,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true
+
-- original size: 42438, stripped down to: 26556
if not modules then modules={} end modules ['lxml-tab']={
@@ -8364,7 +8470,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 47510, stripped down to: 30425
+package.loaded["lxml-lpt"] = package.loaded["lxml-lpt"] or true
+
+-- original size: 48888, stripped down to: 30550
if not modules then modules={} end modules ['lxml-lpt']={
version=1.001,
@@ -9340,32 +9448,54 @@ expressions.tag=function(e,n)
return (found and found.tg) or ""
end
end
-local wrap,yield=coroutine.wrap,coroutine.yield
+local dummy=function() end
function xml.elements(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
- else
- return wrap(function() for c=1,#collected do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
end
end
- return wrap(function() end)
end
function xml.collected(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do yield(collected[c]) end end)
- else
- return wrap(function() for c=1,#collected do yield(collected[c]) end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ return collected[c]
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ return collected[c]
+ end
end
end
- return wrap(function() end)
end
function xml.inspect(collection,pattern)
pattern=pattern or "."
@@ -9401,6 +9531,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-mis"] = package.loaded["lxml-mis"] or true
+
-- original size: 3684, stripped down to: 1957
if not modules then modules={} end modules ['lxml-mis']={
@@ -9468,6 +9600,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-aux"] = package.loaded["lxml-aux"] or true
+
-- original size: 23813, stripped down to: 16826
if not modules then modules={} end modules ['lxml-aux']={
@@ -10159,6 +10293,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
+
-- original size: 10274, stripped down to: 7538
if not modules then modules={} end modules ['lxml-xml']={
@@ -10535,6 +10671,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-ini"] = package.loaded["data-ini"] or true
+
-- original size: 7894, stripped down to: 5497
if not modules then modules={} end modules ['data-ini']={
@@ -10695,6 +10833,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-exp"] = package.loaded["data-exp"] or true
+
-- original size: 14663, stripped down to: 9537
if not modules then modules={} end modules ['data-exp']={
@@ -11055,6 +11195,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-env"] = package.loaded["data-env"] or true
+
-- original size: 8762, stripped down to: 6484
if not modules then modules={} end modules ['data-env']={
@@ -11321,6 +11463,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmp"] = package.loaded["data-tmp"] or true
+
-- original size: 14075, stripped down to: 10764
if not modules then modules={} end modules ['data-tmp']={
@@ -11662,6 +11806,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-met"] = package.loaded["data-met"] or true
+
-- original size: 4863, stripped down to: 3890
if not modules then modules={} end modules ['data-met']={
@@ -11777,6 +11923,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-res"] = package.loaded["data-res"] or true
+
-- original size: 60360, stripped down to: 42573
if not modules then modules={} end modules ['data-res']={
@@ -13185,6 +13333,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-pre"] = package.loaded["data-pre"] or true
+
-- original size: 6430, stripped down to: 4219
if not modules then modules={} end modules ['data-pre']={
@@ -13359,6 +13509,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-inp"] = package.loaded["data-inp"] or true
+
-- original size: 910, stripped down to: 823
if not modules then modules={} end modules ['data-inp']={
@@ -13387,6 +13539,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-out"] = package.loaded["data-out"] or true
+
-- original size: 530, stripped down to: 475
if not modules then modules={} end modules ['data-out']={
@@ -13408,6 +13562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-fil"] = package.loaded["data-fil"] or true
+
-- original size: 3818, stripped down to: 3248
if not modules then modules={} end modules ['data-fil']={
@@ -13513,6 +13669,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-con"] = package.loaded["data-con"] or true
+
-- original size: 4651, stripped down to: 3330
if not modules then modules={} end modules ['data-con']={
@@ -13627,6 +13785,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-use"] = package.loaded["data-use"] or true
+
-- original size: 3913, stripped down to: 2998
if not modules then modules={} end modules ['data-use']={
@@ -13716,6 +13876,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-zip"] = package.loaded["data-zip"] or true
+
-- original size: 8537, stripped down to: 6805
if not modules then modules={} end modules ['data-zip']={
@@ -13950,6 +14112,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tre"] = package.loaded["data-tre"] or true
+
-- original size: 2514, stripped down to: 2080
if not modules then modules={} end modules ['data-tre']={
@@ -14021,6 +14185,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-sch"] = package.loaded["data-sch"] or true
+
-- original size: 6218, stripped down to: 5165
if not modules then modules={} end modules ['data-sch']={
@@ -14195,6 +14361,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lua"] = package.loaded["data-lua"] or true
+
-- original size: 6387, stripped down to: 5108
if not modules then modules={} end modules ['data-lua']={
@@ -14372,6 +14540,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-aux"] = package.loaded["data-aux"] or true
+
-- original size: 2394, stripped down to: 2005
if not modules then modules={} end modules ['data-aux']={
@@ -14437,6 +14607,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmf"] = package.loaded["data-tmf"] or true
+
-- original size: 2610, stripped down to: 1637
if not modules then modules={} end modules ['data-tmf']={
@@ -14491,6 +14663,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lst"] = package.loaded["data-lst"] or true
+
-- original size: 2632, stripped down to: 2278
if not modules then modules={} end modules ['data-lst']={
@@ -14566,6 +14740,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-sta"] = package.loaded["luat-sta"] or true
+
-- original size: 5703, stripped down to: 2507
if not modules then modules={} end modules ['luat-sta']={
@@ -14667,6 +14843,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-fmt"] = package.loaded["luat-fmt"] or true
+
-- original size: 5954, stripped down to: 4923
if not modules then modules={} end modules ['luat-fmt']={
@@ -14801,8 +14979,8 @@ end -- of closure
-- used libraries : l-lua.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-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-tab.lua util-sto.lua util-str.lua util-mrg.lua util-lua.lua util-prs.lua util-fmt.lua util-deb.lua trac-inf.lua trac-set.lua trac-log.lua trac-pro.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-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 luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 594353
--- stripped bytes : 200182
+-- original bytes : 598829
+-- stripped bytes : 203330
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 6a894df01..3245a538c 100755
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -54,6 +54,8 @@ if not modules then modules = { } end modules ['mtxrun'] = {
do -- create closure to overcome 200 locals limit
+package.loaded["l-lua"] = package.loaded["l-lua"] or true
+
-- original size: 2956, stripped down to: 1509
if not modules then modules={} end modules ['l-lua']={
@@ -132,7 +134,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25424, stripped down to: 14069
+package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
+
+-- original size: 25597, stripped down to: 14149
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -183,8 +187,10 @@ patterns.utftype=utftype
patterns.utfoffset=utfoffset
local utf8char=patterns.utf8one+patterns.utf8two+patterns.utf8three+patterns.utf8four
local validutf8char=utf8char^0*endofstring*Cc(true)+Cc(false)
+local utf8character=P(1)*R("\128\191")^0
patterns.utf8=utf8char
patterns.utf8char=utf8char
+patterns.utf8character=utf8character
patterns.validutf8=validutf8char
patterns.validutf8char=validutf8char
local eol=S("\n\r")
@@ -698,6 +704,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-function"] = package.loaded["l-function"] or true
+
-- original size: 361, stripped down to: 322
if not modules then modules={} end modules ['l-functions']={
@@ -715,6 +723,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-string"] = package.loaded["l-string"] or true
+
-- original size: 5490, stripped down to: 2685
if not modules then modules={} end modules ['l-string']={
@@ -814,6 +824,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-table"] = package.loaded["l-table"] or true
+
-- original size: 29069, stripped down to: 19493
if not modules then modules={} end modules ['l-table']={
@@ -1669,6 +1681,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-io"] = package.loaded["l-io"] or true
+
-- original size: 8799, stripped down to: 6325
if not modules then modules={} end modules ['l-io']={
@@ -1983,6 +1997,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-number"] = package.loaded["l-number"] or true
+
-- original size: 4851, stripped down to: 2828
if not modules then modules={} end modules ['l-number']={
@@ -2126,6 +2142,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-set"] = package.loaded["l-set"] or true
+
-- original size: 1923, stripped down to: 1133
if not modules then modules={} end modules ['l-set']={
@@ -2197,7 +2215,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 13891, stripped down to: 8591
+package.loaded["l-os"] = package.loaded["l-os"] or true
+
+-- original size: 13687, stripped down to: 8406
if not modules then modules={} end modules ['l-os']={
version=1.001,
@@ -2319,18 +2339,10 @@ function os.runtime()
end
os.resolvers=os.resolvers or {}
local resolvers=os.resolvers
-local osmt=getmetatable(os) or { __index=function(t,k)
- local v=function()
- print(format("function os.%s in namespace is undefined"))
- end
- t[k]=v
- return v
-end }
-local osix=osmt.__index
-osmt.__index=function(t,k)
- return (resolvers[k] or osix)(t,k)
-end
-setmetatable(os,osmt)
+setmetatable(os,{ __index=function(t,k)
+ local r=resolvers[k]
+ return r and r(t,k) or nil
+end })
local name,platform=os.name or "linux",os.getenv("MTX_PLATFORM") or ""
local function guess()
local architecture=os.resultof("uname -m") or ""
@@ -2525,6 +2537,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-file"] = package.loaded["l-file"] or true
+
-- original size: 16516, stripped down to: 8942
if not modules then modules={} end modules ['l-file']={
@@ -2873,6 +2887,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-md5"] = package.loaded["l-md5"] or true
+
-- original size: 3684, stripped down to: 2019
if not modules then modules={} end modules ['l-md5']={
@@ -2949,6 +2965,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-url"] = package.loaded["l-url"] or true
+
-- original size: 11806, stripped down to: 5417
if not modules then modules={} end modules ['l-url']={
@@ -3153,6 +3171,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-dir"] = package.loaded["l-dir"] or true
+
-- original size: 13035, stripped down to: 8133
if not modules then modules={} end modules ['l-dir']={
@@ -3488,6 +3508,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-boolean"] = package.loaded["l-boolean"] or true
+
-- original size: 1822, stripped down to: 1544
if not modules then modules={} end modules ['l-boolean']={
@@ -3560,7 +3582,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 25422, stripped down to: 11909
+package.loaded["l-unicode"] = package.loaded["l-unicode"] or true
+
+-- original size: 26810, stripped down to: 11943
if not modules then modules={} end modules ['l-unicode']={
version=1.001,
@@ -3575,7 +3599,7 @@ utf.values=utf.values or string.utfvalues
local type=type
local char,byte,format,sub=string.char,string.byte,string.format,string.sub
local concat=table.concat
-local P,C,R,Cs,Ct,Cmt,Cc,Carg=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg
+local P,C,R,Cs,Ct,Cmt,Cc,Carg,Cp=lpeg.P,lpeg.C,lpeg.R,lpeg.Cs,lpeg.Ct,lpeg.Cmt,lpeg.Cc,lpeg.Carg,lpeg.Cp
local lpegmatch,patterns=lpeg.match,lpeg.patterns
local bytepairs=string.bytepairs
local finder=lpeg.finder
@@ -4030,19 +4054,24 @@ if not utf.characters then
string.utfcharacters=utf.characters
end
if not utf.values then
- local wrap,yield,gmatch=coroutine.wrap,coroutine.yield,string.gmatch
+ local find=string.find
local dummy=function()
end
function utf.values(str)
local n=#str
if n==0 then
- return wrap(dummy)
+ return dummy
elseif n==1 then
- return wrap(function() yield(utfbyte(str)) end)
- else
- return wrap(function() for s in gmatch(str,".[\128-\191]*") do
- yield(utfbyte(s))
- end end)
+ return function() return utfbyte(str) end
+ else
+ local p=1
+ return function()
+ local b,e=find(str,".[\128-\191]*",p)
+ if b then
+ p=e+1
+ return utfbyte(sub(str,b,e))
+ end
+ end
end
end
string.utfvalues=utf.values
@@ -4053,6 +4082,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-math"] = package.loaded["l-math"] or true
+
-- original size: 915, stripped down to: 836
if not modules then modules={} end modules ['l-math']={
@@ -4088,6 +4119,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tab"] = package.loaded["util-tab"] or true
+
-- original size: 10334, stripped down to: 6756
if not modules then modules={} end modules ['util-tab']={
@@ -4383,6 +4416,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-sto"] = package.loaded["util-sto"] or true
+
-- original size: 4270, stripped down to: 2989
if not modules then modules={} end modules ['util-sto']={
@@ -4527,6 +4562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-str"] = package.loaded["util-str"] or true
+
-- original size: 12069, stripped down to: 7814
if not modules then modules={} end modules ['util-str']={
@@ -4826,7 +4863,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 7245, stripped down to: 5822
+package.loaded["util-mrg"] = package.loaded["util-mrg"] or true
+
+-- original size: 7447, stripped down to: 6001
if not modules then modules={} end modules ['util-mrg']={
version=1.001,
@@ -4858,6 +4897,7 @@ local m_report=[[
-- original bytes : %s
-- stripped bytes : %s
]]
+local m_preloaded=[[package.loaded[%q] = package.loaded[%q] or true]]
local function self_fake()
return m_faked
end
@@ -4949,11 +4989,13 @@ local function self_libs(libs,list)
local fullname=foundpath.."/"..lib
if lfs.isfile(fullname) then
utilities.report("merge: using library %s",fullname)
+ local preloaded=file.nameonly(lib)
local data=io.loaddata(fullname,true)
original=original+#data
local data,delta=self_compact(data)
right[#right+1]=lib
result[#result+1]=m_begin_closure
+ result[#result+1]=format(m_preloaded,preloaded,preloaded)
result[#result+1]=data
result[#result+1]=m_end_closure
stripped=stripped+delta
@@ -4991,6 +5033,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-lua"] = package.loaded["util-lua"] or true
+
-- original size: 12411, stripped down to: 8581
if not modules then modules={} end modules ['util-lua']={
@@ -5274,7 +5318,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 14514, stripped down to: 10374
+package.loaded["util-prs"] = package.loaded["util-prs"] or true
+
+-- original size: 15913, stripped down to: 11403
if not modules then modules={} end modules ['util-prs']={
version=1.001,
@@ -5285,13 +5331,14 @@ if not modules then modules={} end modules ['util-prs']={
}
local lpeg,table,string=lpeg,table,string
local P,R,V,S,C,Ct,Cs,Carg,Cc,Cg,Cf,Cp=lpeg.P,lpeg.R,lpeg.V,lpeg.S,lpeg.C,lpeg.Ct,lpeg.Cs,lpeg.Carg,lpeg.Cc,lpeg.Cg,lpeg.Cf,lpeg.Cp
-local lpegmatch,patterns=lpeg.match,lpeg.patterns
+local lpegmatch,lpegpatterns=lpeg.match,lpeg.patterns
local concat,format,gmatch,find=table.concat,string.format,string.gmatch,string.find
local tostring,type,next,rawset=tostring,type,next,rawset
utilities=utilities or {}
-utilities.parsers=utilities.parsers or {}
-local parsers=utilities.parsers
-parsers.patterns=parsers.patterns or {}
+local parsers=utilities.parsers or {}
+utilities.parsers=parsers
+local patterns=parsers.patterns or {}
+parsers.patterns=patterns
local setmetatableindex=table.setmetatableindex
local sortedhash=table.sortedhash
local digit=R("09")
@@ -5304,15 +5351,15 @@ local lparent=P("(")
local rparent=P(")")
local period=S(".")
local punctuation=S(".,:;")
-local spacer=patterns.spacer
-local whitespace=patterns.whitespace
-local newline=patterns.newline
-local anything=patterns.anything
-local endofstring=patterns.endofstring
+local spacer=lpegpatterns.spacer
+local whitespace=lpegpatterns.whitespace
+local newline=lpegpatterns.newline
+local anything=lpegpatterns.anything
+local endofstring=lpegpatterns.endofstring
local nobrace=1-(lbrace+rbrace )
local noparent=1-(lparent+rparent)
local escape,left,right=P("\\"),P('{'),P('}')
-patterns.balanced=P {
+lpegpatterns.balanced=P {
[1]=((escape*(left+right))+(1-(left+right))+V(2))^0,
[2]=left*V(1)*right
}
@@ -5321,11 +5368,11 @@ local nestedparents=P { lparent*(noparent+V(1))^0*rparent }
local spaces=space^0
local argument=Cs((lbrace/"")*((nobrace+nestedbraces)^0)*(rbrace/""))
local content=(1-endofstring)^0
-patterns.nestedbraces=nestedbraces
-patterns.nestedparents=nestedparents
-patterns.nested=nestedbraces
-patterns.argument=argument
-patterns.content=content
+lpegpatterns.nestedbraces=nestedbraces
+lpegpatterns.nestedparents=nestedparents
+lpegpatterns.nested=nestedbraces
+lpegpatterns.argument=argument
+lpegpatterns.content=content
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local key=C((1-equal-comma)^1)
local pattern_a=(space+comma)^0*(key*equal*value+key*C(""))
@@ -5339,9 +5386,9 @@ end
local pattern_a_s=(pattern_a/set)^1
local pattern_b_s=(pattern_b/set)^1
local pattern_c_s=(pattern_c/set)^1
-parsers.patterns.settings_to_hash_a=pattern_a_s
-parsers.patterns.settings_to_hash_b=pattern_b_s
-parsers.patterns.settings_to_hash_c=pattern_c_s
+patterns.settings_to_hash_a=pattern_a_s
+patterns.settings_to_hash_b=pattern_b_s
+patterns.settings_to_hash_c=pattern_c_s
function parsers.make_settings_to_hash_pattern(set,how)
if how=="strict" then
return (pattern_c/set)^1
@@ -5381,7 +5428,7 @@ end
local separator=comma*space^0
local value=P(lbrace*C((nobrace+nestedbraces)^0)*rbrace)+C((nestedbraces+(1-comma))^0)
local pattern=spaces*Ct(value*(separator*value)^0)
-parsers.patterns.settings_to_array=pattern
+patterns.settings_to_array=pattern
function parsers.settings_to_array(str,strict)
if not str or str=="" then
return {}
@@ -5521,14 +5568,14 @@ local pattern=Cs { "start",
two=digit*digit*V("rest"),
three=V("thousand")*V("rest"),
}
-patterns.splitthousands=pattern
+lpegpatterns.splitthousands=pattern
function parsers.splitthousands(str)
return lpegmatch(pattern,str) or str
end
local optionalwhitespace=whitespace^0
-patterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
-patterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
-patterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
+lpegpatterns.words=Ct((Cs((1-punctuation-whitespace)^1)+anything)^1)
+lpegpatterns.sentences=Ct((optionalwhitespace*Cs((1-period)^0*period))^1)
+lpegpatterns.paragraphs=Ct((optionalwhitespace*Cs((whitespace^1*endofstring/""+1-(spacer^0*newline*newline))^1))^1)
local dquote=P('"')
local equal=P('=')
local escape=P('\\')
@@ -5536,7 +5583,7 @@ local separator=S(' ,')
local key=C((1-equal)^1)
local value=dquote*C((1-dquote-escape*dquote)^0)*dquote
local pattern=Cf(Ct("")*Cg(key*equal*value)*separator^0,rawset)^0
-parsers.patterns.keq_to_hash_c=pattern
+patterns.keq_to_hash_c=pattern
function parsers.keq_to_hash(str)
if str and str~="" then
return lpegmatch(pattern,str)
@@ -5606,24 +5653,64 @@ local function ranger(first,last,n,action)
action(first)
end
end
-local cardinal=patterns.cardinal/tonumber
-local spacers=patterns.spacer^0
-local endofstring=patterns.endofstring
+local cardinal=lpegpatterns.cardinal/tonumber
+local spacers=lpegpatterns.spacer^0
+local endofstring=lpegpatterns.endofstring
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1
local stepper=spacers*(C(cardinal)*(spacers*S(":-")*spacers*(C(cardinal)+(P("*")+endofstring)*Cc(true) )+Cc(false) )*Carg(1)*Carg(2)/ranger*S(", ")^0 )^1*endofstring
-function utilities.parsers.stepper(str,n,action)
+function parsers.stepper(str,n,action)
if type(n)=="function" then
lpegmatch(stepper,str,1,false,n or print)
else
lpegmatch(stepper,str,1,n,action or print)
end
end
+local pattern=Cs((P("%")/"\\percent "+P("^")*Cc("{")*lpegpatterns.integer*Cc("}")+P(1))^0)
+patterns.unittotex=pattern
+function parsers.unittotex(str)
+ return lpegmatch(pattern,str)
+end
+local pattern=Cs((P("^")/"<sup>"*lpegpatterns.integer*Cc("</sup>")+P(1))^0)
+function parsers.unittoxml(str)
+ return lpegmatch(pattern,str)
+end
+local cache={}
+local spaces=lpeg.patterns.space^0
+local dummy=function() end
+table.setmetatableindex(cache,function(t,k)
+ local separator=P(k)
+ local value=(1-separator)^0
+ local pattern=spaces*C(value)*separator^0*Cp()
+ t[k]=pattern
+ return pattern
+end)
+local commalistiterator=cache[","]
+function utilities.parsers.iterator(str,separator)
+ local n=#str
+ if n==0 then
+ return dummy
+ else
+ local pattern=separator and cache[separator] or commalistiterator
+ local p=1
+ return function()
+ if p<=n then
+ local s,e=lpegmatch(pattern,str,p)
+ if e then
+ p=e
+ return s
+ end
+ end
+ end
+ end
+end
end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-fmt"] = package.loaded["util-fmt"] or true
+
-- original size: 3006, stripped down to: 2072
if not modules then modules={} end modules ['util-fmt']={
@@ -5712,6 +5799,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-deb"] = package.loaded["util-deb"] or true
+
-- original size: 3676, stripped down to: 2553
if not modules then modules={} end modules ['util-deb']={
@@ -5811,6 +5900,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
+
-- original size: 6380, stripped down to: 5101
if not modules then modules={} end modules ['trac-inf']={
@@ -5993,6 +6084,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-set"] = package.loaded["trac-set"] or true
+
-- original size: 12560, stripped down to: 8979
if not modules then modules={} end modules ['trac-set']={
@@ -6303,6 +6396,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-log"] = package.loaded["trac-log"] or true
+
-- original size: 17885, stripped down to: 13242
if not modules then modules={} end modules ['trac-log']={
@@ -6823,6 +6918,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["trac-pro"] = package.loaded["trac-pro"] or true
+
-- original size: 5789, stripped down to: 3469
if not modules then modules={} end modules ['trac-pro']={
@@ -6966,6 +7063,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-tpl"] = package.loaded["util-tpl"] or true
+
-- original size: 3570, stripped down to: 2441
if not modules then modules={} end modules ['util-tpl']={
@@ -7063,6 +7162,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["util-env"] = package.loaded["util-env"] or true
+
-- original size: 7702, stripped down to: 4701
if not modules then modules={} end modules ['util-env']={
@@ -7242,7 +7343,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 5441, stripped down to: 3874
+package.loaded["luat-env"] = package.loaded["luat-env"] or true
+
+-- original size: 5581, stripped down to: 3940
if not modules then modules={} end modules ['luat-env']={
version=1.001,
@@ -7251,6 +7354,7 @@ do -- create closure to overcome 200 locals limit
copyright="PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
+local rawset,rawget,loadfile,assert=rawset,rawget,loadfile,assert
local trace_locating=false trackers.register("resolvers.locating",function(v) trace_locating=v end)
local report_lua=logs.reporter("resolvers","lua")
local luautilities=utilities.lua
@@ -7385,6 +7489,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-tab"] = package.loaded["lxml-tab"] or true
+
-- original size: 42438, stripped down to: 26556
if not modules then modules={} end modules ['lxml-tab']={
@@ -8364,7 +8470,9 @@ end -- of closure
do -- create closure to overcome 200 locals limit
--- original size: 47510, stripped down to: 30425
+package.loaded["lxml-lpt"] = package.loaded["lxml-lpt"] or true
+
+-- original size: 48888, stripped down to: 30550
if not modules then modules={} end modules ['lxml-lpt']={
version=1.001,
@@ -9340,32 +9448,54 @@ expressions.tag=function(e,n)
return (found and found.tg) or ""
end
end
-local wrap,yield=coroutine.wrap,coroutine.yield
+local dummy=function() end
function xml.elements(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
- else
- return wrap(function() for c=1,#collected do
- local e=collected[c] local r=e.__p__ yield(r,r.dt,e.ni)
- end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ local e=collected[c]
+ local r=e.__p__
+ return r,r.dt,e.ni
+ end
end
end
- return wrap(function() end)
end
function xml.collected(root,pattern,reverse)
local collected=applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do yield(collected[c]) end end)
- else
- return wrap(function() for c=1,#collected do yield(collected[c]) end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c=#collected+1
+ return function()
+ if c>1 then
+ c=c-1
+ return collected[c]
+ end
+ end
+ else
+ local n,c=#collected,0
+ return function()
+ if c<n then
+ c=c+1
+ return collected[c]
+ end
end
end
- return wrap(function() end)
end
function xml.inspect(collection,pattern)
pattern=pattern or "."
@@ -9401,6 +9531,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-mis"] = package.loaded["lxml-mis"] or true
+
-- original size: 3684, stripped down to: 1957
if not modules then modules={} end modules ['lxml-mis']={
@@ -9468,6 +9600,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-aux"] = package.loaded["lxml-aux"] or true
+
-- original size: 23813, stripped down to: 16826
if not modules then modules={} end modules ['lxml-aux']={
@@ -10159,6 +10293,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
+
-- original size: 10274, stripped down to: 7538
if not modules then modules={} end modules ['lxml-xml']={
@@ -10535,6 +10671,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-ini"] = package.loaded["data-ini"] or true
+
-- original size: 7894, stripped down to: 5497
if not modules then modules={} end modules ['data-ini']={
@@ -10695,6 +10833,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-exp"] = package.loaded["data-exp"] or true
+
-- original size: 14663, stripped down to: 9537
if not modules then modules={} end modules ['data-exp']={
@@ -11055,6 +11195,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-env"] = package.loaded["data-env"] or true
+
-- original size: 8762, stripped down to: 6484
if not modules then modules={} end modules ['data-env']={
@@ -11321,6 +11463,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmp"] = package.loaded["data-tmp"] or true
+
-- original size: 14075, stripped down to: 10764
if not modules then modules={} end modules ['data-tmp']={
@@ -11662,6 +11806,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-met"] = package.loaded["data-met"] or true
+
-- original size: 4863, stripped down to: 3890
if not modules then modules={} end modules ['data-met']={
@@ -11777,6 +11923,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-res"] = package.loaded["data-res"] or true
+
-- original size: 60360, stripped down to: 42573
if not modules then modules={} end modules ['data-res']={
@@ -13185,6 +13333,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-pre"] = package.loaded["data-pre"] or true
+
-- original size: 6430, stripped down to: 4219
if not modules then modules={} end modules ['data-pre']={
@@ -13359,6 +13509,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-inp"] = package.loaded["data-inp"] or true
+
-- original size: 910, stripped down to: 823
if not modules then modules={} end modules ['data-inp']={
@@ -13387,6 +13539,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-out"] = package.loaded["data-out"] or true
+
-- original size: 530, stripped down to: 475
if not modules then modules={} end modules ['data-out']={
@@ -13408,6 +13562,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-fil"] = package.loaded["data-fil"] or true
+
-- original size: 3818, stripped down to: 3248
if not modules then modules={} end modules ['data-fil']={
@@ -13513,6 +13669,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-con"] = package.loaded["data-con"] or true
+
-- original size: 4651, stripped down to: 3330
if not modules then modules={} end modules ['data-con']={
@@ -13627,6 +13785,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-use"] = package.loaded["data-use"] or true
+
-- original size: 3913, stripped down to: 2998
if not modules then modules={} end modules ['data-use']={
@@ -13716,6 +13876,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-zip"] = package.loaded["data-zip"] or true
+
-- original size: 8537, stripped down to: 6805
if not modules then modules={} end modules ['data-zip']={
@@ -13950,6 +14112,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tre"] = package.loaded["data-tre"] or true
+
-- original size: 2514, stripped down to: 2080
if not modules then modules={} end modules ['data-tre']={
@@ -14021,6 +14185,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-sch"] = package.loaded["data-sch"] or true
+
-- original size: 6218, stripped down to: 5165
if not modules then modules={} end modules ['data-sch']={
@@ -14195,6 +14361,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lua"] = package.loaded["data-lua"] or true
+
-- original size: 6387, stripped down to: 5108
if not modules then modules={} end modules ['data-lua']={
@@ -14372,6 +14540,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-aux"] = package.loaded["data-aux"] or true
+
-- original size: 2394, stripped down to: 2005
if not modules then modules={} end modules ['data-aux']={
@@ -14437,6 +14607,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-tmf"] = package.loaded["data-tmf"] or true
+
-- original size: 2610, stripped down to: 1637
if not modules then modules={} end modules ['data-tmf']={
@@ -14491,6 +14663,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["data-lst"] = package.loaded["data-lst"] or true
+
-- original size: 2632, stripped down to: 2278
if not modules then modules={} end modules ['data-lst']={
@@ -14566,6 +14740,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-sta"] = package.loaded["luat-sta"] or true
+
-- original size: 5703, stripped down to: 2507
if not modules then modules={} end modules ['luat-sta']={
@@ -14667,6 +14843,8 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["luat-fmt"] = package.loaded["luat-fmt"] or true
+
-- original size: 5954, stripped down to: 4923
if not modules then modules={} end modules ['luat-fmt']={
@@ -14801,8 +14979,8 @@ end -- of closure
-- used libraries : l-lua.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-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-tab.lua util-sto.lua util-str.lua util-mrg.lua util-lua.lua util-prs.lua util-fmt.lua util-deb.lua trac-inf.lua trac-set.lua trac-log.lua trac-pro.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-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 luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 594353
--- stripped bytes : 200182
+-- original bytes : 598829
+-- stripped bytes : 203330
-- end library merge
diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua
index f35d7d2a9..277967ef3 100644
--- a/tex/context/base/char-ini.lua
+++ b/tex/context/base/char-ini.lua
@@ -635,22 +635,13 @@ end
<p>Setting the lccodes is also done in a loop over the data table.</p>
--ldx]]--
---~ function tex.setsfcode (index,sf) ... end
---~ function tex.setlccode (index,lc,[uc]) ... end -- optional third value, safes call
---~ function tex.setuccode (index,uc,[lc]) ... end
---~ function tex.setcatcode(index,cc) ... end
-
--- we need a function ...
-
---~ tex.lccode
---~ tex.uccode
---~ tex.sfcode
---~ tex.catcode
+local sfmode = "unset" -- unset, traditional, normal
function characters.setcodes()
if trace_defining then
report_defining("defining lc and uc codes")
end
+ local traditional = sfstate == "traditional" or sfstate == "unset"
for code, chr in next, data do
local cc = chr.category
if is_letter[cc] then
@@ -674,7 +665,7 @@ function characters.setcodes()
end
texsetcatcode(code,11) -- letter
texsetlccode(code,lc,uc)
- if cc == "lu" then
+ if traditional and cc == "lu" then
texsetsfcode(code,999)
end
end
@@ -682,8 +673,34 @@ function characters.setcodes()
texsetlccode(code,code,code) -- for hyphenation
end
end
+ if traditional then
+ sfstate = "traditional"
+ end
+end
+
+-- If this is something that is not documentwide and used a lot, then we
+-- need a more clever approach (trivial but not now).
+
+local function setuppersfcodes(v,n)
+ if sfstate ~= "unset" then
+ report_defining("setting uppercase sf codes to %s",n)
+ for code, chr in next, data do
+ if chr.category == "lu" then
+ texsetsfcode(code,n)
+ end
+ end
+ end
+ sfstate = v
end
+directives.register("characters.spaceafteruppercase",function(v)
+ if v == "traditional" then
+ setuppersfcodes(v,999)
+ elseif v == "normal" then
+ setuppersfcodes(v,1000)
+ end
+end)
+
--[[ldx--
<p>Next comes a whole series of helper methods. These are (will be) part
of the official <l n='api'/>.</p>
diff --git a/tex/context/base/cldf-ini.lua b/tex/context/base/cldf-ini.lua
index c943dcb51..e3b7ed82a 100644
--- a/tex/context/base/cldf-ini.lua
+++ b/tex/context/base/cldf-ini.lua
@@ -20,6 +20,9 @@ if not modules then modules = { } end modules ['cldf-ini'] = {
--
-- tex.print == line with endlinechar appended
+-- todo: context("%bold{total: }%s",total)
+-- todo: context.documentvariable("title")
+
local tex = tex
context = context or { }
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 6fbd38de4..02c90c61b 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.02.05 22:32}
+\newcontextversion{2013.02.13 18:06}
%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/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index e5938b11a..c9781dc1b 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.02.05 22:32}
+\newcontextversion{2013.02.13 18:06}
%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/context-version.pdf b/tex/context/base/context-version.pdf
index 81b9897d6..efe94e504 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index ef320e323..1aaafe23f 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index 355dd2c8a..26687ca61 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.02.05 22:32}
+\edef\contextversion{2013.02.13 18:06}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 3a5f88110..9782937a5 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.02.05 22:32}
+\edef\contextversion{2013.02.13 18:06}
%D For those who want to use this:
diff --git a/tex/context/base/file-mod.lua b/tex/context/base/file-mod.lua
index 4a520e998..cfc60cfb7 100644
--- a/tex/context/base/file-mod.lua
+++ b/tex/context/base/file-mod.lua
@@ -28,6 +28,7 @@ commands = commands or { }
local commands = commands
local findbyscheme = resolvers.finders.byscheme -- use different one
+local iterator = utilities.parsers.iterator
-- modules can have a specific suffix or can specify one
@@ -168,3 +169,9 @@ function commands.doifolderversionelse(one,two) -- one >= two
two = (two[1] or 0) * 10000 + (two[2] or 0) * 100 + (two[3] or 0)
commands.doifelse(one>=two)
end
+
+function commands.useluamodule(list)
+ for filename in iterator(list) do
+ environment.loadluafile(filename)
+ end
+end
diff --git a/tex/context/base/file-mod.mkvi b/tex/context/base/file-mod.mkvi
index 33d100402..92b8a8959 100644
--- a/tex/context/base/file-mod.mkvi
+++ b/tex/context/base/file-mod.mkvi
@@ -31,10 +31,11 @@
%D their dedicated manuals. We use \type {\next} so that we
%D can \type {\end} in modules.
-\def\usemodules
+\unexpanded\def\usemodules
{\dotripleempty\strc_modules_use}
-\let\usemodule\usemodules
+\let\usemodule \usemodules
+\let\usetexmodule\usemodules
% \def\strc_modules_use[#category][#name][#parameters]%
% {\pushmacro\currentmodule
@@ -247,4 +248,8 @@
% \setupexternalresources
% [url=]
+% new:
+
+\unexpanded\def\useluamodule[#1]{\ctxcommand{useluamodule("#1")}}
+
\protect \endinput
diff --git a/tex/context/base/font-aux.lua b/tex/context/base/font-aux.lua
index 5e938ceb9..2a605d224 100644
--- a/tex/context/base/font-aux.lua
+++ b/tex/context/base/font-aux.lua
@@ -7,7 +7,7 @@ if not modules then modules = { } end modules ['font-aux'] = {
}
local tonumber, type = tonumber, type
-local wrap, yield = coroutine.wrap, coroutine.yield
+----- wrap, yield = coroutine.wrap, coroutine.yield
local fonts, font = fonts, font
@@ -18,9 +18,11 @@ local currentfont = font.current
local identifiers = fonts.hashes.identifiers
local sortedkeys = table.sortedkeys
--- for unicode, character in fonts.iterators.characters () do print(k,v) end
--- for unicode, description in fonts.iterators.descriptions() do print(k,v) end
--- for index, glyph in fonts.iterators.glyphs () do print(k,v) end
+-- for unicode, character in fonts.iterators.characters () do print(unicode) end
+-- for unicode, description in fonts.iterators.descriptions() do print(unicode) end
+-- for index, glyph in fonts.iterators.glyphs () do print(index ) end
+
+local function dummy() end
local function checkeddata(data) -- beware, nullfont is the fallback in identifiers
local t = type(data)
@@ -32,22 +34,93 @@ local function checkeddata(data) -- beware, nullfont is the fallback in identifi
return identifiers[data] -- has nullfont as fallback
end
+local function getindices(data)
+ data = checkeddata(data)
+ local indices = { }
+ local characters = data.characters
+ if characters then
+ for unicode, character in next, characters do
+ indices[character.index or unicode] = unicode
+ end
+ end
+ return indices
+end
+
+-- function iterators.characters(data)
+-- data = checkeddata(data)
+-- local characters = data.characters
+-- if characters then
+-- local collected = sortedkeys(characters)
+-- return wrap(function()
+-- for c=1,#collected do
+-- local cc = collected[c]
+-- local dc = characters[cc]
+-- if dc then
+-- yield(cc,dc)
+-- end
+-- end
+-- end)
+-- else
+-- return wrap(function() end)
+-- end
+-- end
+
+-- function iterators.descriptions(data)
+-- data = checkeddata(data)
+-- local characters = data.characters
+-- local descriptions = data.descriptions
+-- if characters and descriptions then
+-- local collected = sortedkeys(characters)
+-- return wrap(function()
+-- for c=1,#collected do
+-- local cc = collected[c]
+-- local dc = descriptions[cc]
+-- if dc then
+-- yield(cc,dc)
+-- end
+-- end
+-- end)
+-- else
+-- return wrap(function() end)
+-- end
+-- end
+
+-- function iterators.glyphs(data)
+-- data = checkeddata(data)
+-- local descriptions = data.descriptions
+-- if descriptions then
+-- local indices = getindices(data)
+-- local collected = sortedkeys(indices)
+-- return wrap(function()
+-- for c=1,#collected do
+-- local cc = collected[c]
+-- local dc = descriptions[indices[cc]]
+-- if dc then
+-- yield(cc,dc)
+-- end
+-- end
+-- end)
+-- else
+-- return wrap(function() end)
+-- end
+-- end
+
function iterators.characters(data)
data = checkeddata(data)
local characters = data.characters
if characters then
- local collected = sortedkeys(characters)
- return wrap(function()
- for c=1,#collected do
- local cc = collected[c]
+ local collected = sortedkeys(characters)
+ local n, i = #collected, 0
+ return function()
+ i = i + 1
+ if i <= n then
+ local cc = collected[i]
local dc = characters[cc]
- if dc then
- yield(cc,dc)
- end
+ return cc, dc or { }
end
- end)
+ end
else
- return wrap(function() end)
+ return dummy
end
end
@@ -57,30 +130,18 @@ function iterators.descriptions(data)
local descriptions = data.descriptions
if characters and descriptions then
local collected = sortedkeys(characters)
- return wrap(function()
- for c=1,#collected do
- local cc = collected[c]
+ local n, i = #collected, 0
+ return function()
+ i = i + 1
+ if i <= n then
+ local cc = collected[i]
local dc = descriptions[cc]
- if dc then
- yield(cc,dc)
- end
+ return cc, dc or { }
end
- end)
- else
- return wrap(function() end)
- end
-end
-
-local function getindices(data)
- data = checkeddata(data)
- local indices = { }
- local characters = data.characters
- if characters then
- for unicode, character in next, characters do
- indices[character.index or unicode] = unicode
end
+ else
+ return dummy
end
- return indices
end
function iterators.glyphs(data)
@@ -89,16 +150,16 @@ function iterators.glyphs(data)
if descriptions then
local indices = getindices(data)
local collected = sortedkeys(indices)
- return wrap(function()
- for c=1,#collected do
- local cc = collected[c]
+ local n, i = #collected, 0
+ return function()
+ i = i + 1
+ if i <= n then
+ local cc = collected[i]
local dc = descriptions[indices[cc]]
- if dc then
- yield(cc,dc)
- end
+ return cc, dc or { }
end
- end)
+ end
else
- return wrap(function() end)
+ return dummy
end
end
diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua
index 4006dfdbe..ef03f24e0 100644
--- a/tex/context/base/grph-inc.lua
+++ b/tex/context/base/grph-inc.lua
@@ -659,6 +659,10 @@ end
local resolve_too = false -- true
+local internalschemes = {
+ file = true,
+}
+
local function locate(request) -- name, format, cache
-- not resolvers.cleanpath(request.name) as it fails on a!b.pdf and b~c.pdf
-- todo: more restricted cleanpath
@@ -680,14 +684,14 @@ local function locate(request) -- name, format, cache
local hashed = url.hashed(askedname)
if not hashed then
-- go on
- elseif hashed.scheme == "file" then
+ elseif internalschemes[hashed.scheme] then
local path = hashed.path
if path and path ~= "" then
askedname = path
end
else
local foundname = resolvers.findbinfile(askedname)
- if not lfs.isfile(foundname) then -- foundname can be dummy
+ if not foundname or not lfs.isfile(foundname) then -- foundname can be dummy
if trace_figures then
report_inclusion("strategy: unresolved url: %s",askedname)
end
@@ -1161,9 +1165,11 @@ includers.mov = includers.nongeneric
-- -- -- mps -- -- --
+internalschemes.mprun = true
+
local function internal(askedname)
- local spec, mprun, mpnum = match(lower(askedname),"mprun(:?)(.-)%.(%d+)")
- if spec == ":" then
+ local spec, mprun, mpnum = match(lower(askedname),"mprun([:%.]?)(.-)%.(%d+)")
+ if spec ~= "" then
return mprun, mpnum
else
return "", mpnum
diff --git a/tex/context/base/l-lpeg.lua b/tex/context/base/l-lpeg.lua
index d934df8e1..9a08647f9 100644
--- a/tex/context/base/l-lpeg.lua
+++ b/tex/context/base/l-lpeg.lua
@@ -117,8 +117,11 @@ patterns.utfoffset = utfoffset
local utf8char = patterns.utf8one + patterns.utf8two + patterns.utf8three + patterns.utf8four
local validutf8char = utf8char^0 * endofstring * Cc(true) + Cc(false)
+local utf8character = P(1) * R("\128\191")^0 -- unchecked but fast
+
patterns.utf8 = utf8char
patterns.utf8char = utf8char
+patterns.utf8character = utf8character -- this one can be used in most cases so we might use that one
patterns.validutf8 = validutf8char
patterns.validutf8char = validutf8char
diff --git a/tex/context/base/l-os.lua b/tex/context/base/l-os.lua
index 1e7c91757..08d0473bc 100644
--- a/tex/context/base/l-os.lua
+++ b/tex/context/base/l-os.lua
@@ -193,21 +193,10 @@ os.resolvers = os.resolvers or { } -- will become private
local resolvers = os.resolvers
-local osmt = getmetatable(os) or { __index = function(t,k)
- local v = function()
- print(format("function os.%s in namespace is undefined"))
- end
- t[k] = v
- return v
-end } -- maybe nil
-
-local osix = osmt.__index
-
-osmt.__index = function(t,k)
- return (resolvers[k] or osix)(t,k)
-end
-
-setmetatable(os,osmt)
+setmetatable(os, { __index = function(t,k)
+ local r = resolvers[k]
+ return r and r(t,k) or nil -- no memoize
+end })
-- we can use HOSTTYPE on some platforms
diff --git a/tex/context/base/l-unicode.lua b/tex/context/base/l-unicode.lua
index de835a7d8..813ffd54b 100644
--- a/tex/context/base/l-unicode.lua
+++ b/tex/context/base/l-unicode.lua
@@ -27,7 +27,7 @@ utf.values = utf.values or string.utfvalues
local type = type
local char, byte, format, sub = string.char, string.byte, string.format, string.sub
local concat = table.concat
-local P, C, R, Cs, Ct, Cmt, Cc, Carg = lpeg.P, lpeg.C, lpeg.R, lpeg.Cs, lpeg.Ct, lpeg.Cmt, lpeg.Cc, lpeg.Carg
+local P, C, R, Cs, Ct, Cmt, Cc, Carg, Cp = lpeg.P, lpeg.C, lpeg.R, lpeg.Cs, lpeg.Ct, lpeg.Cmt, lpeg.Cc, lpeg.Carg, lpeg.Cp
local lpegmatch, patterns = lpeg.match, lpeg.patterns
local bytepairs = string.bytepairs
@@ -131,32 +131,31 @@ function utf.toentities(str)
return lpegmatch(toentities,str)
end
---~ local utfchr = { } -- 60K -> 2.638 M extra mem but currently not called that often (on latin)
---~
---~ setmetatable(utfchr, { __index = function(t,k) local v = utfchar(k) t[k] = v return v end } )
---~
---~ collectgarbage("collect")
---~ local u = collectgarbage("count")*1024
---~ local t = os.clock()
---~ for i=1,1000 do
---~ for i=1,600 do
---~ local a = utfchr[i]
---~ end
---~ end
---~ print(os.clock()-t,collectgarbage("count")*1024-u)
-
---~ collectgarbage("collect")
---~ local t = os.clock()
---~ for i=1,1000 do
---~ for i=1,600 do
---~ local a = utfchar(i)
---~ end
---~ end
---~ print(os.clock()-t,collectgarbage("count")*1024-u)
-
---~ local byte = string.byte
---~ local utfchar = utf.char
---~ local lpegmatch = lpeg.match, lpeg.P, lpeg.C, lpeg.R, lpeg.Cs
+-- local utfchr = { } -- 60K -> 2.638 M extra mem but currently not called that often (on latin)
+--
+-- setmetatable(utfchr, { __index = function(t,k) local v = utfchar(k) t[k] = v return v end } )
+--
+-- collectgarbage("collect")
+-- local u = collectgarbage("count")*1024
+-- local t = os.clock()
+-- for i=1,1000 do
+-- for i=1,600 do
+-- local a = utfchr[i]
+-- end
+-- end
+-- print(os.clock()-t,collectgarbage("count")*1024-u)
+
+-- collectgarbage("collect")
+-- local t = os.clock()
+-- for i=1,1000 do
+-- for i=1,600 do
+-- local a = utfchar(i)
+-- end
+-- end
+-- print(os.clock()-t,collectgarbage("count")*1024-u)
+
+-- local byte = string.byte
+-- local utfchar = utf.char
local one = P(1)
local two = C(1) * C(1)
@@ -870,25 +869,74 @@ if not utf.values then
-- So, a logical next step is to check for the values variant. It over five times
-- slower than the built-in string.utfvalues. I optimized it a bit for n=0,1.
- local wrap, yield, gmatch = coroutine.wrap, coroutine.yield, string.gmatch
+ ----- wrap, yield, gmatch = coroutine.wrap, coroutine.yield, string.gmatch
+ local find = string.find
local dummy = function()
-- we share this one
end
+ -- function utf.values(str)
+ -- local n = #str
+ -- if n == 0 then
+ -- return wrap(dummy)
+ -- elseif n == 1 then
+ -- return wrap(function() yield(utfbyte(str)) end)
+ -- else
+ -- return wrap(function() for s in gmatch(str,".[\128-\191]*") do
+ -- yield(utfbyte(s))
+ -- end end)
+ -- end
+ -- end
+ --
+ -- faster:
+
function utf.values(str)
local n = #str
if n == 0 then
- return wrap(dummy)
+ return dummy
elseif n == 1 then
- return wrap(function() yield(utfbyte(str)) end)
+ return function() return utfbyte(str) end
else
- return wrap(function() for s in gmatch(str,".[\128-\191]*") do
- yield(utfbyte(s))
- end end)
+ local p = 1
+ -- local n = #str
+ return function()
+ -- if p <= n then -- slower than the last find
+ local b, e = find(str,".[\128-\191]*",p)
+ if b then
+ p = e + 1
+ return utfbyte(sub(str,b,e))
+ end
+ -- end
+ end
end
end
+ -- slower:
+ --
+ -- local pattern = C(patterns.utf8character) * Cp()
+ -- ----- pattern = patterns.utf8character/utfbyte * Cp()
+ -- ----- pattern = patterns.utf8byte * Cp()
+ --
+ -- function utf.values(str) -- one of the cases where a find is faster than an lpeg
+ -- local n = #str
+ -- if n == 0 then
+ -- return dummy
+ -- elseif n == 1 then
+ -- return function() return utfbyte(str) end
+ -- else
+ -- local p = 1
+ -- return function()
+ -- local s, e = lpegmatch(pattern,str,p)
+ -- if e then
+ -- p = e
+ -- return utfbyte(s)
+ -- -- return s
+ -- end
+ -- end
+ -- end
+ -- end
+
string.utfvalues = utf.values
end
diff --git a/tex/context/base/luat-cnf.lua b/tex/context/base/luat-cnf.lua
index e574bf428..3672c603e 100644
--- a/tex/context/base/luat-cnf.lua
+++ b/tex/context/base/luat-cnf.lua
@@ -152,6 +152,13 @@ function texconfig.init()
storage.noftables , storage.toftables = init(0)
storage.nofmodules, storage.tofmodules = init(%s)
+ if modules then
+ local loaded = package.loaded
+ for module, _ in next, modules do
+ loaded[module] = true
+ end
+ end
+
end
-- we provide a qualified path
diff --git a/tex/context/base/luat-env.lua b/tex/context/base/luat-env.lua
index efaaebf3e..058e161d5 100644
--- a/tex/context/base/luat-env.lua
+++ b/tex/context/base/luat-env.lua
@@ -11,6 +11,8 @@
-- sense. Much of this evolved before bytecode arrays were available and so a lot of
-- code has disappeared already.
+local rawset, rawget, loadfile, assert = rawset, rawget, loadfile, assert
+
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local report_lua = logs.reporter("resolvers","lua")
@@ -122,6 +124,7 @@ function environment.loadluafile(filename, version)
if trace_locating then
report_lua("loading %s", fullname)
end
+ -- maybe: package.loaded[file.nameonly(fullname)] = true
chunk = loadfile(fullname) -- this way we don't need a file exists check
end
if chunk then
diff --git a/tex/context/base/lxml-lpt.lua b/tex/context/base/lxml-lpt.lua
index 875b6bb96..d73b87287 100644
--- a/tex/context/base/lxml-lpt.lua
+++ b/tex/context/base/lxml-lpt.lua
@@ -1346,34 +1346,89 @@ end
</typing>
--ldx]]--
-local wrap, yield = coroutine.wrap, coroutine.yield
+-- local wrap, yield = coroutine.wrap, coroutine.yield
+-- local dummy = function() end
+--
+-- function xml.elements(root,pattern,reverse) -- r, d, k
+-- local collected = applylpath(root,pattern)
+-- if collected then
+-- if reverse then
+-- return wrap(function() for c=#collected,1,-1 do
+-- local e = collected[c] local r = e.__p__ yield(r,r.dt,e.ni)
+-- end end)
+-- else
+-- return wrap(function() for c=1,#collected do
+-- local e = collected[c] local r = e.__p__ yield(r,r.dt,e.ni)
+-- end end)
+-- end
+-- end
+-- return wrap(dummy)
+-- end
+--
+-- function xml.collected(root,pattern,reverse) -- e
+-- local collected = applylpath(root,pattern)
+-- if collected then
+-- if reverse then
+-- return wrap(function() for c=#collected,1,-1 do yield(collected[c]) end end)
+-- else
+-- return wrap(function() for c=1,#collected do yield(collected[c]) end end)
+-- end
+-- end
+-- return wrap(dummy)
+-- end
+
+-- faster:
+
+local dummy = function() end
function xml.elements(root,pattern,reverse) -- r, d, k
local collected = applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do
- local e = collected[c] local r = e.__p__ yield(r,r.dt,e.ni)
- end end)
- else
- return wrap(function() for c=1,#collected do
- local e = collected[c] local r = e.__p__ yield(r,r.dt,e.ni)
- end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c = #collected + 1
+ return function()
+ if c > 1 then
+ c = c - 1
+ local e = collected[c]
+ local r = e.__p__
+ return r, r.dt, e.ni
+ end
+ end
+ else
+ local n, c = #collected, 0
+ return function()
+ if c < n then
+ c = c + 1
+ local e = collected[c]
+ local r = e.__p__
+ return r, r.dt, e.ni
+ end
end
end
- return wrap(function() end)
end
function xml.collected(root,pattern,reverse) -- e
local collected = applylpath(root,pattern)
- if collected then
- if reverse then
- return wrap(function() for c=#collected,1,-1 do yield(collected[c]) end end)
- else
- return wrap(function() for c=1,#collected do yield(collected[c]) end end)
+ if not collected then
+ return dummy
+ elseif reverse then
+ local c = #collected + 1
+ return function()
+ if c > 1 then
+ c = c - 1
+ return collected[c]
+ end
+ end
+ else
+ local n, c = #collected, 0
+ return function()
+ if c < n then
+ c = c + 1
+ return collected[c]
+ end
end
end
- return wrap(function() end)
end
-- handy
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index bdce5af7e..edb6c7376 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -96,7 +96,7 @@ return {
"startproduct", "stopproduct", "product",
"startproject", "stopproject", "project",
"starttext", "stoptext", "startnotext", "stopnotext","startdocument", "stopdocument", "documentvariable",
- "startmodule", "stopmodule", "usemodule",
+ "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule",
--
"startTEXpage", "stopTEXpage",
-- "startMPpage", "stopMPpage", -- already catched by nested lexer
diff --git a/tex/context/base/s-pre-61.tex b/tex/context/base/s-pre-61.tex
index ea221fbcb..48b9d09a0 100644
--- a/tex/context/base/s-pre-61.tex
+++ b/tex/context/base/s-pre-61.tex
@@ -156,6 +156,7 @@
\NormalizeFontHeight \SubTitleFont {\setstrut\strut\quad} {1.5\headerheight} {SansBold}
\NormalizeFontHeight \SubSubTitleFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
\to \everystarttext
+
\appendtoks
\NormalizeFontHeight \HeadFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
\NormalizeFontHeight \TitleFont {\setstrut\strut\quad} {2.0\headerheight} {SansBold}
diff --git a/tex/context/base/spac-hor.mkiv b/tex/context/base/spac-hor.mkiv
index 42661010b..2ce502fb5 100644
--- a/tex/context/base/spac-hor.mkiv
+++ b/tex/context/base/spac-hor.mkiv
@@ -348,6 +348,23 @@
\def\spac_spacecodes_setup_nop
{\updateraggedskips}
+%D Here's a tweak .. if needed one can configure it in the configuration
+%D so that initialization happens more efficient.
+%D
+%D \starttyping
+%D \startoverlay
+%D {
+%D \green
+%D \enabledirectives[characters.spaceafteruppercase=normal]%
+%D \vbox{\hsize 5em x. X\par x.\ X\par X. X\par X.\ X\par}
+%D } {
+%D \blue
+%D \enabledirectives[characters.spaceafteruppercase=traditional]%
+%D \vbox{\hsize 5em x. X\par x.\ X\par X. X\par X.\ X\par}
+%D }
+%D \stopoverlay
+%D \stoptyping
+
% This is not needed, as \updateraggedskips is taking care of it:
\let\synchronizespacecodes\spac_spacecodes_setup_nop % \relax
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index f407a66d8..667b3d00c 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -305,7 +305,7 @@
\prevdepth\d_spac_prevdepth}
\def\spac_helpers_hglue_indeed
- {\dontleavehmode % \leavevmode
+ {\dontleavehmode
\c_spac_spacefactor\spacefactor
\vrule\s!width\zeropoint
\nobreak
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 148b8568f..4bf36f0f7 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 470c46144..66c3581c1 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/util-mrg.lua b/tex/context/base/util-mrg.lua
index 276531d79..f8742151c 100644
--- a/tex/context/base/util-mrg.lua
+++ b/tex/context/base/util-mrg.lua
@@ -51,6 +51,8 @@ local m_report = [[
-- stripped bytes : %s
]]
+local m_preloaded = [[package.loaded[%q] = package.loaded[%q] or true]]
+
local function self_fake()
return m_faked
end
@@ -175,11 +177,13 @@ local function self_libs(libs,list)
local fullname = foundpath .. "/" .. lib
if lfs.isfile(fullname) then
utilities.report("merge: using library %s",fullname)
+ local preloaded = file.nameonly(lib)
local data = io.loaddata(fullname,true)
original = original + #data
local data, delta = self_compact(data)
right[#right+1] = lib
result[#result+1] = m_begin_closure
+ result[#result+1] = format(m_preloaded,preloaded,preloaded)
result[#result+1] = data
result[#result+1] = m_end_closure
stripped = stripped + delta
diff --git a/tex/context/base/util-prs.lua b/tex/context/base/util-prs.lua
index 6f16af666..69d70fbc9 100644
--- a/tex/context/base/util-prs.lua
+++ b/tex/context/base/util-prs.lua
@@ -8,14 +8,15 @@ if not modules then modules = { } end modules ['util-prs'] = {
local lpeg, table, string = lpeg, table, string
local P, R, V, S, C, Ct, Cs, Carg, Cc, Cg, Cf, Cp = lpeg.P, lpeg.R, lpeg.V, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.Carg, lpeg.Cc, lpeg.Cg, lpeg.Cf, lpeg.Cp
-local lpegmatch, patterns = lpeg.match, lpeg.patterns
+local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local concat, format, gmatch, find = table.concat, string.format, string.gmatch, string.find
local tostring, type, next, rawset = tostring, type, next, rawset
utilities = utilities or {}
-utilities.parsers = utilities.parsers or { }
-local parsers = utilities.parsers
-parsers.patterns = parsers.patterns or { }
+local parsers = utilities.parsers or { }
+utilities.parsers = parsers
+local patterns = parsers.patterns or { }
+parsers.patterns = patterns
local setmetatableindex = table.setmetatableindex
local sortedhash = table.sortedhash
@@ -32,11 +33,11 @@ local lparent = P("(")
local rparent = P(")")
local period = S(".")
local punctuation = S(".,:;")
-local spacer = patterns.spacer
-local whitespace = patterns.whitespace
-local newline = patterns.newline
-local anything = patterns.anything
-local endofstring = patterns.endofstring
+local spacer = lpegpatterns.spacer
+local whitespace = lpegpatterns.whitespace
+local newline = lpegpatterns.newline
+local anything = lpegpatterns.anything
+local endofstring = lpegpatterns.endofstring
local nobrace = 1 - ( lbrace + rbrace )
local noparent = 1 - ( lparent + rparent)
@@ -45,7 +46,7 @@ local noparent = 1 - ( lparent + rparent)
local escape, left, right = P("\\"), P('{'), P('}')
-patterns.balanced = P {
+lpegpatterns.balanced = P {
[1] = ((escape * (left+right)) + (1 - (left+right)) + V(2))^0,
[2] = left * V(1) * right
}
@@ -56,11 +57,11 @@ local spaces = space^0
local argument = Cs((lbrace/"") * ((nobrace + nestedbraces)^0) * (rbrace/""))
local content = (1-endofstring)^0
-patterns.nestedbraces = nestedbraces -- no capture
-patterns.nestedparents = nestedparents -- no capture
-patterns.nested = nestedbraces -- no capture
-patterns.argument = argument -- argument after e.g. =
-patterns.content = content -- rest after e.g =
+lpegpatterns.nestedbraces = nestedbraces -- no capture
+lpegpatterns.nestedparents = nestedparents -- no capture
+lpegpatterns.nested = nestedbraces -- no capture
+lpegpatterns.argument = argument -- argument after e.g. =
+lpegpatterns.content = content -- rest after e.g =
local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace) + C((nestedbraces + (1-comma))^0)
@@ -87,9 +88,9 @@ local pattern_a_s = (pattern_a/set)^1
local pattern_b_s = (pattern_b/set)^1
local pattern_c_s = (pattern_c/set)^1
-parsers.patterns.settings_to_hash_a = pattern_a_s
-parsers.patterns.settings_to_hash_b = pattern_b_s
-parsers.patterns.settings_to_hash_c = pattern_c_s
+patterns.settings_to_hash_a = pattern_a_s
+patterns.settings_to_hash_b = pattern_b_s
+patterns.settings_to_hash_c = pattern_c_s
function parsers.make_settings_to_hash_pattern(set,how)
if how == "strict" then
@@ -138,7 +139,7 @@ local pattern = spaces * Ct(value*(separator*value)^0)
-- "aap, {noot}, mies" : outer {} removes, leading spaces ignored
-parsers.patterns.settings_to_array = pattern
+patterns.settings_to_array = pattern
-- we could use a weak table as cache
@@ -311,7 +312,7 @@ local pattern = Cs { "start",
three = V("thousand") * V("rest"),
}
-patterns.splitthousands = pattern -- maybe better in the parsers namespace ?
+lpegpatterns.splitthousands = pattern -- maybe better in the parsers namespace ?
function parsers.splitthousands(str)
return lpegmatch(pattern,str) or str
@@ -321,14 +322,14 @@ end
local optionalwhitespace = whitespace^0
-patterns.words = Ct((Cs((1-punctuation-whitespace)^1) + anything)^1)
-patterns.sentences = Ct((optionalwhitespace * Cs((1-period)^0 * period))^1)
-patterns.paragraphs = Ct((optionalwhitespace * Cs((whitespace^1*endofstring/"" + 1 - (spacer^0*newline*newline))^1))^1)
+lpegpatterns.words = Ct((Cs((1-punctuation-whitespace)^1) + anything)^1)
+lpegpatterns.sentences = Ct((optionalwhitespace * Cs((1-period)^0 * period))^1)
+lpegpatterns.paragraphs = Ct((optionalwhitespace * Cs((whitespace^1*endofstring/"" + 1 - (spacer^0*newline*newline))^1))^1)
-- local str = " Word1 word2. \n Word3 word4. \n\n Word5 word6.\n "
--- inspect(lpegmatch(patterns.paragraphs,str))
--- inspect(lpegmatch(patterns.sentences,str))
--- inspect(lpegmatch(patterns.words,str))
+-- inspect(lpegmatch(lpegpatterns.paragraphs,str))
+-- inspect(lpegmatch(lpegpatterns.sentences,str))
+-- inspect(lpegmatch(lpegpatterns.words,str))
-- handy for k="v" [, ] k="v"
@@ -342,7 +343,7 @@ local value = dquote * C((1-dquote-escape*dquote)^0) * dquote
local pattern = Cf(Ct("") * Cg(key * equal * value) * separator^0,rawset)^0
-parsers.patterns.keq_to_hash_c = pattern
+patterns.keq_to_hash_c = pattern
function parsers.keq_to_hash(str)
if str and str ~= "" then
@@ -446,9 +447,9 @@ local function ranger(first,last,n,action)
end
end
-local cardinal = patterns.cardinal / tonumber
-local spacers = patterns.spacer^0
-local endofstring = patterns.endofstring
+local cardinal = lpegpatterns.cardinal / tonumber
+local spacers = lpegpatterns.spacer^0
+local endofstring = lpegpatterns.endofstring
local stepper = spacers * ( C(cardinal) * ( spacers * S(":-") * spacers * ( C(cardinal) + Cc(true) ) + Cc(false) )
* Carg(1) * Carg(2) / ranger * S(", ")^0 )^1
@@ -456,10 +457,65 @@ local stepper = spacers * ( C(cardinal) * ( spacers * S(":-") * spacers * ( C(c
local stepper = spacers * ( C(cardinal) * ( spacers * S(":-") * spacers * ( C(cardinal) + (P("*") + endofstring) * Cc(true) ) + Cc(false) )
* Carg(1) * Carg(2) / ranger * S(", ")^0 )^1 * endofstring -- we're sort of strict (could do without endofstring)
-function utilities.parsers.stepper(str,n,action)
+function parsers.stepper(str,n,action)
if type(n) == "function" then
lpegmatch(stepper,str,1,false,n or print)
else
lpegmatch(stepper,str,1,n,action or print)
end
end
+
+--
+
+local pattern = Cs((P("%")/"\\percent " + P("^") * Cc("{") * lpegpatterns.integer * Cc("}") + P(1))^0)
+
+patterns.unittotex = pattern
+
+function parsers.unittotex(str)
+ return lpegmatch(pattern,str)
+end
+
+local pattern = Cs((P("^") / "<sup>" * lpegpatterns.integer * Cc("</sup>") + P(1))^0)
+
+function parsers.unittoxml(str)
+ return lpegmatch(pattern,str)
+end
+
+-- print(utilities.parsers.unittotex("10^-32 %"),utilities.parsers.unittoxml("10^32 %"))
+
+local cache = { }
+local spaces = lpeg.patterns.space^0
+local dummy = function() end
+
+table.setmetatableindex(cache,function(t,k)
+ local separator = P(k)
+ local value = (1-separator)^0
+ local pattern = spaces * C(value) * separator^0 * Cp()
+ t[k] = pattern
+ return pattern
+end)
+
+local commalistiterator = cache[","]
+
+function utilities.parsers.iterator(str,separator)
+ local n = #str
+ if n == 0 then
+ return dummy
+ else
+ local pattern = separator and cache[separator] or commalistiterator
+ local p = 1
+ return function()
+ if p <= n then
+ local s, e = lpegmatch(pattern,str,p)
+ if e then
+ p = e
+ return s
+ end
+ end
+ end
+ end
+end
+
+-- for s in utilities.parsers.iterator("a b c,b,c") do
+-- print(s)
+-- end
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 1d56ffd16..6b4b8709a 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 : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 02/05/13 22:32:22
+-- merge date : 02/13/13 18:06:17
do -- begin closure to overcome local limits and interference
@@ -53,8 +53,10 @@ patterns.utftype=utftype
patterns.utfoffset=utfoffset
local utf8char=patterns.utf8one+patterns.utf8two+patterns.utf8three+patterns.utf8four
local validutf8char=utf8char^0*endofstring*Cc(true)+Cc(false)
+local utf8character=P(1)*R("\128\191")^0
patterns.utf8=utf8char
patterns.utf8char=utf8char
+patterns.utf8character=utf8character
patterns.validutf8=validutf8char
patterns.validutf8char=validutf8char
local eol=S("\n\r")
@@ -7656,15 +7658,18 @@ local function copy_glyph(g)
return copy_node(g)
end
end
-local function markstoligature(kind,lookupname,start,stop,char)
+local function markstoligature(kind,lookupname,head,start,stop,char)
if start==stop and start.char==char then
- return start
+ return head,start
else
local prev=start.prev
local next=stop.next
start.prev=nil
stop.next=nil
local base=copy_glyph(start)
+ if head==start then
+ head=base
+ end
base.char=char
base.subtype=ligature_code
base.components=start
@@ -7676,7 +7681,7 @@ local function markstoligature(kind,lookupname,start,stop,char)
end
base.next=next
base.prev=prev
- return base
+ return head,base
end
end
local function getcomponentindex(start)
@@ -7696,16 +7701,19 @@ local function getcomponentindex(start)
return 0
end
end
-local function toligature(kind,lookupname,start,stop,char,markflag,discfound)
+local function toligature(kind,lookupname,head,start,stop,char,markflag,discfound)
if start==stop and start.char==char then
start.char=char
- return start
+ return head,start
end
local prev=start.prev
local next=stop.next
start.prev=nil
stop.next=nil
local base=copy_glyph(start)
+ if start==head then
+ head=base
+ end
base.char=char
base.subtype=ligature_code
base.components=start
@@ -7752,7 +7760,7 @@ local function toligature(kind,lookupname,start,stop,char,markflag,discfound)
start=start.next
end
end
- return base
+ return head,base
end
function handlers.gsub_single(head,start,kind,lookupname,replacement)
if trace_singles then
@@ -7866,10 +7874,10 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence)
if lig then
if trace_ligatures then
local stopchar=stop.char
- start=markstoligature(kind,lookupname,start,stop,lig)
- logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ head,start=markstoligature(kind,lookupname,start,stop,lig)
+ logprocess("%s: replacing %s upto %s by ligature %s case 1",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
else
- start=markstoligature(kind,lookupname,start,stop,lig)
+ head,start=markstoligature(kind,lookupname,start,stop,lig)
end
return head,start,true
else
@@ -7909,10 +7917,10 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence)
if lig then
if trace_ligatures then
local stopchar=stop.char
- start=toligature(kind,lookupname,start,stop,lig,skipmark,discfound)
- logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ head,start=toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound)
+ logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
else
- start=toligature(kind,lookupname,start,stop,lig,skipmark,discfound)
+ head,start=toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound)
end
return head,start,true
else
@@ -8428,12 +8436,12 @@ function chainprocs.gsub_ligature(head,start,stop,kind,chainname,currentcontext,
end
if trace_ligatures then
if start==stop then
- logprocess("%s: replacing character %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(l2))
+ logprocess("%s: replacing character %s by ligature %s case 3",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(l2))
else
- logprocess("%s: replacing character %s upto %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char),gref(l2))
+ logprocess("%s: replacing character %s upto %s by ligature %s case 4",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char),gref(l2))
end
end
- start=toligature(kind,lookupname,start,stop,l2,currentlookup.flags[1],discfound)
+ head,start=toligature(kind,lookupname,head,start,stop,l2,currentlookup.flags[1],discfound)
return head,start,true,nofreplacements
elseif trace_bugs then
if start==stop then