summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-09-15 19:53:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-09-15 19:53:00 +0200
commite29a93b7332e16a53aafdaee0933c7aa2e2ff9e9 (patch)
treec53a1e606b75ff735ecba3aaf6c4dcf3df58ae08 /tex
parentcc209e17295e7e78bf1b685cdaeb6037bb938a27 (diff)
downloadcontext-e29a93b7332e16a53aafdaee0933c7aa2e2ff9e9.tar.gz
beta 2011.09.15 19:53
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.mkiv12
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4090 -> 4094 bytes
-rw-r--r--tex/context/base/context-version.pngbin105346 -> 106550 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/core-con.mkiv6
-rw-r--r--tex/context/base/font-ini.mkiv16
-rw-r--r--tex/context/base/lang-mis.mkiv30
-rw-r--r--tex/context/base/mult-low.lua5
-rw-r--r--tex/context/base/mult-mps.lua30
-rw-r--r--tex/context/base/mult-prm.lua515
-rw-r--r--tex/context/base/mult-prm.mkiv85
-rw-r--r--tex/context/base/status-files.pdfbin23926 -> 23935 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin162348 -> 162353 bytes
-rw-r--r--tex/context/base/syst-aux.mkiv694
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
18 files changed, 973 insertions, 430 deletions
diff --git a/tex/context/base/colo-ini.mkiv b/tex/context/base/colo-ini.mkiv
index 80be9619c..2923f64da 100644
--- a/tex/context/base/colo-ini.mkiv
+++ b/tex/context/base/colo-ini.mkiv
@@ -853,20 +853,20 @@
\def\doifcolorelse#1%
{\ifcsname(ca:\currentpalet#1)\endcsname
- \@EA\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\else\ifcsname(ca:#1)\endcsname
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\else
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\fi\fi}
\def\doifcolor#1%
{\ifcsname(ca:\currentpalet#1)\endcsname
- \@EA\firstofoneargument
+ \expandafter\firstofoneargument
\else\ifcsname(ca:#1)\endcsname
- \@EAEAEA\firstofoneargument
+ \doubleexpandafter\firstofoneargument
\else
- \@EAEAEA\gobbleoneargument
+ \doubleexpandafter\gobbleoneargument
\fi\fi}
%D \macros
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 9804622e2..b73bd2cb1 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{2011.09.15 09:08}
+\newcontextversion{2011.09.15 19:53}
%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 7495bc69e..7dd01c0d4 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{2011.09.15 09:08}
+\newcontextversion{2011.09.15 19:53}
%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/context-version.pdf b/tex/context/base/context-version.pdf
index 569c409bf..e58e270c6 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 1c500d943..716a502de 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index f01740290..2a07bf7e6 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{2011.09.15 09:08}
+\edef\contextversion{2011.09.15 19:53}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 6ba54096d..76ccaceb5 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2011.09.15 09:08}
+\edef\contextversion{2011.09.15 19:53}
%D For those who want to use this:
diff --git a/tex/context/base/core-con.mkiv b/tex/context/base/core-con.mkiv
index 8190b2fee..4d81e8a9c 100644
--- a/tex/context/base/core-con.mkiv
+++ b/tex/context/base/core-con.mkiv
@@ -640,11 +640,11 @@
\def\doifconversiondefinedelse#1%
{\ifcsname\??cv\currentlanguage#1\endcsname
- \@EA\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\else\ifcsname\??cv#1\endcsname
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\else
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\fi\fi}
\def\doifelseconversionnumber#1#2% slow but seldom used
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv
index 807b73647..37455551c 100644
--- a/tex/context/base/font-ini.mkiv
+++ b/tex/context/base/font-ini.mkiv
@@ -1330,11 +1330,11 @@
\def\doifelsefontsynonym#1%
{\ifcsname\??ff\fontclass#1\endcsname
- \@EA\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\else\ifcsname\??ff\defaultfontclass#1\endcsname
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\else
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\fi\fi}
% \definetypeface[palatino][rm][serif][palatino,allbold][default]
@@ -3574,11 +3574,11 @@
%
% \def\dododoconvertfont % #1 (detokenize no longer needed in luatex)
% {\ifcsname\@letter@\detokenize\@EA{\p!defined}\endcsname
-% \@EA\@@dodoconvertfont
+% \expandafter\@@dodoconvertfont
% \else\ifcsname\detokenize\@EA{\p!defined}\endcsname
-% \@EAEAEA\@@redoconvertfont
+% \doubleexpandafter\@@redoconvertfont
% \else
-% \@EAEAEA\firstofoneargument
+% \doubleexpandafter\firstofoneargument
% \fi\fi} % {#1}
%
% \let\doconvertfont\dodoconvertfont
@@ -3607,7 +3607,7 @@
\unexpanded\def\doconvertfont#1% #2% we need the protection
{\edef\currentconvertfont{#1}%
\ifx\currentconvertfont\empty \else
- \@EA\dodoconvertfont
+ \expandafter\dodoconvertfont
\fi}
\def\dodoconvertfont
@@ -3617,7 +3617,7 @@
\else\ifcsname\dtcurrentconvertfont\endcsname
\csname\dtcurrentconvertfont\expandafter\endcsname
\else
- \@EAEAEA\currentconvertfont
+ \doubleexpandafter\currentconvertfont
\fi\fi}
%D Low level switches (downward compatible):
diff --git a/tex/context/base/lang-mis.mkiv b/tex/context/base/lang-mis.mkiv
index 610624f97..8f130e881 100644
--- a/tex/context/base/lang-mis.mkiv
+++ b/tex/context/base/lang-mis.mkiv
@@ -216,7 +216,7 @@
\setvalue {\@tmd@text@\detokenize{#1}}{#2}%
\setvalue {\@tmd@both@\detokenize{#1}}{\discretionarycommand#1}%
\scratchcounter\expandafter`\detokenize{#1}%
- \@EA\uedcatcodecommand\@EA\ctxcatcodes\@EA\scratchcounter\csname\@tmd@both@\detokenize{#1}\endcsname}
+ \expandafter\uedcatcodecommand\expandafter\ctxcatcodes\expandafter\scratchcounter\csname\@tmd@both@\detokenize{#1}\endcsname}
\def\handlemathmodediscretionary#1{\executeifdefined{\@tmd@math@\detokenize{#1}}\donothing}
\def\handletextmodediscretionary#1{\executeifdefined{\@tmd@text@\detokenize{#1}}\donothing}
@@ -549,11 +549,11 @@
% ignore mode
\else
\chardef\thecompoundcharacter`#1%
- \@EA\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter
+ \expandafter\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter
\def\!!stringa{#3}%
- \@EA\def\csname\ifx\!!stringa\empty\@cc@\else\@cs@\fi\detokenize{#1#2#3}\endcsname{#4}%
+ \expandafter\def\csname\ifx\!!stringa\empty\@cc@\else\@cs@\fi\detokenize{#1#2#3}\endcsname{#4}%
\setevalue{\@cx@\detokenize{#1}}{\noexpand\handlecompoundcharacter{\detokenize{#1}}}% beter nr's
- \@EA\letcatcodecommand\@EA\ctxcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
+ \expandafter\letcatcodecommand\expandafter\ctxcatcodes\expandafter\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
\fi}
%D In order to serve the language specific well, we will introduce
@@ -595,28 +595,28 @@
\def\dohandlecompoundcharacter
{\ifx\next\bgroup
- %\@EA\dodohandlecompoundcharacter % handle "{ee} -> \"ee
- %\@EA\gobbleoneargument % forget "{ee} -> ee
- \@EA\handlecompoundcharacterone % ignore "{ee} -> "ee
+ %\expandafter\dodohandlecompoundcharacter % handle "{ee} -> \"ee
+ %\expandafter\gobbleoneargument % forget "{ee} -> ee
+ \expandafter\handlecompoundcharacterone % ignore "{ee} -> "ee
\else\ifx\next\egroup
- \@EAEAEA\donohandlecompoundcharacter
+ \doubleexpandafter\donohandlecompoundcharacter
\else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\donohandlecompoundcharacter
+ \tripleexpandafter\donohandlecompoundcharacter
\else
- \@EA\@EAEAEA\@EA\dodohandlecompoundcharacter
+ \tripleexpandafter\dodohandlecompoundcharacter
\fi\fi\fi}
\def\donohandlecompoundcharacter#1{\csname\@nc@\string#1\endcsname}
\def\dododohandlecompoundcharacter
{\ifx\next\bgroup
- \@EA\handlecompoundcharacterone
+ \expandafter\handlecompoundcharacterone
\else\ifx\next\egroup
- \@EAEAEA\handlecompoundcharacterone
+ \doubleexpandafter\handlecompoundcharacterone
\else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\handlecompoundcharacterone
+ \tripleexpandafter\handlecompoundcharacterone
\else
- \@EA\@EAEAEA\@EA\handlecompoundcharactertwo
+ \tripleexpandafter\handlecompoundcharactertwo
\fi\fi\fi}
\def\dodohandlecompoundcharacter#1#2% preserve space
@@ -663,7 +663,7 @@
\def\simplifiedcompoundcharacter#1#2%
{\ifcsname\@cc@\string#1\string#2\endcsname
- \@EA\@EA\@EA\firstofoneargument\csname\@cc@\string#1\string#2\endcsname
+ \doubleexpandafter\firstofoneargument\csname\@cc@\string#1\string#2\endcsname
\else
#2%
\fi}
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index 2084b9ad7..051303349 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -83,6 +83,8 @@ return {
--
"executeifdefined",
--
+ "singleexpandafter", "doubleexpandafter", "tripleexpandafter",
+ --
"dontleavehmode",
--
"wait", "writestatus", "define", "redefine",
@@ -125,5 +127,8 @@ return {
"nopdfcompression", "maximumpdfcompression", "normalpdfcompression",
--
"modulonumber", "dividenumber",
+ --
+ "getfirstcharacter", "doiffirstcharelse",
+ --
}
}
diff --git a/tex/context/base/mult-mps.lua b/tex/context/base/mult-mps.lua
index d596fd518..1dcb4d476 100644
--- a/tex/context/base/mult-mps.lua
+++ b/tex/context/base/mult-mps.lua
@@ -1,4 +1,7 @@
return {
+ tex = {
+ "btex", "etex", "verbatimtex",
+ },
primitives = { -- to be checked
"charcode", "day", "linecap", "linejoin", "miterlimit", "month", "pausing",
"prologues", "showstopping", "time", "tracingcapsules", "tracingchoices", "mpprocset",
@@ -66,31 +69,4 @@ return {
"extra_endchar", "extra_setup", "font_coding_scheme", "clearxy",
"font_extra_space",
},
- metafun = {
- "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian",
- "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos",
- "invsin", "invcos", "acosh", "asinh", "sinh", "cosh",
- "paired", "tripled",
- "unitcircle", "fulldiamond", "unitdiamond",
- "halfcircle", "quartercircle",
- "llcircle", "lrcircle", "urcircle", "ulcircle",
- "tcircle", "bcircle", "lcircle", "rcircle",
- "lltriangle", "lrtriangle", "urtriangle", "ultriangle",
- "smoothed", "cornered", "superellipsed", "randomized", "squeezed", "enlonged", "shortened",
- "punked", "curved", "unspiked", "simplified", "blownup", "stretched",
- "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged",
- "llenlarged", "lrenlarged", "urenlarged", "ulenlarged",
- "llmoved", "lrmoved", "urmoved", "ulmoved",
- "crossed", "laddered", "randomshifted", "interpolated", "paralleled", "cutends",
- "rightarrow", "leftarrow", "centerarrow",
- "boundingbox", "innerboundingbox", "outerboundingbox",
- "bottomboundary", "leftboundary", "topboundary", "rightboundary",
- "xsized", "ysized", "xysized",
- "bbwidth", "bbheight",
- "cmyk", "transparent", "withshade", "spotcolor",
- "drawfill", "undrawfill",
- "inverted", "uncolored", "softened", "grayed",
- "textext", "graphictext",
- "loadfigure", "externalfigure",
- },
}
diff --git a/tex/context/base/mult-prm.lua b/tex/context/base/mult-prm.lua
index feeeb3332..1775fe0bc 100644
--- a/tex/context/base/mult-prm.lua
+++ b/tex/context/base/mult-prm.lua
@@ -1,10 +1,409 @@
return {
- ["primitives"]={
+ ["aleph"]={
+ "AlephVersion",
"Alephminorversion",
+ "Alephrevision",
+ "Alephversion",
+ "Omegaminorversion",
+ "Omegarevision",
+ "Omegaversion",
+ "boxdir",
+ "pagebottomoffset",
+ "pagerightoffset",
+ },
+ ["etex"]={
+ "botmarks",
+ "clubpenalties",
+ "currentgrouplevel",
+ "currentgrouptype",
+ "currentifbranch",
+ "currentiflevel",
+ "currentiftype",
+ "detokenize",
+ "dimexpr",
+ "displaywidowpenalties",
+ "eTeXVersion",
+ "eTeXminorversion",
+ "eTeXrevision",
+ "eTeXversion",
+ "everyeof",
+ "firstmarks",
+ "fontchardp",
+ "fontcharht",
+ "fontcharic",
+ "fontcharwd",
+ "glueexpr",
+ "glueshrink",
+ "glueshrinkorder",
+ "gluestretch",
+ "gluestretchorder",
+ "gluetomu",
+ "ifcsname",
+ "ifdefined",
+ "iffontchar",
+ "interactionmode",
+ "interlinepenalties",
+ "lastlinefit",
+ "lastnodetype",
+ "marks",
+ "muexpr",
+ "mutoglue",
+ "numexpr",
+ "pagediscards",
+ "parshapedimen",
+ "parshapeindent",
+ "parshapelength",
+ "predisplaydirection",
+ "protected",
+ "readline",
+ "savinghyphcodes",
+ "savingvdiscards",
+ "scantokens",
+ "showgroups",
+ "showifs",
+ "showtokens",
+ "splitbotmarks",
+ "splitdiscards",
+ "splitfirstmarks",
+ "topmarks",
+ "tracingassigns",
+ "tracinggroups",
+ "tracingifs",
+ "tracingnesting",
+ "tracingscantokens",
+ "unexpanded",
+ "unless",
+ "widowpenalties",
+ },
+ ["luatex"]={
+ "Udelcode",
+ "Udelcodenum",
+ "Udelimiter",
+ "Udelimiterover",
+ "Udelimiterunder",
+ "Umathaccent",
+ "Umathaccents",
+ "Umathaxis",
+ "Umathbinbinspacing",
+ "Umathbinclosespacing",
+ "Umathbininnerspacing",
+ "Umathbinopenspacing",
+ "Umathbinopspacing",
+ "Umathbinordspacing",
+ "Umathbinpunctspacing",
+ "Umathbinrelspacing",
+ "Umathbotaccent",
+ "Umathchar",
+ "Umathchardef",
+ "Umathcharnum",
+ "Umathclosebinspacing",
+ "Umathcloseclosespacing",
+ "Umathcloseinnerspacing",
+ "Umathcloseopenspacing",
+ "Umathcloseopspacing",
+ "Umathcloseordspacing",
+ "Umathclosepunctspacing",
+ "Umathcloserelspacing",
+ "Umathcode",
+ "Umathcodenum",
+ "Umathconnectoroverlapmin",
+ "Umathfractiondelsize",
+ "Umathfractiondenomdown",
+ "Umathfractiondenomvgap",
+ "Umathfractionnumup",
+ "Umathfractionnumvgap",
+ "Umathfractionrule",
+ "Umathinnerbinspacing",
+ "Umathinnerclosespacing",
+ "Umathinnerinnerspacing",
+ "Umathinneropenspacing",
+ "Umathinneropspacing",
+ "Umathinnerordspacing",
+ "Umathinnerpunctspacing",
+ "Umathinnerrelspacing",
+ "Umathlimitabovebgap",
+ "Umathlimitabovekern",
+ "Umathlimitabovevgap",
+ "Umathlimitbelowbgap",
+ "Umathlimitbelowkern",
+ "Umathlimitbelowvgap",
+ "Umathopbinspacing",
+ "Umathopclosespacing",
+ "Umathopenbinspacing",
+ "Umathopenclosespacing",
+ "Umathopeninnerspacing",
+ "Umathopenopenspacing",
+ "Umathopenopspacing",
+ "Umathopenordspacing",
+ "Umathopenpunctspacing",
+ "Umathopenrelspacing",
+ "Umathoperatorsize",
+ "Umathopinnerspacing",
+ "Umathopopenspacing",
+ "Umathopopspacing",
+ "Umathopordspacing",
+ "Umathoppunctspacing",
+ "Umathoprelspacing",
+ "Umathordbinspacing",
+ "Umathordclosespacing",
+ "Umathordinnerspacing",
+ "Umathordopenspacing",
+ "Umathordopspacing",
+ "Umathordordspacing",
+ "Umathordpunctspacing",
+ "Umathordrelspacing",
+ "Umathoverbarkern",
+ "Umathoverbarrule",
+ "Umathoverbarvgap",
+ "Umathoverdelimiterbgap",
+ "Umathoverdelimitervgap",
+ "Umathpunctbinspacing",
+ "Umathpunctclosespacing",
+ "Umathpunctinnerspacing",
+ "Umathpunctopenspacing",
+ "Umathpunctopspacing",
+ "Umathpunctordspacing",
+ "Umathpunctpunctspacing",
+ "Umathpunctrelspacing",
+ "Umathquad",
+ "Umathradicaldegreeafter",
+ "Umathradicaldegreebefore",
+ "Umathradicaldegreeraise",
+ "Umathradicalkern",
+ "Umathradicalrule",
+ "Umathradicalvgap",
+ "Umathrelbinspacing",
+ "Umathrelclosespacing",
+ "Umathrelinnerspacing",
+ "Umathrelopenspacing",
+ "Umathrelopspacing",
+ "Umathrelordspacing",
+ "Umathrelpunctspacing",
+ "Umathrelrelspacing",
+ "Umathspaceafterscript",
+ "Umathstackdenomdown",
+ "Umathstacknumup",
+ "Umathstackvgap",
+ "Umathsubshiftdown",
+ "Umathsubshiftdrop",
+ "Umathsubsupshiftdown",
+ "Umathsubsupvgap",
+ "Umathsubtopmax",
+ "Umathsupbottommin",
+ "Umathsupshiftdrop",
+ "Umathsupshiftup",
+ "Umathsupsubbottommax",
+ "Umathunderbarkern",
+ "Umathunderbarrule",
+ "Umathunderbarvgap",
+ "Umathunderdelimiterbgap",
+ "Umathunderdelimitervgap",
+ "Uoverdelimiter",
+ "Uradical",
+ "Uroot",
+ "Ustack",
+ "Ustartdisplaymath",
+ "Ustartmath",
+ "Ustopdisplaymath",
+ "Ustopmath",
+ "Usubscript",
+ "Usuperscript",
+ "Uunderdelimiter",
+ "alignmark",
+ "aligntab",
+ "attribute",
+ "attributedef",
+ "catcodetable",
+ "clearmarks",
+ "crampeddisplaystyle",
+ "crampedscriptscriptstyle",
+ "crampedscriptstyle",
+ "crampedtextstyle",
+ "fontid",
+ "formatname",
+ "gleaders",
+ "ifabsdim",
+ "ifabsnum",
+ "ifprimitive",
+ "initcatcodetable",
+ "latelua",
+ "luaescapestring",
+ "luastartup",
+ "luatexdatestamp",
+ "luatexrevision",
+ "luatexversion",
+ "mathstyle",
+ "nokerns",
+ "noligs",
+ "outputbox",
+ "pageleftoffset",
+ "pagetopoffset",
+ "postexhyphenchar",
+ "posthyphenchar",
+ "preexhyphenchar",
+ "prehyphenchar",
+ "primitive",
+ "savecatcodetable",
+ "scantextokens",
+ "suppressfontnotfounderror",
+ "suppressifcsnameerror",
+ "suppresslongerror",
+ "suppressoutererror",
+ "synctex",
+ },
+ ["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",
+ },
+ ["pdftex"]={
+ "efcode",
+ "expanded",
+ "ifincsname",
+ "ifpdfabsdim",
+ "ifpdfabsnum",
+ "ifpdfprimitive",
+ "leftmarginkern",
+ "letterspacefont",
+ "lpcode",
+ "pdfadjustspacing",
+ "pdfannot",
+ "pdfcatalog",
+ "pdfcolorstack",
+ "pdfcolorstackinit",
+ "pdfcompresslevel",
+ "pdfcopyfont",
+ "pdfcreationdate",
+ "pdfdecimaldigits",
+ "pdfdest",
+ "pdfdestmargin",
+ "pdfdraftmode",
+ "pdfeachlinedepth",
+ "pdfeachlineheight",
+ "pdfendlink",
+ "pdfendthread",
+ "pdffirstlineheight",
+ "pdffontattr",
+ "pdffontexpand",
+ "pdffontname",
+ "pdffontobjnum",
+ "pdffontsize",
+ "pdfgamma",
+ "pdfgentounicode",
+ "pdfglyphtounicode",
+ "pdfhorigin",
+ "pdfignoreddimen",
+ "pdfimageapplygamma",
+ "pdfimagegamma",
+ "pdfimagehicolor",
+ "pdfimageresolution",
+ "pdfincludechars",
+ "pdfinclusioncopyfonts",
+ "pdfinclusionerrorlevel",
+ "pdfinfo",
+ "pdfinsertht",
+ "pdflastannot",
+ "pdflastlinedepth",
+ "pdflastlink",
+ "pdflastobj",
+ "pdflastxform",
+ "pdflastximage",
+ "pdflastximagecolordepth",
+ "pdflastximagepages",
+ "pdflastxpos",
+ "pdflastypos",
+ "pdflinkmargin",
+ "pdfliteral",
+ "pdfmapfile",
+ "pdfmapline",
+ "pdfminorversion",
+ "pdfnames",
+ "pdfnoligatures",
+ "pdfnormaldeviate",
+ "pdfobj",
+ "pdfobjcompresslevel",
+ "pdfoptionpdfminorversion",
+ "pdfoutline",
+ "pdfoutput",
+ "pdfpageattr",
+ "pdfpagebox",
+ "pdfpageheight",
+ "pdfpageref",
+ "pdfpageresources",
+ "pdfpagesattr",
+ "pdfpagewidth",
+ "pdfpkmode",
+ "pdfpkresolution",
+ "pdfprimitive",
+ "pdfprotrudechars",
+ "pdfpxdimen",
+ "pdfrandomseed",
+ "pdfrefobj",
+ "pdfrefxform",
+ "pdfrefximage",
+ "pdfreplacefont",
+ "pdfrestore",
+ "pdfretval",
+ "pdfsave",
+ "pdfsavepos",
+ "pdfsetmatrix",
+ "pdfsetrandomseed",
+ "pdfstartlink",
+ "pdfstartthread",
+ "pdftexbanner",
+ "pdftexrevision",
+ "pdftexversion",
+ "pdfthread",
+ "pdfthreadmargin",
+ "pdftracingfonts",
+ "pdftrailer",
+ "pdfuniformdeviate",
+ "pdfuniqueresname",
+ "pdfvorigin",
+ "pdfxform",
+ "pdfxformattr",
+ "pdfxformname",
+ "pdfxformresources",
+ "pdfximage",
+ "pdfximagebbox",
+ "quitvmode",
+ "rightmarginkern",
+ "rpcode",
+ "tagcode",
+ },
+ ["tex"]={
+ "-",
+ "/",
+ "AlephVersion",
+ "Alephminorversion",
+ "Alephrevision",
"Alephversion",
"OmegaVersion",
"Omegaminorversion",
"Omegarevision",
+ "Omegaversion",
"Udelcode",
"Udelcodenum",
"Udelimiter",
@@ -64,6 +463,7 @@ return {
"Umathopenopenspacing",
"Umathopenopspacing",
"Umathopenordspacing",
+ "Umathopenpunctspacing",
"Umathopenrelspacing",
"Umathoperatorsize",
"Umathopinnerspacing",
@@ -105,6 +505,7 @@ return {
"Umathrelinnerspacing",
"Umathrelopenspacing",
"Umathrelopspacing",
+ "Umathrelordspacing",
"Umathrelpunctspacing",
"Umathrelrelspacing",
"Umathspaceafterscript",
@@ -136,6 +537,7 @@ return {
"Usubscript",
"Usuperscript",
"Uunderdelimiter",
+ "above",
"abovedisplayshortskip",
"abovedisplayskip",
"abovewithdelims",
@@ -153,6 +555,11 @@ return {
"badness",
"baselineskip",
"batchmode",
+ "begingroup",
+ "belowdisplayshortskip",
+ "belowdisplayskip",
+ "binoppenalty",
+ "bodydir",
"botmark",
"botmarks",
"box",
@@ -173,6 +580,7 @@ return {
"closeout",
"clubpenalties",
"clubpenalty",
+ "copy",
"count",
"countdef",
"cr",
@@ -186,11 +594,14 @@ return {
"currentgrouptype",
"currentifbranch",
"currentiflevel",
+ "currentiftype",
"day",
"deadcycles",
"def",
+ "defaulthyphenchar",
"defaultskewchar",
"delcode",
+ "delimiter",
"delimiterfactor",
"delimitershortfall",
"detokenize",
@@ -199,11 +610,16 @@ return {
"dimexpr",
"directlua",
"discretionary",
+ "displayindent",
"displaylimits",
"displaystyle",
+ "displaywidowpenalties",
"displaywidowpenalty",
+ "displaywidth",
+ "divide",
"doublehyphendemerits",
"dp",
+ "dump",
"eTeXVersion",
"eTeXminorversion",
"eTeXrevision",
@@ -212,28 +628,41 @@ return {
"efcode",
"else",
"emergencystretch",
+ "end",
"endcsname",
"endgroup",
"endinput",
"endlinechar",
"eqno",
+ "errhelp",
"errmessage",
"errorcontextlines",
"errorstopmode",
"escapechar",
+ "everycr",
+ "everydisplay",
"everyeof",
+ "everyhbox",
"everyjob",
"everymath",
+ "everypar",
"everyvbox",
"exhyphenchar",
"exhyphenpenalty",
"expandafter",
+ "expanded",
+ "fam",
"fi",
+ "finalhyphendemerits",
+ "firstmark",
"firstmarks",
"floatingpenalty",
"font",
+ "fontchardp",
+ "fontcharht",
"fontcharic",
"fontcharwd",
+ "fontdimen",
"fontid",
"fontname",
"formatname",
@@ -242,6 +671,7 @@ return {
"gleaders",
"global",
"globaldefs",
+ "glueexpr",
"glueshrink",
"glueshrinkorder",
"gluestretch",
@@ -255,6 +685,7 @@ return {
"hfil",
"hfill",
"hfilneg",
+ "hfuzz",
"hoffset",
"holdinginserts",
"hrule",
@@ -262,6 +693,7 @@ return {
"hskip",
"hss",
"ht",
+ "hyphenation",
"hyphenchar",
"hyphenpenalty",
"if",
@@ -271,14 +703,19 @@ return {
"ifcat",
"ifcsname",
"ifdefined",
+ "ifdim",
"ifeof",
+ "iffalse",
+ "iffontchar",
"ifhbox",
"ifhmode",
"ifincsname",
+ "ifinner",
"ifmmode",
"ifnum",
"ifodd",
"ifpdfabsdim",
+ "ifpdfabsnum",
"ifpdfprimitive",
"ifprimitive",
"iftrue",
@@ -291,19 +728,25 @@ return {
"indent",
"initcatcodetable",
"input",
+ "inputlineno",
"insert",
"insertpenalties",
"interactionmode",
+ "interlinepenalties",
"interlinepenalty",
+ "jobname",
+ "kern",
"language",
"lastbox",
"lastkern",
"lastlinefit",
"lastnodetype",
"lastpenalty",
+ "lastskip",
"latelua",
"lccode",
"leaders",
+ "left",
"leftghost",
"lefthyphenmin",
"leftmarginkern",
@@ -311,19 +754,25 @@ return {
"leqno",
"let",
"letterspacefont",
+ "limits",
"linepenalty",
"lineskip",
"lineskiplimit",
"localbrokenpenalty",
"localinterlinepenalty",
+ "localleftbox",
"localrightbox",
"long",
+ "looseness",
+ "lower",
"lowercase",
"lpcode",
"luaescapestring",
+ "luastartup",
"luatexdatestamp",
"luatexrevision",
"luatexversion",
+ "mag",
"mark",
"marks",
"mathaccent",
@@ -331,28 +780,36 @@ return {
"mathchar",
"mathchardef",
"mathchoice",
+ "mathclose",
"mathcode",
"mathdir",
"mathinner",
"mathop",
"mathopen",
"mathord",
+ "mathpunct",
+ "mathrel",
"mathstyle",
"mathsurround",
"maxdeadcycles",
"maxdepth",
"meaning",
+ "medmuskip",
"message",
"middle",
+ "mkern",
"month",
"moveleft",
"moveright",
+ "mskip",
"muexpr",
+ "multiply",
"muskip",
"muskipdef",
"mutoglue",
"newlinechar",
"noalign",
+ "noboundary",
"noexpand",
"noindent",
"nokerns",
@@ -361,6 +818,8 @@ return {
"nolocaldirs",
"nolocalwhatsits",
"nonscript",
+ "nonstopmode",
+ "nulldelimiterspace",
"nullfont",
"number",
"numexpr",
@@ -393,6 +852,7 @@ return {
"pagegoal",
"pageheight",
"pageleftoffset",
+ "pagerightoffset",
"pageshrink",
"pagestretch",
"pagetopoffset",
@@ -401,6 +861,8 @@ return {
"par",
"pardir",
"parfillskip",
+ "parindent",
+ "parshape",
"parshapedimen",
"parshapeindent",
"parshapelength",
@@ -408,19 +870,25 @@ return {
"patterns",
"pausing",
"pdfadjustspacing",
+ "pdfannot",
"pdfcatalog",
"pdfcolorstack",
"pdfcolorstackinit",
"pdfcompresslevel",
+ "pdfcopyfont",
+ "pdfcreationdate",
"pdfdecimaldigits",
"pdfdest",
"pdfdestmargin",
"pdfdraftmode",
"pdfeachlinedepth",
"pdfeachlineheight",
+ "pdfendlink",
"pdfendthread",
"pdffirstlineheight",
+ "pdffontattr",
"pdffontexpand",
+ "pdffontname",
"pdffontobjnum",
"pdffontsize",
"pdfgamma",
@@ -428,8 +896,11 @@ return {
"pdfglyphtounicode",
"pdfhorigin",
"pdfignoreddimen",
+ "pdfimageapplygamma",
+ "pdfimagegamma",
"pdfimagehicolor",
"pdfimageresolution",
+ "pdfincludechars",
"pdfinclusioncopyfonts",
"pdfinclusionerrorlevel",
"pdfinfo",
@@ -439,24 +910,36 @@ return {
"pdflastlink",
"pdflastobj",
"pdflastxform",
+ "pdflastximage",
+ "pdflastximagecolordepth",
+ "pdflastximagepages",
"pdflastxpos",
"pdflastypos",
"pdflinkmargin",
+ "pdfliteral",
+ "pdfmapfile",
"pdfmapline",
"pdfminorversion",
+ "pdfnames",
+ "pdfnoligatures",
"pdfnormaldeviate",
"pdfobj",
+ "pdfobjcompresslevel",
"pdfoptionpdfminorversion",
+ "pdfoutline",
"pdfoutput",
+ "pdfpageattr",
"pdfpagebox",
"pdfpageheight",
"pdfpageref",
+ "pdfpageresources",
"pdfpagesattr",
"pdfpagewidth",
"pdfpkmode",
"pdfpkresolution",
"pdfprimitive",
"pdfprotrudechars",
+ "pdfpxdimen",
"pdfrandomseed",
"pdfrefobj",
"pdfrefxform",
@@ -466,13 +949,18 @@ return {
"pdfretval",
"pdfsave",
"pdfsavepos",
+ "pdfsetmatrix",
"pdfsetrandomseed",
+ "pdfstartlink",
"pdfstartthread",
"pdftexbanner",
"pdftexrevision",
"pdftexversion",
+ "pdfthread",
+ "pdfthreadmargin",
"pdftracingfonts",
"pdftrailer",
+ "pdfuniformdeviate",
"pdfuniqueresname",
"pdfvorigin",
"pdfxform",
@@ -486,6 +974,7 @@ return {
"postexhyphenchar",
"posthyphenchar",
"predisplaydirection",
+ "predisplaypenalty",
"predisplaysize",
"preexhyphenchar",
"prehyphenchar",
@@ -495,19 +984,24 @@ return {
"primitive",
"protected",
"quitvmode",
+ "radical",
"raise",
"read",
"readline",
"relax",
"relpenalty",
"right",
+ "rightghost",
+ "righthyphenmin",
"rightmarginkern",
"rightskip",
+ "romannumeral",
"rpcode",
"savecatcodetable",
"savinghyphcodes",
"savingvdiscards",
"scantextokens",
+ "scantokens",
"scriptfont",
"scriptscriptfont",
"scriptscriptstyle",
@@ -518,8 +1012,10 @@ return {
"setlanguage",
"sfcode",
"shipout",
+ "show",
"showbox",
"showboxbreadth",
+ "showboxdepth",
"showgroups",
"showifs",
"showlists",
@@ -527,13 +1023,16 @@ return {
"showtokens",
"skewchar",
"skip",
+ "skipdef",
"spacefactor",
"spaceskip",
"span",
"special",
"splitbotmark",
+ "splitbotmarks",
"splitdiscards",
"splitfirstmark",
+ "splitfirstmarks",
"splitmaxdepth",
"splittopskip",
"string",
@@ -544,13 +1043,17 @@ return {
"synctex",
"tabskip",
"tagcode",
+ "textdir",
"textfont",
+ "textstyle",
"the",
"thickmuskip",
+ "thinmuskip",
"time",
"toks",
"toksdef",
"tolerance",
+ "topmark",
"topmarks",
"topskip",
"tracingassigns",
@@ -565,18 +1068,22 @@ return {
"tracingpages",
"tracingparagraphs",
"tracingrestores",
+ "tracingscantokens",
"tracingstats",
"uccode",
"uchyph",
+ "underline",
"unexpanded",
"unhbox",
"unhcopy",
"unkern",
"unless",
+ "unpenalty",
"unskip",
"unvbox",
"unvcopy",
"uppercase",
+ "vadjust",
"valign",
"vbadness",
"vbox",
@@ -588,14 +1095,20 @@ return {
"voffset",
"vrule",
"vsize",
+ "vskip",
+ "vsplit",
"vss",
"vtop",
"wd",
"widowpenalties",
"widowpenalty",
+ "write",
"xdef",
"xleaders",
"xspaceskip",
"year",
},
+ ["xetex"]={
+ "XeTeXversion",
+ },
} \ No newline at end of file
diff --git a/tex/context/base/mult-prm.mkiv b/tex/context/base/mult-prm.mkiv
index af9773b6a..b965c7f05 100644
--- a/tex/context/base/mult-prm.mkiv
+++ b/tex/context/base/mult-prm.mkiv
@@ -1,26 +1,63 @@
-\starttext
-
\startluacode
- local primitives = table.unique(
- table.merge(
- { },
- table.fromhash(tex.primitives()),
- tex.extraprimitives('etex'),
- tex.extraprimitives('pdftex'),
- tex.extraprimitives('luatex'),
- tex.extraprimitives('aleph'),
- tex.extraprimitives('omega'),
- {
- "def", "catcode", "futurelet", "chardef",
- "voffset", "hoffset", "savingvdiscards",
- "numexpr", "dimexpr",
- "write", "dump", "skipdef,"
- }
- )
- )
- table.sort(primitives)
- table.remove(primitives,1) -- \-
- io.savedata("mult-prm.lua",table.serialize({ primitives = primitives },true,{ reduce = true, inline = false }))
-\stopluacode
-\stoptext
+ context.starttext()
+
+ function table.sorted(t)
+ table.sort(t)
+ return t
+ end
+
+ local missing = {
+ tex = {
+ "def", "catcode", "futurelet", "chardef",
+ "voffset", "hoffset",
+ "numexpr", "dimexpr",
+ "write", "dump", "skipdef,"
+ },
+ etex = {
+ "savingvdiscards",
+ },
+ pdftex = {
+ },
+ luatex = {
+ },
+ aleph = {
+ },
+ omega = {
+ },
+ xetex = {
+ "XeTeXversion",
+ },
+ plain = {
+ "TeX",
+ "bgroup", "egroup", "endgraf", "space", "empty", "null",
+ "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newhelp", "newread", "newwrite", "newfam", "newlanguage", "newinsert", "newif",
+ "maxdimen", "magstephalf", "magstep",
+ "frenchspacing", "nonfrenchspacing", "normalbaselines", "obeylines", "obeyspaces", "raggedright", "ttraggedright",
+ "thinspace", "negthinspace", "enspace", "enskip", "quad", "qquad",
+ "smallskip", "medskip", "bigskip", "removelastskip", "topglue", "vglue", "hglue",
+ "break", "nobreak", "allowbreak", "filbreak", "goodbreak", "smallbreak", "medbreak", "bigbreak",
+ "line", "leftline", "rightline", "centerline", "rlap", "llap", "underbar", "strutbox", "strut",
+ "cases", "matrix", "pmatrix", "bordermatrix", "eqalign", "displaylines", "eqalignno", "leqalignno",
+ "pageno", "folio", "tracingall", "showhyphens", "fmtname", "fmtversion",
+ "hphantom", "vphantom", "phantom", "smash",
+ },
+ }
+
+ local primitives = {
+ tex = table.sorted( table.merged( missing.tex , table.fromhash(tex.primitives()) ) ),
+ etex = table.sorted( table.merged( missing.etex , tex.extraprimitives('etex') ) ),
+ pdftex = table.sorted( table.merged( missing.pdftex, tex.extraprimitives('pdftex') ) ),
+ luatex = table.sorted( table.merged( missing.luatex, tex.extraprimitives('luatex') ) ),
+ aleph = table.sorted( table.merged( missing.aleph , tex.extraprimitives('aleph') ) ),
+ omega = table.sorted( table.merged( missing.omega , tex.extraprimitives('omega') ) ),
+ xetex = table.sorted( table.merged( missing.xetex , { } ) ),
+ }
+
+ table.remove(primitives.tex,1) -- get rid of \-
+
+ io.savedata("mult-prm.lua",table.serialize(primitives,true,{ reduce = true, inline = false }))
+
+ context.stoptext()
+
+\stopluacode
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 6c93547e2..37e8ae081 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 6c9d6852c..b150b502d 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index 4b26388b2..408a290ad 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -127,19 +127,22 @@
\def\s!empty {empty}
%D \macros
-%D {@EA,@EAEA,@EAEAEA,@EAEAEAEAEAEA,expanded,startexpanded}
+%D {doubleexpandafter,tripleexpandafter,expanded,startexpanded}
%D
%D When in unprotected mode, to be entered with
%D \type{\unprotect}, one can use \type{\@EA} as equivalent
%D of \type{\expandafter}.
-\let\@NX\noexpand
-\let\@EA\expandafter
+\let\singleexpandafter \expandafter
+\def\doubleexpandafter{\expandafter\expandafter\expandafter}
+\def\tripleexpandafter{\expandafter\doubleexpandafter\expandafter}
-\def\@EAEA {\expandafter\expandafter}
-\def\@EAEAEA{\expandafter\expandafter\expandafter}
+%D not needed any more now that we have wide screens
-\def\@EAEAEAEAEAEA{\expandafter\@EAEAEA\expandafter}
+\let\@NX \noexpand
+\let\@EA \expandafter
+\let\@EAEAEA \doubleexpandafter
+\let\@EAEAEAEAEAEA\tripleexpandafter
%D Sometimes we pass macros as arguments to commands that
%D don't expand them before interpretation. Such commands can
@@ -156,7 +159,7 @@
%D alternatives to this command. Beware, only the simple one
%D has \type {\noexpand} before its argument.
-\long\def\@@expanded{} % always long; global (less restores)
+\let\@@expanded\empty % always long and global (less restores)
\long\def\expanded#1%
{\long\xdef\@@expanded{\noexpand#1}\@@expanded}
@@ -230,16 +233,16 @@
\def\inspect_next_character
{\ifx\nexttoken\blankspace
- \@EA\reinspect_next_character
+ \expandafter\reinspect_next_character
\else
- \@EA\inspect_next_character_indeed
+ \expandafter\inspect_next_character_indeed
\fi}
\def\inspect_next_character_indeed
{\ifx\nexttoken\charactertoken
- \@EA\!!stringa
+ \expandafter\!!stringa
\else
- \@EA\!!stringb
+ \expandafter\!!stringb
\fi}
%D Because we will mostly use this macro for testing if the next
@@ -260,16 +263,16 @@
\def\inspect_next_optional_character
{\ifx\nexttoken\blankspace
- \@EA\reinspect_next_optional_character
+ \expandafter\reinspect_next_optional_character
\else
- \@EA\inspect_next_optional_character_indeed
+ \expandafter\inspect_next_optional_character_indeed
\fi}
\def\inspect_next_optional_character_indeed
{\ifx\nexttoken\next_optional_character_token
- \@EA\next_optional_command_yes
+ \expandafter\next_optional_command_yes
\else
- \@EA\next_optional_command_nop
+ \expandafter\next_optional_command_nop
\fi}
\let\next_bgroup_character_token\bgroup
@@ -282,16 +285,16 @@
\def\inspect_next_bgroup_character
{\ifx\nexttoken\blankspace
- \@EA\reinspect_next_bgroup_character
+ \expandafter\reinspect_next_bgroup_character
\else
- \@EA\inspect_next_bgroup_character_indeed
+ \expandafter\inspect_next_bgroup_character_indeed
\fi}
\def\inspect_next_bgroup_character_indeed
{\ifx\nexttoken\next_bgroup_character_token
- \@EA\next_bgroup_command_yes
+ \expandafter\next_bgroup_command_yes
\else
- \@EA\next_bgroup_command_nop
+ \expandafter\next_bgroup_command_nop
\fi}
\let\next_parenthesis_character_token(
@@ -304,16 +307,16 @@
\def\inspect_next_parenthesis_character
{\ifx\nexttoken\blankspace
- \@EA\reinspect_next_parenthesis_character
+ \expandafter\reinspect_next_parenthesis_character
\else
- \@EA\inspect_next_parenthesis_character_indeed
+ \expandafter\inspect_next_parenthesis_character_indeed
\fi}
\def\inspect_next_parenthesis_character_indeed
{\ifx\nexttoken\next_parenthesis_character_token
- \@EA\next_parenthesis_command_yes
+ \expandafter\next_parenthesis_command_yes
\else
- \@EA\next_parenthesis_command_nop
+ \expandafter\next_parenthesis_command_nop
\fi}
%D The next one is handy in predictable situations:
@@ -456,44 +459,44 @@
\def\doifundefinedelse#1%
{\ifcsname#1\endcsname
- \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
+ \expandafter\secondoftwoarguments\else\expandafter\firstoftwoarguments
\fi}
\def\doifdefinedelse#1%
{\ifcsname#1\endcsname
- \@EA\firstoftwoarguments\else\@EA\secondoftwoarguments
+ \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments
\fi}
\def\doifundefined#1%
{\ifcsname#1\endcsname
- \@EA\gobbleoneargument\else\@EA\firstofoneargument
+ \expandafter\gobbleoneargument\else\expandafter\firstofoneargument
\fi}
\def\doifdefined#1%
{\ifcsname#1\endcsname
- \@EA\firstofoneargument\else\@EA\gobbleoneargument
+ \expandafter\firstofoneargument\else\expandafter\gobbleoneargument
\fi}
\else
\def\doifundefinedelse#1%
- {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
- \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
+ {\ifcsname\detokenize\expandafter{\normalexpanded{#1}}\endcsname
+ \expandafter\secondoftwoarguments\else\expandafter\firstoftwoarguments
\fi}
\def\doifdefinedelse#1%
- {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
- \@EA\firstoftwoarguments\else\@EA\secondoftwoarguments
+ {\ifcsname\detokenize\expandafter{\normalexpanded{#1}}\endcsname
+ \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments
\fi}
\def\doifundefined#1%
- {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
- \@EA\gobbleoneargument\else\@EA\firstofoneargument
+ {\ifcsname\detokenize\expandafter{\normalexpanded{#1}}\endcsname
+ \expandafter\gobbleoneargument\else\expandafter\firstofoneargument
\fi}
\def\doifdefined#1%
- {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
- \@EA\firstofoneargument\else\@EA\gobbleoneargument
+ {\ifcsname\detokenize\expandafter{\normalexpanded{#1}}\endcsname
+ \expandafter\firstofoneargument\else\expandafter\gobbleoneargument
\fi}
\fi
@@ -664,15 +667,15 @@
% !5yes=\doifnotinset{}{}{yes}
% !6yes=\doifnotinset{aaa}{}{yes}
-\def\rightoptionalbracket{]}
+\def\right_optional_bracket{]}
\long\def\do_quit_if_item_in_set_else#1],\relax{\firstoftwoarguments}
\long\def\do_quit_if_item_in_set #1],\relax{\firstofoneargument}
\long\def\do_quit_if_item_not_in_set #1],\relax{\gobbleoneargument}
-\long\def\redo_if_in_set_else{\expandafter\do_check_if_item_in_set_else\!!stringb,],\relax}
-\long\def\redo_if_in_set {\expandafter\do_check_if_item_in_set \!!stringb,],\relax}
-\long\def\redo_if_not_in_set {\expandafter\do_check_if_item_not_in_set \!!stringb,],\relax}
+\long\def\re_do_if_in_set_else{\expandafter\do_check_if_item_in_set_else\!!stringb,],\relax}
+\long\def\re_do_if_in_set {\expandafter\do_check_if_item_in_set \!!stringb,],\relax}
+\long\def\re_do_if_not_in_set {\expandafter\do_check_if_item_not_in_set \!!stringb,],\relax}
\long\def\doifinsetelse#1% make this two step too
{\edef\!!stringa{#1}%
@@ -687,7 +690,7 @@
\ifx\!!stringb\empty
\expandafter\secondoftwoarguments
\else
- \expandafter\redo_if_in_set_else
+ \expandafter\re_do_if_in_set_else
\fi}
\long\def\doifinset#1%
@@ -703,7 +706,7 @@
\ifx\!!stringb\empty
\expandafter\gobbleoneargument
\else
- \expandafter\redo_if_in_set
+ \expandafter\re_do_if_in_set
\fi}
\long\def\doifnotinset#1%
@@ -719,7 +722,7 @@
\ifx\!!stringb\empty
\expandafter\firstofoneargument
\else
- \expandafter\redo_if_not_in_set % ...]{true}
+ \expandafter\re_do_if_not_in_set % ...]{true}
\fi}
\def\do_check_if_item_in_set_else#1,#2% #2 eats up preceding space
@@ -731,7 +734,7 @@
\fi#2}
\def\do_do_check_if_item_in_set_else
- {\ifx\!!stringb\rightoptionalbracket
+ {\ifx\!!stringb\right_optional_bracket
\expandafter\thirdofthreearguments
\else
\expandafter\do_do_do_check_if_item_in_set_else
@@ -753,7 +756,7 @@
\fi#2}
\def\do_do_check_if_item_in_set
- {\ifx\!!stringb\rightoptionalbracket
+ {\ifx\!!stringb\right_optional_bracket
\expandafter\gobbletwoarguments
\else
\expandafter\do_do_do_check_if_item_in_set
@@ -775,7 +778,7 @@
\fi#2}
\def\do_do_check_if_item_not_in_set
- {\ifx\!!stringb\rightoptionalbracket
+ {\ifx\!!stringb\right_optional_bracket
\expandafter\secondoftwoarguments
\else
\expandafter\do_do_do_check_if_item_not_in_set
@@ -820,7 +823,7 @@
\def\do_check_if_common_else_one#1,#2%
{\edef\!!stringc{#1}%
- \ifx\!!stringc\rightoptionalbracket
+ \ifx\!!stringc\right_optional_bracket
\expandafter\thirdofthreearguments
\else
\expandafter\do_common_check
@@ -828,7 +831,7 @@
\def\do_check_if_common_else_two#1,#2% we can do an empty #1 check too
{\edef\commalistelement{#1}%
- \ifx\commalistelement\rightoptionalbracket
+ \ifx\commalistelement\right_optional_bracket
\expandafter\re_do_check_if_common_else_one
\else
\expandafter\do_do_check_if_common_else_two
@@ -904,68 +907,68 @@
\newcount\commalevel
-\def\dododoprocesscommaitem
+\def\do_do_do_process_comma_item
{\csname\s!next\the\commalevel\endcsname}
-\def\dodoprocesscommaitem
+\def\do_do_process_comma_item
{\ifx\nexttoken\blankspace
- \@EA\redoprocesscommaitem
+ \expandafter\re_do_process_comma_item
\else
- \@EA\dodoprocesscommaitemindeed
+ \expandafter\do_do_process_comma_item_indeed
\fi}
-\def\dodoprocesscommaitemindeed
+\def\do_do_process_comma_item_indeed
{\ifx\nexttoken]%
- \@EA\gobbleoneargument
+ \expandafter\gobbleoneargument
\else
- \@EA\dododoprocesscommaitem
+ \expandafter\do_do_do_process_comma_item
\fi}
-\def\doprocesscommaitem
- {\futurelet\nexttoken\dodoprocesscommaitem}
+\def\do_process_comma_item
+ {\futurelet\nexttoken\do_do_process_comma_item}
%D Empty arguments are not processed. Empty items (\type{,,})
%D however are treated. We have to check for the special case
%D \type{[{a,b,c}]}.
\unexpanded\def\processcommalist[%
- {\futurelet\nexttoken\docheckcommaitem}
+ {\futurelet\nexttoken\do_check_comma_item}
-\def\docheckcommaitem
+\def\do_check_comma_item
{\ifx\nexttoken]%
\expandafter\gobblethreearguments
\else
- \expandafter\doprocesscommalist
+ \expandafter\do_process_comma_list
\fi
\relax} % this one preserved the next {}
-\def\doprocesscommalist#1]#2%
+\def\do_process_comma_list#1]#2%
{\global\advance\commalevel \plusone
\long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#2{##1}\doprocesscommaitem}%
- \@EA\dodoprocesscommaitem\gobbleoneargument#1,]\relax
+ {#2{##1}\do_process_comma_item}%
+ \expandafter\do_do_process_comma_item\gobbleoneargument#1,]\relax
\global\advance\commalevel \minusone }
%D One way of quitting a commalist halfway is:
\def\quitcommalist
- {\begingroup\let\doprocesscommaitem\doquitcommalist}
+ {\begingroup\let\do_process_comma_item\do_quit_comma_list}
-\def\doquitcommalist#1]%
+\def\do_quit_comma_list#1]%
{\endgroup}
\def\quitprevcommalist
- {\begingroup\let\doprocesscommaitem\doquitprevcommalist}
+ {\begingroup\let\do_process_comma_item\do_quit_prev_comma_list}
-\def\doquitprevcommalist#1]%
- {\let\doprocesscommaitem\doquitcommalist}
+\def\do_quit_prev_comma_list#1]%
+ {\let\do_process_comma_item\do_quit_commalist}
%D The hack we used for checking the next character
%D \type {\doifnextcharelse} is also used here.
-\def\:{\redoprocesscommaitem}
+\def\:{\re_do_process_comma_item}
-\expandafter\def\: {\futurelet\nexttoken\dodoprocesscommaitem}
+\expandafter\def\: {\futurelet\nexttoken\do_do_process_comma_item}
%D The previous examples lead to:
%D
@@ -1016,8 +1019,8 @@
%D \stoptyping
\def\processcommalistwithparameters[#1]#2%
- {\def\docommand##1{#2[##1]}%
- \processcommalist[#1]\docommand}
+ {\def\do_process_comma_list_with_parameters##1{#2[##1]}%
+ \processcommalist[#1]\do_process_comma_list_with_parameters}
%D \macros
%D {startprocesscommalist,startprocesscommacommand}
@@ -1076,7 +1079,7 @@
% obsolete: \def\expandactions{\let\expandedaction\edef} \expandactions (see mkii)
-\unexpanded\def\p!compareprocessactionA[#1=>#2][#3]%
+\unexpanded\def\do_compare_process_action_a[#1=>#2][#3]%
{\edef\!!stringb{#1}%
\ifx\!!stringb\s!default
\let\commalistelement\empty
@@ -1085,7 +1088,7 @@
% met \quitcommalist tot meer dan 25\% sneller
-\unexpanded\def\p!compareprocessactionB[#1=>#2][#3]%
+\unexpanded\def\do_compare_process_action_b[#1=>#2][#3]%
{\edef\!!stringb{#1}%
\ifx\!!stringa\!!stringb
\def\commalistelement{#3}%
@@ -1099,14 +1102,14 @@
\unexpanded\def\processaction[#1]#2[%
{\edef\!!stringa{#1}%
\ifx\!!stringa\empty
- \let\p!compareprocessaction\p!compareprocessactionA
+ \let\do_compare_process_action\do_compare_process_action_a
\else
- \let\p!compareprocessaction\p!compareprocessactionB
+ \let\do_compare_process_action\do_compare_process_action_b
\fi
- \edef\p!doprocessaction##1{\p!compareprocessaction[##1][#1]}% expands #1
- \processnextcommalist\relax\relax\p!doprocessaction[}
+ \edef\do_process_action##1{\do_compare_process_action[##1][#1]}% expands #1
+ \processnextcommalist\relax\relax\do_process_action[}
-\unexpanded\def\p!compareprocessactionC[#1=>#2][#3]%
+\unexpanded\def\do_compare_process_action_c[#1=>#2][#3]%
{\edef\!!stringa{#1}%
\edef\!!stringb{#3}%
\ifx\!!stringa\!!stringb
@@ -1126,17 +1129,17 @@
\ifx\!!stringa\empty
\expandafter\processaction
\else
- \expandafter\processfirstactionsinsetindeed
+ \expandafter\process_first_action_in_set_indeed
\fi
[#1]}
-\unexpanded\def\processfirstactionsinsetindeed[#1]#2[#3]%
- {\def\p!doprocessaction##1%
- {\def\p!dodoprocessaction####1{\p!compareprocessactionC[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \normalexpanded{\processcommalist[#1]}\p!doprocessaction}
+\unexpanded\def\process_first_action_in_set_indeed[#1]#2[#3]%
+ {\def\do_process_action##1%
+ {\def\do_do_process_action####1{\do_compare_process_action_c[####1][##1]}%
+ \processcommalist[#3]\do_do_process_action}%
+ \normalexpanded{\processcommalist[#1]}\do_process_action}
-\unexpanded\def\p!compareprocessactionD[#1=>#2][#3]%
+\unexpanded\def\do_compare_process_action_d[#1=>#2][#3]%
{\edef\!!stringa{#1}%
\edef\!!stringb{#3}%
\ifx\!!stringa\!!stringb
@@ -1151,7 +1154,7 @@
\fi
\fi}
-\unexpanded\def\doprocessallactionsinset
+\unexpanded\def\do_process_all_actions_in_set
{\csname\s!do\the\processlevel\endcsname}
\unexpanded\def\processallactionsinset[#1]%
@@ -1159,16 +1162,16 @@
\ifx\!!stringa\empty
\expandafter\processaction
\else
- \expandafter\processallactionsinsetindeed
+ \expandafter\process_all_actions_in_set_indeed
\fi
[#1]}
-\unexpanded\def\processallactionsinsetindeed[#1]#2[#3]%
+\unexpanded\def\process_all_actions_in_set_indeed[#1]#2[#3]%
{\advance\processlevel \plusone
\expandafter\def\csname\s!do\the\processlevel\endcsname##1%
- {\def\p!dodoprocessaction####1{\p!compareprocessactionD[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \normalexpanded{\processcommalist[#1]}\doprocessallactionsinset
+ {\def\do_do_process_action####1{\do_compare_process_action_d[####1][##1]}%
+ \processcommalist[#3]\do_do_process_action}%
+ \normalexpanded{\processcommalist[#1]}\do_process_all_actions_in_set
\advance\processlevel\minusone}
%D These macros use:
@@ -1178,8 +1181,8 @@
\let\nexttoken#4%
\global\advance\commalevel \plusone
\long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#3{##1}\doprocesscommaitem}%
- \dodoprocesscommaitem#4#5,]\relax
+ {#3{##1}\do_process_comma_item}%
+ \do_do_process_comma_item#4#5,]\relax
\global\advance\commalevel\minusone
#2}
@@ -1214,53 +1217,54 @@
\unexpanded\def\doifinstringelse#1%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
- \@EA\thirdofthreearguments
+ \expandafter\thirdofthreearguments
\else
- \@EA\dodoifinstringelse
+ \expandafter\do_if_in_string_else_indeed
\fi}
-\unexpanded\def\dodoifinstringelse#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\firstoftwoarguments
+\unexpanded\def\do_if_in_string_else_indeed#1%
+ {\do_if_in_string_else\@@@instring{#1}%
+ \expandafter\firstoftwoarguments
\else
- \@EA\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\fi}
\unexpanded\def\doifinstring#1%%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
- \@EA\gobbletwoarguments
+ \expandafter\gobbletwoarguments
\else
- \@EA\dodoifinstring
+ \expandafter\do_if_in_string_indeed
\fi}
-\unexpanded\def\dodoifinstring#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\firstofoneargument
+\unexpanded\def\do_if_in_string_indeed#1%
+ {\do_if_in_string_else\@@@instring{#1}%
+ \expandafter\firstofoneargument
\else
- \@EA\gobbleoneargument
+ \expandafter\gobbleoneargument
\fi}
\unexpanded\def\doifnotinstring#1%%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
- \@EA\gobbletwoarguments
+ \expandafter\gobbletwoarguments
\else
- \@EA\dodoifnotinstring
+ \expandafter\do_if_not_in_string_indeed
\fi}
-\unexpanded\def\dodoifnotinstring#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\gobbleoneargument
+\unexpanded\def\do_if_not_in_string_indeed#1%
+ {\do_if_in_string_else\@@@instring{#1}%
+ \expandafter\gobbleoneargument
\else
- \@EA\firstofoneargument
+ \expandafter\firstofoneargument
\fi}
% replaces prev
-\unexpanded\def\p!doifinstringelse#1#2% ##2 can be {abc}
- {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war{\unless\if##2@}% expand #1 here
- \expandafter\pp!doifinstringelse\normalexpanded{#2#1}@@\war} % expand #2 here
+\unexpanded\def\do_if_in_string_else#1#2% ##2 can be {abc}
+ {\long\expandafter\def\expandafter\do_do_if_in_string_else
+ \expandafter##\expandafter1#1##2##3\war{\unless\if##2@}% expand #1 here
+ \expandafter\do_do_if_in_string_else\normalexpanded{#2#1}@@\war} % expand #2 here
%D The next alternative proved to be upto twice as fast on
%D tasks like checking reserved words in pretty verbatim
@@ -1275,14 +1279,14 @@
%D possible, the latter alternative does minimal (one level)
%D expansion.
-\unexpanded\def\p!doifincsnameelse#1#2%
- {\long\def\pp!doifincsnameelse##1#1##2##3\war
+\unexpanded\def\do_if_in_csname_else#1#2%
+ {\long\def\do_do_if_in_csname_else##1#1##2##3\war
{\unless\if##2@}%
- \@EA\pp!doifincsnameelse#2#1@@\war}
+ \expandafter\do_do_if_in_csname_else#2#1@@\war}
-\unexpanded\def\doifincsnameelse#1#2% % #3#4%
+\unexpanded\def\doifincsnameelse#1#2%
{\edef\@@@instring{#1}%
- \@EA\p!doifincsnameelse\@EA{\@@@instring}{#2}% % #3\else#4\fi}
+ \expandafter\do_if_in_csname_else\expandafter{\@@@instring}{#2}%
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
@@ -1340,25 +1344,25 @@
%D we gain).
\unexpanded\def\makerawcommalist[#1]#2% use \processnext ... here
- {\def\domakerawcommalist##1% we don't expand ##1
+ {\def\do_make_raw_comma_list##1% we don't expand ##1
{\ifx#2\empty
\def#2{##1}%
\else
- \@EA\def\@EA#2\@EA{#2,##1}%
+ \expandafter\def\expandafter#2\expandafter{#2,##1}%
\fi}%
\let#2\empty
- \processcommalist[#1]\domakerawcommalist}
+ \processcommalist[#1]\do_make_raw_comma_list}
-\def\rawprocesscommaitem#1,#2% #2 eats up preceding space
+\def\raw_process_comma_item#1,#2% #2 eats up preceding space
{\if]#1\else
\csname\s!next\the\commalevel\endcsname{#1}%
- \expandafter\rawprocesscommaitem
+ \expandafter\raw_process_comma_item
\fi#2}
\unexpanded\def\rawprocesscommalist[#1]#2% accepteert ook [\cs]
{\global\advance\commalevel \plusone
\expandafter\let\csname\s!next\the\commalevel\endcsname#2%
- \expandafter\rawprocesscommaitem#1,],% \relax
+ \expandafter\raw_process_comma_item#1,],% \relax
\global\advance\commalevel \minusone }
\unexpanded\def\rawprocesscommacommand[#1]% not really needed
@@ -1372,52 +1376,52 @@
\unexpanded\def\rawdoifinsetelse#1%
{\edef\@@@instring{,#1,}% expand #1 here
\ifx\@@@instring\@@rawempty
- \@EA\thirdofthreearguments
+ \expandafter\thirdofthreearguments
\else
- \@EA\rawdodoifinsetelse
+ \expandafter\raw_do_if_in_set_else
\fi}
-\unexpanded\def\rawdodoifinsetelse#1%
- {\p!doifinstringelse\@@@instring{,#1,}%
- \@EA\firstoftwoarguments
+\unexpanded\def\raw_do_if_in_set_else#1%
+ {\do_if_in_string_else\@@@instring{,#1,}%
+ \expandafter\firstoftwoarguments
\else
- \@EA\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\fi}
\unexpanded\def\rawdoifinset#1%
{\edef\@@@instring{,#1,}% expand #1 here
\ifx\@@@instring\@@rawempty
- \@EA\gobbletwoarguments
+ \expandafter\gobbletwoarguments
\else
- \@EA\rawdodoifinset
+ \expandafter\raw_do_if_in_set
\fi}
-\unexpanded\def\rawdodoifinset#1%%
- {\p!doifinstringelse\@@@instring{,#1,}%
- \@EA\firstofoneargument
+\unexpanded\def\raw_do_if_in_set#1%%
+ {\do_if_in_string_else\@@@instring{,#1,}%
+ \expandafter\firstofoneargument
\else
- \@EA\gobbleoneargument
+ \expandafter\gobbleoneargument
\fi}
%D Some more raw material:
-\def\p!rawprocessaction[#1][#2]%
- {\def\pp!rawprocessaction##1,#1=>##2,##3\war%
+\def\do_raw_process_action[#1][#2]%
+ {\def\do_do_raw_process_action##1,#1=>##2,##3\war
{\if##3@\else
\def\!!processaction{##2}%
\fi}%
- \pp!rawprocessaction,#2,#1=>,@\war}
+ \do_do_raw_process_action,#2,#1=>,@\war}
\unexpanded\def\rawprocessaction[#1]#2[#3]%
{\edef\!!stringa{#1}%
\edef\!!stringb{undefined}% better \!!undefined
\let\!!processaction\!!stringb
\ifx\!!stringa\empty
- \@EA\p!rawprocessaction\@EA[\s!default][#3]%
+ \expandafter\do_raw_process_action\expandafter[\s!default][#3]%
\else
- \expandafter\p!rawprocessaction\expandafter[\!!stringa][#3]%
+ \expandafter\do_raw_process_action\expandafter[\!!stringa][#3]%
\ifx\!!processaction\!!stringb
- \@EA\p!rawprocessaction\@EA[\s!unknown][#3]%
+ \expandafter\do_raw_process_action\expandafter[\s!unknown][#3]%
\fi
\fi
\ifx\!!processaction\!!stringb
@@ -1451,22 +1455,22 @@
%D for use outside the assignment macros.
\def\dosetvalue#1#2% #3
- {\@EA\def\csname#1#2\endcsname} % {#3}}
+ {\expandafter\def\csname#1#2\endcsname} % {#3}}
\def\dosetevalue#1#2% #3
- {\@EA\edef\csname#1#2\endcsname} % {#3}}
+ {\expandafter\edef\csname#1#2\endcsname} % {#3}}
\def\dosetgvalue#1#2% #3
- {\@EA\gdef\csname#1#2\endcsname} % {#3}}
+ {\expandafter\gdef\csname#1#2\endcsname} % {#3}}
\def\doresetvalue#1#2%
- {\@EA\let\csname#1#2\endcsname\empty}
+ {\expandafter\let\csname#1#2\endcsname\empty}
\def\doignorevalue#1#2#3%
- {\@EA\let\csname#1#2\endcsname\empty}
+ {\expandafter\let\csname#1#2\endcsname\empty}
\def\docopyvalue#1#2#3%
- {\@EA\def\csname#1#3\endcsname{\csname#2#3\endcsname}}
+ {\expandafter\def\csname#1#3\endcsname{\csname#2#3\endcsname}}
%D \macros
%D {doassign,undoassign,doassignempty}
@@ -1594,7 +1598,7 @@
\unexpanded\def\getxparameters {\dogetparameters\dosetxvalue}
\unexpanded\def\forgetparameters{\dogetparameters\doignorevalue}
-\let\getexpandedparameters=\geteparameters
+\let\getexpandedparameters\geteparameters
\def\dogetparameters#1[#2]#3[#4%
{\if\noexpand#4]%
@@ -1610,12 +1614,12 @@
\long\def\xprocesscommaitem#1,#2% #2 takes space before ,
{\if,#1,% dirty trick for testing #1=empty
- \@EA\xprocesscommaitem
+ \expandafter\xprocesscommaitem
\else\if]#1%
- \@EAEAEA\gobbleoneargument
+ \doubleexpandafter\gobbleoneargument
\else
\p!dogetparameter\@relax@#1==\empty\@relax@
- \@EAEAEA\xprocesscommaitem
+ \doubleexpandafter\xprocesscommaitem
\fi\fi#2}
\def\xshowassignerror#1#2#3%
@@ -1623,26 +1627,26 @@
\def\p!n!doassign#1\@relax@#2=#3=#4#5\@relax@
{\ifx\empty#2\empty
- \@EA\xshowassignerror
+ \expandafter\xshowassignerror
\else\ifx#4\empty
- \@EAEAEA\xshowassignerror
+ \doubleexpandafter\xshowassignerror
\else
- \@EAEAEA\setsomevalue
+ \doubleexpandafter\setsomevalue
\fi\fi
{#1}{#2}{#3}}
\def\p!e!doassign#1\@relax@#2=#3=#4#5\@relax@
{\ifx\empty#2\empty
- \@EA\xshowassignerror
+ \expandafter\xshowassignerror
\else\ifx#4\empty
- \@EAEAEA\xshowassignerror
+ \doubleexpandafter\xshowassignerror
\else
\ifcsname#1#2\endcsname
- \@EA\let\@EA\currentvalue\csname#1#2\endcsname
+ \expandafter\let\expandafter\currentvalue\csname#1#2\endcsname
\else
\let\currentvalue\empty
\fi
- \@EAEAEA\setsomevalue
+ \doubleexpandafter\setsomevalue
\fi\fi
{#1}{#2}{#3}}
@@ -1907,7 +1911,7 @@
% check sources
\def\dogetcommacommandelement#1\from#2\to%
- {\@EA\dodogetcommalistelement\@EA#1\@EA\from#2,,,,,,\to}
+ {\expandafter\dodogetcommalistelement\expandafter#1\expandafter\from#2,,,,,,\to}
%D \macros
%D {dosingleargument,dodoubleargument,dotripleargument,
@@ -2779,13 +2783,13 @@
\unexpanded\def\definecomplexorsimple#1%
{\unexpanded\edef#1%
{\noexpand\docomplexorsimple
- \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname
- \@EA\noexpand\csname\s!simple \strippedcsname#1\endcsname}}
+ \expandafter\noexpand\csname\s!complex\strippedcsname#1\endcsname
+ \expandafter\noexpand\csname\s!simple \strippedcsname#1\endcsname}}
\unexpanded\def\definecomplexorsimpleempty#1%
{\unexpanded\edef#1%
{\noexpand\docomplexorsimpleempty
- \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname}}
+ \expandafter\noexpand\csname\s!complex\strippedcsname#1\endcsname}}
%D These commands are called as:
%D
@@ -3498,8 +3502,8 @@
\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
{\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#4}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname{#4}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\ifnum#3>0\relax
\ifnum#2<#1\relax
\let\nextrecurse\exitstepwiserecurse
@@ -3520,11 +3524,11 @@
\long\def\dodostepwiserecurse#1#2#3% from to step
{\ifnum#1>#2\relax
- \@EA\nodostepwiserecurse
+ \expandafter\nodostepwiserecurse
\else
\def\recurselevel{#1}%
- \@EAEAEA\redostepwiserecurse\@EA
- \fi\@EA{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
+ \doubleexpandafter\redostepwiserecurse\expandafter
+ \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
\unexpanded\def\expandrecursecontent
{\csname\@@arecurse\recursedepth\endcsname}
@@ -3534,13 +3538,13 @@
\long\unexpanded\def\dodostepwisereverse#1#2#3% from to step
{\ifnum#1<#2\relax
- \@EA\nodostepwiserecurse
+ \expandafter\nodostepwiserecurse
\else
\def\recurselevel{#1}%
\innerrecurse#1\relax
\advance\innerrecurse#3\relax
- \@EAEAEA\redostepwisereverse\@EA
- \fi\@EA{\the\innerrecurse}{#2}{#3}}
+ \doubleexpandafter\redostepwisereverse\expandafter
+ \fi\expandafter{\the\innerrecurse}{#2}{#3}}
\unexpanded\def\redostepwisereverse
{\expandrecursecontent\dodostepwisereverse}
@@ -3549,11 +3553,11 @@
{\nodostepwiserecurse\relax}
\unexpanded\def\nodostepwiserecurse#1#2#3#4%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ {\expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
\unexpanded\def\nonostepwiserecurse#1#2#3%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ {\expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
\unexpanded\def\dorecurse#1%
@@ -3589,40 +3593,40 @@
\long\unexpanded\def\xdorecurse#1#2%
{\global\advance\outerrecurse \plusone
- \long\@EA\gdef\csname\@@arecurse\recursedepth\endcsname{#2}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \@EA\dodorecurse\@EA1\@EA{\number#1}}
+ \long\expandafter\gdef\csname\@@arecurse\recursedepth\endcsname{#2}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \expandafter\dodorecurse\expandafter1\expandafter{\number#1}}
\long\unexpanded\def\ydorecurse#1#2%
{\global\advance\outerrecurse \plusone
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\let\recurselevel\!!plusone
#2%
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
\long\unexpanded\def\dodorecurse#1#2% from to
{\ifnum#1>#2\relax
- \@EA\nodorecurse
+ \expandafter\nodorecurse
\else
\def\recurselevel{#1}%
- \@EAEAEA\redorecurse
- \fi\@EA{\the\numexpr\recurselevel+\plusone\relax}{#2}}
+ \doubleexpandafter\redorecurse
+ \fi\expandafter{\the\numexpr\recurselevel+\plusone\relax}{#2}}
\long\unexpanded\def\dodorecurse#1#2% from to
{\ifnum#1>#2\relax
- \@EA\nodorecurse
+ \expandafter\nodorecurse
\else
\def\recurselevel{#1}%
\innerrecurse#1\advance\innerrecurse\plusone
- \@EAEAEA\redorecurse
- \fi\@EA{\the\innerrecurse}{#2}}
+ \doubleexpandafter\redorecurse
+ \fi\expandafter{\the\innerrecurse}{#2}}
\unexpanded\def\redorecurse
{\expandrecursecontent\dodorecurse}
\unexpanded\def\nodorecurse#1#2#3%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ {\expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse \minusone }
%D \macros
@@ -3647,21 +3651,21 @@
\unexpanded\long\def\doloop#1%
{\global\advance\outerrecurse \plusone
- \long\@EA\gdef\csname\@@arecurse\recursedepth\endcsname{#1}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \long\expandafter\gdef\csname\@@arecurse\recursedepth\endcsname{#1}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\let\endofloop\dodoloop
\dodoloop1} % no \plusone else \recurselevel wrong
\unexpanded\long\def\dodoloop#1%
{\def\recurselevel{#1}%
- \@EA\redoloop\@EA{\the\numexpr\recurselevel+\plusone\relax}}
+ \expandafter\redoloop\expandafter{\the\numexpr\recurselevel+\plusone\relax}}
\unexpanded\def\redoloop
{\expandrecursecontent\endofloop}
\unexpanded\def\nodoloop#1%
{\let\endofloop\dodoloop % new, permits nested \doloop's
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse\minusone}
\unexpanded\def\exitloop % \exitloop quits at end
@@ -3709,27 +3713,28 @@
%D \stoptyping
\def\expandrecursecontent
- {\csname\@@arecurse\recursedepth\@EA\@EA\@EA\endcsname\@EA\@EA\@EA{\@EA\recurselevel\@EA}\@EA{\recursedepth}}
+ {\csname\@@arecurse\recursedepth\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{\expandafter\recurselevel\expandafter}\expandafter{\recursedepth}}
\long\unexpanded\def\xdorecurse#1#2%
{\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \@EA\dodorecurse\@EA1\@EA{\number#1}}
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \expandafter\dodorecurse\expandafter1\expandafter{\number#1}}
\long\unexpanded\def\ydorecurse#1#2%
{\global\advance\outerrecurse \plusone
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\let\recurselevel\!!plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
\expandrecursecontent
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
\long\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
{\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\ifnum#3>0\relax
\ifnum#2<#1\relax
\let\nextrecurse\exitstepwiserecurse
@@ -3750,8 +3755,8 @@
\long\unexpanded\def\doloop#1%
{\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\let\endofloop\dodoloop
\dodoloop1} % no \plusone else \recurselevel wrong
@@ -3761,8 +3766,8 @@
% \long\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
% {\global\advance\outerrecurse \plusone
-% \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
-% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+% \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+% \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
% \ifnum#3>\zerocount
% \ifnum#2<#1\relax
% \let\nextrecurse\exitstepwiserecurse
@@ -3786,8 +3791,8 @@
\long\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
{\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
\csname @swr%
\ifnum#3>\zerocount
\ifnum#2<#1\else d\fi
@@ -3804,8 +3809,8 @@
%
% \long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
% {\global\advance\outerrecurse \plusone
-% \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
-% \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+% \long\global\expandafter\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+% \global\expandafter\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
% \normalexpanded
% {\ifnum#3>\zerocount
% \ifnum#2<#1
@@ -3881,10 +3886,10 @@
\unexpanded\def\doloopoverlist#1#2%
{\global\advance\outerrecurse\plusone
- \@EA\gdef\csname\@@arecurse\recursedepth\endcsname##1{\edef\recursestring{##1}#2}%
- \@EA\glet\csname\@@irecurse\recursedepth\endcsname\recursestring
+ \expandafter\gdef\csname\@@arecurse\recursedepth\endcsname##1{\edef\recursestring{##1}#2}%
+ \expandafter\glet\csname\@@irecurse\recursedepth\endcsname\recursestring
\normalexpanded{\processcommalist[#1]{\expandafter\noexpand\csname\@@arecurse\recursedepth\endcsname}}%
- \@EA\let\@EA\recursestring\csname\@@irecurse\recursedepth\endcsname
+ \expandafter\let\expandafter\recursestring\csname\@@irecurse\recursedepth\endcsname
\global\advance\outerrecurse\minusone}
% D This alternative looks a bit different and uses a
@@ -4033,7 +4038,7 @@
{\expandafter\convertcommand\csname#1\endcsname\to}
\def\defconvertedvalue#1#2% less sensitive for \to
- {\@EA\defconvertedcommand\@EA#1\csname#2\endcsname}
+ {\expandafter\defconvertedcommand\expandafter#1\csname#2\endcsname}
%D \macros
%D {doifassignmentelse}
@@ -4075,7 +4080,7 @@
% D \stoptyping
%
% \def\convertasciiafter#1#2%
-% {\@EA#1\@EA{\detokenize{#2}}}
+% {\expandafter#1\expandafter{\detokenize{#2}}}
%D In \ETEX\ we can use \type {\detokenize} and gain some
%D speed, but in general far less that 1\% for \type
@@ -4085,16 +4090,16 @@
%D {\jobname} were fed (or something undefined).
\long\def\convertargument#1\to#2{\dodoglobal\edef#2{\detokenize{#1}}}
-\long\def\convertcommand #1\to#2{\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}} % hm, only second is also ok
+\long\def\convertcommand #1\to#2{\dodoglobal\edef#2{\expandafter\detokenize\expandafter{#1}}} % hm, only second is also ok
-\long\def\defconvertedargument #1#2{\edef#1{\detokenize {#2}}}
-\long\def\defconvertedcommand #1#2{\edef#1{\detokenize\@EA{#2}}}
+\long\def\defconvertedargument #1#2{\edef#1{\detokenize{#2}}}
+\long\def\defconvertedcommand #1#2{\edef#1{\detokenize\expandafter{#2}}}
\long\def\edefconvertedargument#1#2{\edef#1{#2}%
- \edef#1{\detokenize\@EA{#1}}}
-\long\def\gdefconvertedargument#1#2{\xdef#1{\detokenize {#2}}}
-\long\def\gdefconvertedcommand #1#2{\xdef#1{\detokenize\@EA{#2}}}
+ \edef#1{\detokenize\expandafter{#1}}}
+\long\def\gdefconvertedargument#1#2{\xdef#1{\detokenize{#2}}}
+\long\def\gdefconvertedcommand #1#2{\xdef#1{\detokenize\expandafter{#2}}}
\long\def\xdefconvertedargument#1#2{\xdef#1{#2}%
- \xdef#1{\detokenize\@EA{#1}}}
+ \xdef#1{\detokenize\expandafter{#1}}}
%D When you try to convert a primitive command, you'll find
%D out that the \ETEX\ method fails on for instance \type
@@ -4233,7 +4238,7 @@
%D where \type{...} can be anything legally \TEX.
\def\CheckConstantAfter#1#2%
- {\@EA\convertargument\v!prefix!\to\ascii
+ {\expandafter\convertargument\v!prefix!\to\ascii
\convertargument#1\to#2\relax
\doifinstringelse\ascii{#2}
{\expandafter\convertargument#1\to#2}
@@ -4734,10 +4739,10 @@
%D
%D \starttyping
%D \long\def\doifstringinstringelse#1#2%
-%D {\p!doifinstringelse#1#2%
-%D \@EA\firstoftwoarguments
+%D {\do_if_in_string_else#1#2%
+%D \expandafter\firstoftwoarguments
%D \else
-%D \@EA\secondoftwoarguments
+%D \expandafter\secondoftwoarguments
%D \fi}
%D \stoptyping
%D
@@ -4745,15 +4750,15 @@
\def\pp!doifstringinstringelse#1%
{\if#1@%
- \@EA\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\else
- \@EA\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\fi}
\long\def\doifstringinstringelse#1#2%
- {\long\@EA\def\@EA\p!doifstringinstringelse\@EA##\@EA1#1##2##3\war
+ {\long\expandafter\def\expandafter\p!doifstringinstringelse\expandafter##\expandafter1#1##2##3\war
{\pp!doifstringinstringelse##2}%
- \@EA\@EA\@EA\p!doifstringinstringelse\@EA#2#1@@\war}
+ \expandafter\expandafter\expandafter\p!doifstringinstringelse\expandafter#2#1@@\war}
%D \macros
%D {appendtoks,prependtoks,appendtoksonce,prependtoksonce,
@@ -4781,27 +4786,27 @@
\def\prependtoksonce{\doprependtoksonce\relax}
\def\dodoappendtoks
- {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@toks\the\@@scratchtoks}}
+ {\dodoglobal\@@toks\doubleexpandafter{\expandafter\the\expandafter\@@toks\the\@@scratchtoks}}
\def\dodoprependtoks
- {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@scratchtoks\the\@@toks}}
+ {\dodoglobal\@@toks\doubleexpandafter{\expandafter\the\expandafter\@@scratchtoks\the\@@toks}}
\long\def\doappendtoks#1\to#2%
{\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks}
+ \@@scratchtoks\expandafter{\gobbleoneargument#1}\dodoappendtoks}
\long\def\doprependtoks#1\to#2%
{\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks}
+ \@@scratchtoks\expandafter{\gobbleoneargument#1}\dodoprependtoks}
\long\def\doappendtoksonce#1\to#2%
{\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}%
+ \@@scratchtoks\expandafter{\gobbleoneargument#1}%
\doifintokselse\@@scratchtoks\@@toks\donothing\dodoappendtoks}
\long\def\doprependtoksonce#1\to#2%
{\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}%
+ \@@scratchtoks\expandafter{\gobbleoneargument#1}%
\doifintokselse\@@scratchtoks\@@toks\donothing\dodoprependtoks}
%D The test macro:
@@ -4858,28 +4863,28 @@
%D \stoptyping
\def\makecounter#1%
- {\global\@EA\let\csname#1\endcsname\zerocountervalue} % see earlier
+ {\global\expandafter\let\csname#1\endcsname\zerocountervalue} % see earlier
\def\countervalue#1%
{\ifcsname#1\endcsname\csname#1\endcsname\fi}
\def\pluscounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+\plusone\relax}}
+ {\expandafter\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+\plusone\relax}}
\def\minuscounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname-\plusone\relax}}
+ {\expandafter\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname-\plusone\relax}}
\def\resetcounter#1%
- {\global\@EA\let\csname#1\endcsname\zerocountervalue}
+ {\global\expandafter\let\csname#1\endcsname\zerocountervalue}
\def\setcounter#1#2%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr#2\relax}}
+ {\expandafter\xdef\csname#1\endcsname{\the\numexpr#2\relax}}
\def\savecounter#1%
- {\@EA\xdef\csname ! #1 !\endcsname{\the\numexpr\csname#1\endcsname\relax}}
+ {\expandafter\xdef\csname ! #1 !\endcsname{\the\numexpr\csname#1\endcsname\relax}}
\def\restorecounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname ! #1 !\endcsname\relax}}
+ {\expandafter\xdef\csname#1\endcsname{\the\numexpr\csname ! #1 !\endcsname\relax}}
%D \macros
%D {beforesplitstring,aftersplitstring}
@@ -4901,12 +4906,12 @@
\def\beforesplitstring#1\at#2\to#3%
{\def\dosplitstring##1#2##2#2##3\\%
{\def#3{##1}}%
- \@EA\dosplitstring#1#2#2\\}
+ \expandafter\dosplitstring#1#2#2\\}
\def\aftersplitstring#1\at#2\to#3%
{\def\dosplitstring##1#2##2@@@##3\\%
{\def#3{##2}}%
- \@EA\dosplitstring#1@@@#2@@@\\}
+ \expandafter\dosplitstring#1@@@#2@@@\\}
%D \macros
%D {splitstring,greedysplitstring}
@@ -4922,7 +4927,7 @@
\else
\def#4{##2}%
\fi}%
- \@EA\dosplitstring#1\empty\empty\empty#2\empty\empty\empty\\}
+ \expandafter\dosplitstring#1\empty\empty\empty#2\empty\empty\empty\\}
\def\greedysplitstring#1\at#2\to#3\and#4%
{\edef\asciib{#1}%
@@ -4949,17 +4954,17 @@
\def\beforetestandsplitstring#1\at#2\to#3%
{\def\dosplitstring##1#2##2#2##3##4\\%
{\ifx##3\empty\let#3\empty\else\def#3{##1}\fi}%
- \@EA\dosplitstring#1#2#2\empty\\}
+ \expandafter\dosplitstring#1#2#2\empty\\}
\def\aftertestandsplitstring#1\at#2\to#3%
{\def\dosplitstring ##1#2##2@@@##3##4\\%
{\ifx##3\empty\let#3\empty\else\def#3{##2}\fi}%
- \@EA\dosplitstring #1@@@#2@@@\empty\\}
+ \expandafter\dosplitstring #1@@@#2@@@\empty\\}
\def\testandsplitstring#1\at#2\to#3\and#4%
{\def\dosplitstring##1#2##2#2##3##4\\%
{\ifx##3\empty\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}%
- \@EA\dosplitstring#1#2#2\empty\\}
+ \expandafter\dosplitstring#1#2#2\empty\\}
%D \macros
%D {removesubstring}
@@ -5065,7 +5070,7 @@
{\def\dosplitstring##1,#2,##2,#2,##3\\%
{\edef\!!stringa{\bcleanedupcommalist##1\empty\empty\relax}%
\edef\!!stringb{\acleanedupcommalist##2,,\relax}}%
- \@EA\dosplitstring\@EA,#1,,#2,,#2,\\}
+ \expandafter\dosplitstring\expandafter,#1,,#2,,#2,\\}
\def\bcleanedupcommalist#1#2#3\relax{\if#1,\else#1\fi\if#2,\else#2\fi#3}
\def\bcleanedupcommalist#1#2\relax{\if#1,\else#1\fi#2}
@@ -5107,7 +5112,7 @@
\else
\edef#3{#3\ifx#3\empty\else,\fi##1}%
\fi}%
- \@EA\rawprocesscommacommand\@EA[\!!stringa]\dosubstituteincommalist}
+ \expandafter\rawprocesscommacommand\expandafter[\!!stringa]\dosubstituteincommalist}
%D A not so useful macro:
@@ -5121,7 +5126,7 @@
\def\dofrontstrip#1%
{\edef\!!stringa{#1}%
\ifx\!!stringa\empty \else
- \@EA\dodofrontstrip\@EA[#1]#1%
+ \expandafter\dodofrontstrip\expandafter[#1]#1%
\fi}
%D \macros
@@ -5155,8 +5160,9 @@
\ifx\newcommalist\empty
\let\newcommalist\newcommalistelement
\else
- \@EA\@EA\@EA\def\@EA\@EA\@EA\newcommalist\@EA\@EA\@EA
- {\@EA\newcommalist\@EA,\newcommalistelement}%
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter
+ \newcommalist\expandafter\expandafter\expandafter
+ {\expandafter\newcommalist\expandafter,\newcommalistelement}%
\fi
\fi
\def\commalistelement{##1}%
@@ -5169,9 +5175,9 @@
\fi
\else
\ifx\nexttoken\bgroup % is known -)
- \@EA\def\@EA\newcommalist\@EA{\newcommalist,{##1}}%
+ \expandafter\def\expandafter\newcommalist\expandafter{\newcommalist,{##1}}%
\else
- \@EA\def\@EA\newcommalist\@EA{\newcommalist,##1}%
+ \expandafter\def\expandafter\newcommalist\expandafter{\newcommalist,##1}%
\fi
\fi
\fi
@@ -5179,7 +5185,7 @@
\let\commalistelement\empty
\let\newcommalist\empty
\commalistcounter\plusone
- \@EA\processcommalist\@EA[#1]\doreplaceincommalist
+ \expandafter\processcommalist\expandafter[#1]\doreplaceincommalist
\dodoglobal\let#1\newcommalist}
%D \macros
@@ -5277,27 +5283,27 @@
\def\globalpushmacro#1%
{\xdef\@@pushedmacro{\string#1}%
\ifcsname\@sg@\@@pushedmacro\endcsname \else
- \@EA\newcount\csname\@sg@\@@pushedmacro\endcsname
+ \expandafter\newcount\csname\@sg@\@@pushedmacro\endcsname
\fi
\global\advance\csname\@sg@\@@pushedmacro\endcsname \plusone
- \global\@EA\let\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
+ \global\expandafter\let\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
\def\globalpopmacro#1%
{\xdef\@@pushedmacro{\string#1}%
- \global\@EA\let\@EA#1\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
+ \global\expandafter\let\expandafter#1\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
\global\advance\csname\@sg@\@@pushedmacro\endcsname \minusone}
\def\localpushmacro#1% this one can be used to push a value over an \egroup
{\xdef\@@pushedmacro{\string#1}%
\ifcsname\@sl@\@@pushedmacro\endcsname \else
- \@EA\newcount\csname\@sl@\@@pushedmacro\endcsname
+ \expandafter\newcount\csname\@sl@\@@pushedmacro\endcsname
\fi
\global\advance\csname\@sl@\@@pushedmacro\endcsname \plusone
- \global\@EA\let\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
+ \global\expandafter\let\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
\def\localpopmacro#1%
{\xdef\@@pushedmacro{\string#1}%
- \@EA\let\@EA#1\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
+ \expandafter\let\expandafter#1\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
\global\advance\csname\@sl@\@@pushedmacro\endcsname \minusone }
\let\pushmacro\localpushmacro
@@ -5466,21 +5472,21 @@
%D Also handy:
\def\doifemptyelsevalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
+ {\expandafter\ifx\csname#1\endcsname\empty
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
\fi}
\def\doifemptyvalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
+ {\expandafter\ifx\csname#1\endcsname\empty
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
\fi}
\def\doifnotemptyvalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
+ {\expandafter\ifx\csname#1\endcsname\empty
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
@@ -5640,7 +5646,7 @@
\doifnotempty{##2}{\dostripcharacter##2\end}}%
\let\!!strippedstring\empty
\edef\!!stringa{#2}%
- \@EA\dostripcharacter\!!stringa#1\end
+ \expandafter\dostripcharacter\!!stringa#1\end
\dodoglobal\let#3\!!strippedstring}
\def\stripspaces\from#1\to#2% will become \unspacestring#1\from#2
@@ -5806,7 +5812,7 @@
#4{##1##2}%
\fi\fi\fi
\dodoprocessseparatedlist}%
- \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
+ \expandafter\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
\def\processseparatedlist[%
{\doprocessseparatedlist\relax}
@@ -5995,11 +6001,11 @@
%D
%D the first argument may be a \type{\macro}.
-\def\uppercasestring#1\to#2% first @EA redundant
- {\uppercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{\normalexpanded{#1}}}}
+\def\uppercasestring#1\to#2%
+ {\uppercase\expandafter{\expandafter\dodoglobal\expandafter\edef\expandafter#2\expandafter{\normalexpanded{#1}}}}
-\def\lowercasestring#1\to#2% first @EA redundant
- {\lowercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{\normalexpanded{#1}}}}
+\def\lowercasestring#1\to#2%
+ {\lowercase\expandafter{\expandafter\dodoglobal\expandafter\edef\expandafter#2\expandafter{\normalexpanded{#1}}}}
%D \macros
%D {handletokens}
@@ -6073,8 +6079,8 @@
\edef#3{#3##1}%
\fi}%
% \let#3\empty % #3 can be #2, so:
- \@EA\let\@EA#3\@EA\empty
- \@EA\handletokens#2\with\dosplitofftokens
+ \expandafter\let\expandafter#3\expandafter\empty
+ \expandafter\handletokens#2\with\dosplitofftokens
\else
\edef#3{#2}%
\fi}
@@ -6091,11 +6097,11 @@
%D mysterious way of expanding. Look at this:
%D
%D \startbuffer[next]
-%D \def\next{a} \edef\test{\next} [\test]
-%D \let\next=b \edef\test{\test\next} [\test]
-%D \let\next=c \edef\test{\next} [\test]
-%D \let\next=d \edef\test{\test\next} [\test]
-%D \let\next=e \@EA\edef\@EA\test\@EA{\test\next} [\test]
+%D \def\next{a} \edef\test{\next} [\test]
+%D \let\next=b \edef\test{\test\next} [\test]
+%D \let\next=c \edef\test{\next} [\test]
+%D \let\next=d \edef\test{\test\next} [\test]
+%D \let\next=e \expandafter\edef\expandafter\test\expandafter{\test\next} [\test]
%D \stopbuffer
%D
%D \typebuffer[next]
@@ -6221,13 +6227,13 @@
% \def\dothreedigitrounding#1.#2#3#4#5\relax{\ifx#2*#1\else#1.#2#3#4\fi}
%
% \def\integerrounding#1%
-% {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax}
+% {\expandafter\expandafter\expandafter\dointegerrounding \expandafter\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax}
% \def\onedigitrounding#1%
-% {\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax}
+% {\expandafter\expandafter\expandafter\doonedigitrounding \expandafter\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax}
% \def\twodigitrounding#1%
-% {\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax}
+% {\expandafter\expandafter\expandafter\dotwodigitrounding \expandafter\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax}
% \def\threedigitrounding#1%
-% {\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax}
+% {\expandafter\expandafter\expandafter\dothreedigitrounding\expandafter\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax}
\def\integerrounding #1{\cldcontext{"\letterpercent 0.0f",#1}}
\def\onedigitrounding #1{\cldcontext{"\letterpercent 0.1f",#1}}
@@ -6249,7 +6255,7 @@
%D This macro is first used in the tabulation macros.
\def\processcontent#1%
- {\begingroup\@EA\doprocesscontent\csname#1\endcsname}
+ {\begingroup\expandafter\doprocesscontent\csname#1\endcsname}
\def\doprocesscontent#1#2#3%
{\long\def\doprocesscontent##1#1%
@@ -6304,7 +6310,7 @@
\newcount\comparedresult
\def\sortcommacommand[#1]%
- {\@EA\sortcommalist\@EA[#1]}
+ {\expandafter\sortcommalist\expandafter[#1]}
\def\sortcommalist[#1]#2%
{\getcommalistsize[#1]%
@@ -6323,8 +6329,8 @@
\def\!!tempa{#1}%
\ifx\!!tempa\empty\else
\scratchcounter\plusone
- \@EA\getcommalistsize\@EA[\sortedcommalist]%
- \@EA\processcommalist\@EA[\sortedcommalist]\docompareitems
+ \expandafter\getcommalistsize\expandafter[\sortedcommalist]%
+ \expandafter\processcommalist\expandafter[\sortedcommalist]\docompareitems
\fi
\fi}
@@ -6333,20 +6339,22 @@
\def\docompareitems#1%
{\doifnotempty{#1}
- {\@EA\comparecommand\@EA{\!!tempa}{#1}\relax
+ {\expandafter\comparecommand\expandafter{\!!tempa}{#1}\relax
%\ifcase\compareresult % equal
\ifnum\comparedresult<2
\ifnum\scratchcounter=\commalistsize
- \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
- \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\sortedcommalist
+ \expandafter\expandafter\expandafter{\expandafter\sortedcommalist\expandafter,\!!tempa}%
\fi
%\or % new element larger
% \ifnum\scratchcounter=\commalistsize
- % \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
- % \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
+ % \expandafter\expandafter\expandafter\def
+ % \expandafter\expandafter\expandafter\sortedcommalist
+ % \expandafter\expandafter\expandafter{\expandafter\sortedcommalist\expandafter,\!!tempa}%
% \fi
\else % old element larger
- \@EA\def\@EA\newcommalistelement\@EA{\!!tempa,#1}%
+ \expandafter\def\expandafter\newcommalistelement\expandafter{\!!tempa,#1}%
\replaceincommalist\sortedcommalist\scratchcounter
\expandafter\quitcommalist
\fi}%
@@ -6373,8 +6381,8 @@
\def\@True {00}
\def\@False {01}
-\def\@Not #1{0\ifcase#11 \or\@EA 1\else \@EA 0\fi}
-\def\@And #1#2{0\ifcase#1#2 \@EA 0\else \@EA 1\fi}
+\def\@Not #1{0\ifcase#11 \or\expandafter 1\else \expandafter 0\fi}
+\def\@And #1#2{0\ifcase#1#2 \expandafter 0\else \expandafter 1\fi}
%D \macros
%D {setdimensionwithunit, freezedimensionwithunit}
@@ -6461,16 +6469,16 @@
%D These are needed in ordinal number conversions:
\def\lastdigit#1%
- {\@EA\thelastdigit\number#1\relax}
+ {\expandafter\thelastdigit\number#1\relax}
\def\thelastdigit#1#2%
- {\ifx#2\relax#1\else\@EA\thelastdigit\@EA#2\fi}
+ {\ifx#2\relax#1\else\expandafter\thelastdigit\expandafter#2\fi}
\def\lasttwodigits#1%
- {\@EA\thelasttwodigits\@EA0\number#1\relax}
+ {\expandafter\thelasttwodigits\expandafter0\number#1\relax}
\def\thelasttwodigits#1#2#3% 0 dig ... \relax
- {\ifx#3\relax#1#2\else\@EA\thelasttwodigits\@EA#2\@EA#3\fi}
+ {\ifx#3\relax#1#2\else\expandafter\thelasttwodigits\expandafter#2\expandafter#3\fi}
%D \macros
%D {serializecommalist}
@@ -6498,7 +6506,7 @@
%D macro works ok with \type {\the}, \type {\number} as well
%D as \ETEX's \type {\numexpr}.
-\def\purenumber#1{\@EA\firstofoneargument\@EA{\number#1}}
+\def\purenumber#1{\expandafter\firstofoneargument\expandafter{\number#1}}
%D \macros
%D {filterfromvalue}
@@ -6554,8 +6562,8 @@
\fi}
\def\filterfromvalue#1#2#3% value max n
- {\@EA\@EAEAEA\csname % we use the fact that an
- \@EA\ifx\csname#1\endcsname\relax % undefined cs has become \relax
+ {\expandafter\doubleexpandafter\csname % we use the fact that an
+ \expandafter\ifx\csname#1\endcsname\relax % undefined cs has become \relax
\strippedcsname\gobbleoneargument % which we then gobble here
\else
\dofilterfromstr{#2}{#3}%
@@ -6712,28 +6720,28 @@
% \copycsname xxx\endcsname\csname ..\endcsname
-\def\copycsname{\@EA\@EA\@EA\let\@EA\@EA\csname}
+\def\copycsname{\expandafter\expandafter\expandafter\let\expandafter\expandafter\csname}
% \letcscsname \crap \csname ..\endcsname
% \letcsnamecs \csname ..\endcsname\crap
% \letcsnamecsname\csname ..\endcsname\csname ..\endcsname
-\def\letcscsname {\@EA\let\@EA}
-\def\letcsnamecs {\@EA\let}
-\def\letcsnamecsname{\@EA\@EA\@EA\let\@EA\@EA}
+\def\letcscsname {\expandafter\let\expandafter}
+\def\letcsnamecs {\expandafter\let}
+\def\letcsnamecsname{\expandafter\expandafter\expandafter\let\expandafter\expandafter}
% another one, add an item to a commalist
\def\addvalue#1#2% cs item
{\ifcsname#1\endcsname\else\expandafter\let\csname#1\endcsname\empty\fi
- \normalexpanded{\noexpand\addtocommalist{#2}\@EA\noexpand\csname#1\endcsname}}
+ \normalexpanded{\noexpand\addtocommalist{#2}\expandafter\noexpand\csname#1\endcsname}}
\def\unspaced#1%
{\dounspaced#1\end}
\def\dounspaced#1%
{\ifx#1\end
- \@EA\gobbleoneargument
+ \expandafter\gobbleoneargument
\else
\ifx#1\blankspace\else#1\fi
\fi
@@ -6757,44 +6765,44 @@
\def\dodoifhasspaceelse#1 #2#3\relax % \space\empty\relax
{\ifx\!!stringa\space
- \@EA\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\else\ifx#2\empty
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\else
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\fi\fi}
% this will replace loadfile once and alike !!! todo
\def\@flg@{@flg@}
-\def\setflag #1{\@EA\dodoglobal\@EA\let\csname\@flg@#1\endcsname\zerocount}
-\def\resetflag#1{\@EA\dodoglobal\@EA\let\csname\@flg@#1\endcsname\plusone}
+\def\setflag #1{\expandafter\dodoglobal\expandafter\let\csname\@flg@#1\endcsname\zerocount}
+\def\resetflag#1{\expandafter\dodoglobal\expandafter\let\csname\@flg@#1\endcsname\plusone}
\let\ifflagged\ifcase
\def\flag#1{\csname\@flg@#1\endcsname}
\def\doifelseflagged#1%
- {\@EA\ifx\csname\@flg@#1\endcsname\relax
- \@EA\secondoftwoarguments
+ {\expandafter\ifx\csname\@flg@#1\endcsname\relax
+ \expandafter\secondoftwoarguments
\else\ifcase\csname\@flg@#1\endcsname
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\else
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\fi\fi}
\def\doifnotflagged#1%
- {\@EA\ifx\csname\@flg@#1\endcsname\relax
- \@EA\firstofoneargument
+ {\expandafter\ifx\csname\@flg@#1\endcsname\relax
+ \expandafter\firstofoneargument
\else\ifcase\csname\@flg@#1\endcsname
- \@EAEAEA\gobbleoneargument
+ \doubleexpandafter\gobbleoneargument
\else
- \@EAEAEA\firstofoneargument
+ \doubleexpandafter\firstofoneargument
\fi\fi}
\def\inheritparameter[#1]#2[#3]#4[#5]% tag tokey fromkey % [bypasses k!prefix]
- {\@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#1#5\endcsname}}
+ {\expandafter\def\csname#1#3\expandafter\endcsname\expandafter{\csname#1#5\endcsname}}
% \buildarray[test][aa,bb,cc,dd,ee,ff]
% \setarrayelement{test}{1}{qq}
@@ -6830,14 +6838,14 @@
{\ifx#1\relax
\ifcase\scratchcounter
\endgroup
- \@EAEAEA\secondoftwoarguments
+ \doubleexpandafter\secondoftwoarguments
\else
\endgroup
- \@EAEAEA\firstoftwoarguments
+ \doubleexpandafter\firstoftwoarguments
\fi
\else
\endgroup
- \@EA\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\fi}
\def\doifnonzeropositiveelse#1%
@@ -6845,10 +6853,10 @@
% here ?
-\def\dosetrawvalue #1#2#3{\@EA \def\csname#1#2\endcsname{#3}}
-\def\dosetrawevalue#1#2#3{\@EA\edef\csname#1#2\endcsname{#3}}
-\def\dosetrawgvalue#1#2#3{\@EA\gdef\csname#1#2\endcsname{#3}}
-\def\dosetrawxvalue#1#2#3{\@EA\xdef\csname#1#2\endcsname{#3}}
+\def\dosetrawvalue #1#2#3{\expandafter \def\csname#1#2\endcsname{#3}}
+\def\dosetrawevalue#1#2#3{\expandafter\edef\csname#1#2\endcsname{#3}}
+\def\dosetrawgvalue#1#2#3{\expandafter\gdef\csname#1#2\endcsname{#3}}
+\def\dosetrawxvalue#1#2#3{\expandafter\xdef\csname#1#2\endcsname{#3}}
\def\getrawparameters {\dogetparameters\dosetrawvalue }
\def\getraweparameters {\dogetparameters\dosetrawevalue}
@@ -6945,10 +6953,10 @@
{\afterassignment\gobbleassigndimen#1=#2\!!zeropoint\\}
\def\setusage#1%
- {\@EA\let\csname#1\endcsname\iftrue}
+ {\expandafter\let\csname#1\endcsname\iftrue}
\def\resetusage#1%
- {\@EA\let\csname#1\endcsname\iffalse}
+ {\expandafter\let\csname#1\endcsname\iffalse}
\def\ifusage#1%
{\ifcsname#1\endcsname\else
@@ -6980,17 +6988,17 @@
\def\@@ifequal#1#2\@@and#3%
{\ifx#1\relax
\ifx#3\relax
- \@EAEAEA\@@if@@equal@@true
+ \doubleexpandafter\@@if@@equal@@true
\else
- \@EAEAEA\@@if@@equal@@false
+ \doubleexpandafter\@@if@@equal@@false
\fi
\else
\ifx#3\relax
- \@EAEAEAEAEAEA\@@if@@equal@@false
+ \tripleexpandafter\@@if@@equal@@false
\else\ifx#1#3%
% go on
\else
- \@EAEAEAEAEAEA\@@if@@equal@@false
+ \tripleexpandafter\@@if@@equal@@false
\fi\fi
\fi
\@@ifequal#2\@@and}
@@ -6998,13 +7006,17 @@
\long\def\@@if@@equal@@true #1\@@then#2#3{#2}
\long\def\@@if@@equal@@false#1\@@then#2#3{#3}
-\def\appended#1#2#3{\@EA#1\@EA#2\@EA{#2#3}}
-\def\appendvalue #1{\@EA\appended\@EA \def\csname#1\endcsname}
-\def\appendgvalue#1{\@EA\appended\@EA\gdef\csname#1\endcsname}
+\def\appended#1#2#3{\expandafter#1\expandafter#2\expandafter{#2#3}}
+\def\appendvalue #1{\expandafter\appended\expandafter \def\csname#1\endcsname}
+\def\appendgvalue#1{\expandafter\appended\expandafter\gdef\csname#1\endcsname}
+
+\def\prepended#1#2#3%
+ {\scratchtoks{#3}%
+ \expandafter\expandafter\expandafter#1\expandafter\expandafter\expandafter#2\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter\scratchtoks#2}}
-\def\prepended#1#2#3{\scratchtoks{#3}\@EA\@EA\@EA#1\@EA\@EA\@EA#2\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks#2}}
-\def\prependvalue #1{\@EA\prepended\@EA \def\csname#1\endcsname}
-\def\prependgvalue#1{\@EA\prepended\@EA\gdef\csname#1\endcsname}
+\def\prependvalue #1{\expandafter\prepended\expandafter \def\csname#1\endcsname}
+\def\prependgvalue#1{\expandafter\prepended\expandafter\gdef\csname#1\endcsname}
%D \macros
%D {compresscommacommandnrs,compresscommalistnrs,compressedcommalistnrs,
@@ -7048,7 +7060,7 @@
\def\dodocompresslistnrs
{\edef\compressedlist
{\ifx\compressedlist\empty\else\compressedlist,\fi
- {\the\!!counta}{\ifnum\!!countb>\!!counta\the\!!countb\fi}}}
+ {\the\!!counta}{\ifnum\!!countb>\!!counta\the\!!countb\fi}}}
%D \def\test#1{{\tttf#1->\compresscommalistnrs[#1]\defconvertedcommand\ascii\compressedlist\ascii}}
%D \startlines
@@ -7159,9 +7171,9 @@
\def\uncompresslist[#1]% by TH
{\let\uncompressedlist\empty
\def\docompressedlistitem##1-##2-%
- {\@EA\dorecurse\@EA
+ {\expandafter\dorecurse\expandafter
{\the\numexpr1+##2-##1\relax}%
- {\@EA\appendtocommalist\@EA{\the\numexpr##1-1+####1\relax}\uncompressedlist}}%
+ {\expandafter\appendtocommalist\expandafter{\the\numexpr##1-1+####1\relax}\uncompressedlist}}%
\def\douncompresslist##1%
{\doifinstringelse{-}{##1}
{\docompressedlistitem##1-}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 04bf9675b..586f5e882 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 : 09/15/11 09:08:43
+-- merge date : 09/15/11 19:53:57
do -- begin closure to overcome local limits and interference