diff options
author | Marius <mariausol@gmail.com> | 2013-02-13 19:20:32 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-02-13 19:20:32 +0200 |
commit | 13706211c6f53d83a620a845c9c0e5bb736345a3 (patch) | |
tree | 45c2d15d5a70813202748cea43832e2f8caba00f | |
parent | 298e57104a0c60ee6fbf14ff67b9515512a8b7cd (diff) | |
download | context-13706211c6f53d83a620a845c9c0e5bb736345a3.tar.gz |
beta 2013.02.13 18:06
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 100644 --- 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 Binary files differindex 81b9897d6..efe94e504 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png Binary files differindex ef320e323..1aaafe23f 100644 --- a/tex/context/base/context-version.png +++ b/tex/context/base/context-version.png 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 Binary files differindex 148b8568f..4bf36f0f7 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex 470c46144..66c3581c1 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf 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 |