summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metapost/context/base/mp-char.mpiv4
-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.pdfbin4095 -> 4105 bytes
-rw-r--r--tex/context/base/context-version.pngbin106448 -> 105305 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv4
-rw-r--r--tex/context/base/m-chart.lua187
-rw-r--r--tex/context/base/m-chart.mkvi8
-rw-r--r--tex/context/base/page-mak.mkiv224
-rw-r--r--tex/context/base/page-mak.mkvi219
-rw-r--r--tex/context/base/status-files.pdfbin23928 -> 24095 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin163859 -> 163918 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
14 files changed, 338 insertions, 316 deletions
diff --git a/metapost/context/base/mp-char.mpiv b/metapost/context/base/mp-char.mpiv
index 5450ed972..83fa20155 100644
--- a/metapost/context/base/mp-char.mpiv
+++ b/metapost/context/base/mp-char.mpiv
@@ -298,7 +298,9 @@ def flow_flush_shape(expr x, yy) =
enddef ;
vardef flow_points_initialized(expr xfrom, yfrom, xto, yto, n) =
- if not flow_xyfree[xfrom][yfrom] and not flow_xyfree[xto][yto] :
+ if unknown flow_xyfree[xfrom][yfrom] or unknown flow_xyfree[xto][yto] :
+ flow_xypoint := 0 ; false
+ elseif not flow_xyfree[xfrom][yfrom] and not flow_xyfree[xto][yto] :
flow_xypoint := n ; true
else :
flow_xypoint := 0 ; false
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 626011f35..184b572cc 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.10.19 18:24}
+\newcontextversion{2011.10.19 23:10}
%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 449c3567b..1e045568d 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.10.19 18:24}
+\newcontextversion{2011.10.19 23:10}
%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 f7d784e7d..3753826da 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 6dff771ad..f031c57fb 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 77977156d..98ee11df7 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.10.19 18:24}
+\edef\contextversion{2011.10.19 23:10}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 8f6f21389..49ca9eec4 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.10.19 18:24}
+\edef\contextversion{2011.10.19 23:10}
%D For those who want to use this:
@@ -254,7 +254,7 @@
\loadmarkfile{page-set}
\loadmarkfile{pack-lyr}
\loadmarkfile{pack-pos}
-\loadmarkfile{page-mak}
+\loadmkvifile{page-mak}
\loadmarkfile{page-lin}
\loadmarkfile{page-par}
diff --git a/tex/context/base/m-chart.lua b/tex/context/base/m-chart.lua
index 9ae7feabf..1d76e9845 100644
--- a/tex/context/base/m-chart.lua
+++ b/tex/context/base/m-chart.lua
@@ -46,6 +46,8 @@ local defaults = {
dot = "",
hcompact = variables_no,
vcompact = variables_no,
+ autofocus = "",
+ focus = "",
},
shape = { -- FLOS
rulethickness = 65436,
@@ -409,20 +411,6 @@ function commands.flow_set_connection(location,displacement,name)
}
end
-local where = {
- l = "left",
- r = "right",
- t = "top",
- b = "bottom",
-}
-
-local what = {
- ["p"] = 1,
- ["m"] = -1,
- ["+"] = 1,
- ["-"] = -1,
-}
-
local function visible(chart,cell)
local x, y = cell.x, cell.y
return
@@ -430,27 +418,6 @@ local function visible(chart,cell)
y >= chart.from_y and y <= chart.to_y and cell
end
-local function check_cells(chart,xoffset,yoffset,min_x,min_y,max_x,max_y)
- local data = chart.data
- if not data then
- return
- end
- for i=1,#data do
- local cell = data[i]
- local x, y = cell.x + xoffset, cell.y + yoffset
- if min_x == 0 then
- min_x, max_x = x, x
- min_y, max_y = y, y
- else
- if x < min_x then min_x = x end
- if y < min_y then min_y = y end
- if x > max_x then max_x = x end
- if y > max_y then max_y = y end
- end
- end
- return min_x, min_y, max_x, max_y
-end
-
local function process_cells(chart,xoffset,yoffset)
local data = chart.data
if not data then
@@ -468,7 +435,7 @@ local function process_cells(chart,xoffset,yoffset)
end
if shape ~= v_none then
local shapedata = validshapes[shape]
- context("flow_begin_sub_chart ;")
+ context("flow_begin_sub_chart ;") -- when is this needed
if shapedata.kind == "line" then
local linesettings = settings.line
context("flow_shape_line_color := \\MPcolor{%s} ;", linesettings.color)
@@ -486,6 +453,7 @@ local function process_cells(chart,xoffset,yoffset)
context("flow_shape_line_width := %s ; " , points(shapesettings.rulethickness))
end
context("flow_peepshape := false ;") -- todo
+-- context("flow_new_shape(%s,%s,%s) ;",cell.x+xoffset,cell.y+yoffset,shapedata.number)
context("flow_new_shape(%s,%s,%s) ;",cell.x+xoffset,cell.y+yoffset,shapedata.number)
context("flow_end_sub_chart ;")
end
@@ -541,16 +509,10 @@ local function process_connections(chart,xoffset,yoffset)
local connection = connections[j]
local othername = connection.name
local othercell = hash[othername]
- if othercell then
+ if othercell then -- and visible(chart,data[i]) then
local cellx, celly = cell.x, cell.y
local otherx, othery, location = othercell.x, othercell.y, connection.location
if otherx > 0 and othery > 0 and cellx > 0 and celly > 0 and connection.location then
- -- move to setter
- -- local what_cell, where_cell, what_other, where_other = match(location,"([%+%-pm]-)([lrtb]),?([%+%-pm]-)([lrtb])")
- -- local what_cell = what [what_cell] or 0
- -- local what_other = what [what_other] or 0
- -- local where_cell = where[where_cell] or "left"
- -- local where_other = where[where_other] or "right"
local what_cell, where_cell, what_other, where_other = lpegmatch(what,location)
if what_cell and where_cell and what_other and where_other then
local linesettings = settings.line
@@ -639,14 +601,73 @@ local function getchart(settings)
return
end
chart = expanded(chart,settings)
- local _, _, nx, ny = check_cells(chart,0,0,0,0,0,0)
- chart.from_x = chart.settings.chart.x or 1
- chart.from_y = chart.settings.chart.y or 1
- chart.to_x = chart.settings.chart.nx or nx
- chart.to_y = chart.settings.chart.ny or ny
- chart.nx = chart.to_x - chart.from_x + 1
- chart.ny = chart.to_y - chart.from_y + 1
--- inspect(chart)
+ local cc_settings = chart.settings.chart
+ local autofocus = chart.settings.chart.autofocus
+ if autofocus then
+ autofocus = utilities.parsers.settings_to_hash(autofocus)
+ if not next(autofocus) then
+ autofocus = false
+ end
+ end
+ -- check natural window
+ local x = tonumber(cc_settings.x)
+ local y = tonumber(cc_settings.y)
+ local nx = tonumber(cc_settings.nx)
+ local ny = tonumber(cc_settings.ny)
+ --
+ local minx, miny, maxx, maxy = 0, 0, 0, 0
+ local data = chart.data
+ for i=1,#data do
+ local cell = data[i]
+ if not autofocus or autofocus[cell.name] then -- offsets probably interfere with autofocus
+ local x = cell.x
+ local y = cell.y
+ if minx == 0 or x < minx then minx = x end
+ if miny == 0 or y < miny then miny = y end
+ if minx == 0 or x > maxx then maxx = x end
+ if miny == 0 or y > maxy then maxy = y end
+ end
+ end
+ -- check of window should be larger (maybe autofocus + nx/ny?)
+ if autofocus then
+ -- x and y are ignored
+ if nx and nx > 0 then
+ maxx = minx + nx - 1
+ end
+ if ny and ny > 0 then
+ maxy = miny + ny - 1
+ end
+ else
+ if x and x > 0 then
+ minx = x
+ end
+ if y and y > 0 then
+ minx = y
+ end
+ if nx and nx > 0 then
+ maxx = minx + nx - 1
+ end
+ if ny and ny > 0 then
+ miny = miny + ny - 1
+ end
+ end
+ --
+ local nx = maxx - minx + 1
+ local ny = maxy - miny + 1
+ -- relocate cells
+ for i=1,#data do
+ local cell = data[i]
+ cell.x = cell.x - minx + 1
+ cell.y = cell.y - miny + 1
+ end
+ chart.from_x = 1
+ chart.from_y = 1
+ chart.to_x = nx
+ chart.to_y = ny
+ chart.nx = nx
+ chart.ny = ny
+ --
+ -- inspect(chart)
return chart
end
@@ -726,38 +747,38 @@ function commands.flow_make_chart(settings)
local chart = getchart(settings)
if chart then
local settings = chart.settings
- if settings.split.state == v_start then
- local nx = chart.settings.split.nx
- local ny = chart.settings.split.ny
- local x = 1
- while true do
- local y = 1
- while true do
- -- FLOTbefore
- -- doif @@FLOTmarking on -> cuthbox
- -- @@FLOTcommand
- chart.from_x = x
- chart.from_y = y
- chart.to_x = math.min(x + nx - 1,chart.nx)
- chart.to_y = math.min(x + ny - 1,chart.ny)
- makechart(chart)
- -- FLOTafter
- y = y + ny
- if y > chart.max_y then
- break
- else
- y = y - dy
- end
- end
- x = x + nx
- if x > chart.max_x then
- break
- else
- x = x - dx
- end
- end
- else
+-- if settings.split.state == v_start then
+-- local nx = chart.settings.split.nx
+-- local ny = chart.settings.split.ny
+-- local x = 1
+-- while true do
+-- local y = 1
+-- while true do
+-- -- FLOTbefore
+-- -- doif @@FLOTmarking on -> cuthbox
+-- -- @@FLOTcommand
+-- chart.from_x = x
+-- chart.from_y = y
+-- chart.to_x = math.min(x + nx - 1,chart.nx)
+-- chart.to_y = math.min(x + ny - 1,chart.ny)
+-- makechart(chart)
+-- -- FLOTafter
+-- y = y + ny
+-- if y > chart.max_y then
+-- break
+-- else
+-- y = y - dy
+-- end
+-- end
+-- x = x + nx
+-- if x > chart.max_x then
+-- break
+-- else
+-- x = x - dx
+-- end
+-- end
+-- else
makechart(chart)
- end
+-- end
end
end
diff --git a/tex/context/base/m-chart.mkvi b/tex/context/base/m-chart.mkvi
index 89d17463b..3bdf190e6 100644
--- a/tex/context/base/m-chart.mkvi
+++ b/tex/context/base/m-chart.mkvi
@@ -12,7 +12,6 @@
%C details.
% todo (if used):
-% autofocus={name,name,name} -> min/max
% flowsets
% autoscaling (bodyfontsteps)
% comment
@@ -199,6 +198,11 @@
hcompact = "\FLOWchartparameter\c!hcompact", % undocumented option
vcompact = "\FLOWchartparameter\c!vcompact", % undocumented option
focus = "\FLOWchartparameter\c!focus",
+ autofocus = "\FLOWchartparameter\c!autofocus",
+ nx = "\FLOWchartparameter\c!nx",
+ ny = "\FLOWchartparameter\c!ny",
+ x = "\FLOWchartparameter\c!x",
+ y = "\FLOWchartparameter\c!y",
},
shape = {
rulethickness = \number\dimexpr\FLOWshapeparameter\c!rulethickness,
@@ -274,7 +278,7 @@
\unexpanded\def\FLOW_text {\dosingleempty\do_FLOW_text}
\unexpanded\def\FLOW_label {\dosingleempty\do_FLOW_label}
-\unexpanded\def\FLOW_comment {\dosingleempty\do_FLOW_commment}
+\unexpanded\def\FLOW_comment {\dosingleempty\do_FLOW_comment}
\unexpanded\def\FLOW_exit {\dosingleempty\do_FLOW_exit}
\unexpanded\def\FLOW_connection {\dodoubleempty\do_FLOW_connection}
\unexpanded\def\FLOW_include {\dodoubleempty\do_FLOW_include}
diff --git a/tex/context/base/page-mak.mkiv b/tex/context/base/page-mak.mkiv
deleted file mode 100644
index f27a979e8..000000000
--- a/tex/context/base/page-mak.mkiv
+++ /dev/null
@@ -1,224 +0,0 @@
-%D \module
-%D [ file=page-mak, % copied from main-001,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Simple MakeUp,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / MakeUp}
-
-\unprotect
-
-%D \macros
-%D {definemakeup, setupmakeup, startmakeup}
-%D
-%D A makeup is a separate page, like a title page or colofon.
-%D There is one standard makeup page, but you can define more
-%D if needed.
-%D
-%D \starttyping
-%D \startstandardmakeup
-%D My Fancy Title
-%D \stopstandardmakeup
-%D \stoptyping
-%D
-%D The associated commands are:
-%D
-%D \showsetup{definemakeup}
-%D \showsetup{setupmakeup}
-%D \showsetup{startmakeup}
-
-\unexpanded\def\definemakeup
- {\dodoubleargument\dodefinemakeup}
-
-\def\dodefinemakeup[#1][#2]%
- {\getparameters
- [\??do#1]%
- [\c!width=\innermakeupwidth, % example in manual / was \makeupwidth
- \c!height=\textheight, % example in manual
- \c!commands=,
- \c!setups=,
- \c!page=\v!right,
- \c!doublesided=\v!empty,
- \c!before=,
- \c!top=\vss,
- \c!bottom=\vss,
- \c!after=,
- \c!bottomstate=\v!normal,
- \c!topstate=\v!normal,
- \c!textstate=\v!normal,
- \c!headerstate=\v!stop,
- \c!footerstate=\v!stop,
- \c!pagestate=\v!stop, % in manual ! ! !
- \c!color=,
- \c!align=,
- #2]%
- \setvalue{\e!start#1\e!makeup}{\startmakeup[#1]}%
- \setvalue{\e!stop #1\e!makeup}{\stopmakeup}}
-
-\unexpanded\def\setupmakeup
- {\dodoubleargument\dosetupmakeup}
-
-\def\dosetupmakeup[#1]%
- {\getparameters[\??do#1]}
-
-%D This will save us some 375 bytes in the format file.
-
-\def\makeupparameter#1{\getvalue{\??do\currentmakeup#1}}
-
-%D The \type{\start}||\type{\stop} macros are used for both
-%D the direct and indirect way. The parameterless call will
-%D build a simple box.
-
-\newtoks\everymakeup
-
-\let\currentmakeup\empty
-
-\unexpanded\def\startmakeup
- {\dodoubleempty\dostartmakeup}
-
-\def\dostartmakeup[#1][#2]%
- {\bgroup
- \edef\currentmakeup{#1}%
- \the\everymakeup
- \iffirstargument
- \setupmakeup[\currentmakeup][#2]%
- \let\stopmakeup\dodostopmakeup
- \expandafter \dodostartmakeup
- \else
- \let\stopmakeup\donostopmakeup
- \expandafter \donostartmakeup
- \fi}
-
-%D The simple case:
-
-\def\donostartmakeup % textwidth ?
- {\page
- \setupheader[\c!state=\v!empty]%
- \setupfooter[\c!state=\v!empty]%
- \setsystemmode\v!makeup
- \vbox to \textheight\bgroup\hsize\textwidth}
-
-\def\donostopmakeup
- {\egroup
- \page
- \egroup}
-
-%D The normal one:
-
-\newbox\makeupbox
-
-\def\dodostartmakeup
- {\doifvaluesomething{\??do\currentmakeup\c!page}
- {\page[\makeupparameter\c!page]}%
- \setsystemmode\v!makeup
- \setupmakeuplayout
- \makeupparameter\c!commands % hm, what is this one doing here ?
- \forgetall % else indented flush
- \global\setbox\makeupbox\vbox to \makeupparameter\c!height
- \bgroup
- \doifsomething{\makeupparameter\c!color}{\startcolor[\makeupparameter\c!color]}% can be made faster
- \doprocesslocalsetups{\makeupparameter\c!setups}%
- \hsize\makeupparameter\c!width
- \doifsomething{\makeupparameter\c!align}
- {\setupalign[\makeupparameter\c!align]}%
- \makeupparameter\c!top}
-
-\def\dodostopmakeup
- {\endgraf
- \makeupparameter\c!bottom
- \doifsomething{\makeupparameter\c!color}{\stopcolor}%
- \egroup
- \doflushmakeup
- \egroup
- \calculatehsizes
- \calculatevsizes}
-
-%D Selective page processing is handled here. (Why?)
-
-\def\doflushmakeup
- {\ifprocessingpages
- \ifpageselected
- \doshipoutmakeup
- \fi
- \else
- \ifpageselected \else
- \doshipoutmakeup
- \fi
- \fi
- \ifselectingpages
- \global\pageselectedfalse
- \fi}
-
-% \def\pushpagestate{\globalpushmacro\@@pnstate}
-% \def\poppagestate {\globalpopmacro \@@pnstate}
-
-\def\doshipoutmakeup
- {\pushpagestate % new
- \makeupparameter\c!before
- \setbox\makeupbox\vbox{\hbox{\color[\makeupparameter\c!color]{\box\makeupbox}}}%
- % \ifgridsnapping
- % new per 22/6/2006
- \ifdim\ht\makeupbox>\vsize
- \ht\makeupbox\vsize
- \fi
- % \fi
- \box\makeupbox
- \setuppagenumber[\c!state=\makeupparameter\c!pagestate]%
- \setupmakeuplayout
- \page
- \makeupparameter\c!after
- \relax % voor fi
- \ifdoublesided \ifodd\realpageno\else
- \processaction
- [\makeupparameter\c!doublesided]
- [ \v!yes=>\emptyhbox
- \page,
- \v!empty=>{\setupmakeuplayout
- \page[\v!blank]%
- \emptyhbox
- \page}]%
- \fi \fi
- \poppagestate} % new
-
-%D The text surrounding the main body text can be influenced
-%D by setting their associated status variables. The
-%D connection between them is made by the following macro
-
-\unexpanded\def\setupmakeuplayout
- {\setupfooter[\c!state=\makeupparameter\c!footerstate]%
- \setupheader[\c!state=\makeupparameter\c!headerstate]%
- \setuptext [\c!state=\makeupparameter\c!textstate]%
- \setupbottom[\c!state=\makeupparameter\c!bottomstate]%
- \setuptop [\c!state=\makeupparameter\c!topstate]%
- % this is needed, but no \setuplayout here; fails in texexec --fig=c
- \recalculatelayout}
-
-%D The standard page template is defined as follows:
-
-\definemakeup
- [\v!standard]
- [\c!width=\innermakeupwidth,
- \c!height=\textheight,
- \c!page=\v!right,
- \c!doublesided=\v!empty]
-
-\definemakeup
- [\v!text]
- [\c!topstate=\v!start,
- \c!headerstate=\v!start,
- \c!textstate=\v!start,
- \c!footerstate=\v!start,
- \c!bottomstate=\v!start,
- \c!doublesided=\v!no,
- \c!page=\v!yes,
- \c!top=\pseudostrut\ignorespaces,
- \c!bottom=\obeydepth\vss]
-
-\protect \endinput
diff --git a/tex/context/base/page-mak.mkvi b/tex/context/base/page-mak.mkvi
new file mode 100644
index 000000000..53385ff72
--- /dev/null
+++ b/tex/context/base/page-mak.mkvi
@@ -0,0 +1,219 @@
+%D \module
+%D [ file=page-mak, % copied from main-001,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Simple MakeUp,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / MakeUp}
+
+\unprotect
+
+%D \macros
+%D {definemakeup, setupmakeup, startmakeup}
+%D
+%D A makeup is a separate page, like a title page or colofon.
+%D There is one standard makeup page, but you can define more
+%D if needed.
+%D
+%D \starttyping
+%D \startstandardmakeup
+%D My Fancy Title
+%D \stopstandardmakeup
+%D \stoptyping
+%D
+%D The associated commands are:
+%D
+%D \showsetup{definemakeup}
+%D \showsetup{setupmakeup}
+%D \showsetup{startmakeup}
+
+%D New is that we have a layout with the same name so one can set
+%D up a special layout tthat then gets used.
+
+\installcommandhandler \??do {makeup} \??do
+
+\appendtoks
+ \setuevalue{\e!start\currentmakeup\e!makeup}{\startmakeup[\currentmakeup]}%
+ \setuevalue{\e!stop \currentmakeup\e!makeup}{\stopmakeup}%
+ \definelayout[\currentmakeup]% new
+\to \everydefinemakeup
+
+%D The \type{\start}||\type{\stop} macros are used for both
+%D the direct and indirect way. The parameterless call will
+%D build a simple box.
+
+\unexpanded\def\startmakeup
+ {\dodoubleempty\page_makeup_start}
+
+\let\stopmakeup\relax
+
+\def\page_makeup_start
+ {\iffirstargument
+ \expandafter\page_makeup_start_yes
+ \else
+ \expandafter\page_makeup_start_nop
+ \fi}
+
+%D The simple case: just a box with text dimensions.
+
+\unexpanded\def\page_makeup_start_nop[#name][#settings]% dummies
+ {\page
+ \setupheader[\c!state=\v!empty]%
+ \setupfooter[\c!state=\v!empty]%
+ \bgroup
+ \forgetall % else indented flush
+ \dontcomplain
+ \vbox to \textheight \bgroup
+ \setsystemmode\v!makeup
+ \hsize\textwidth
+ \let\stopmakeup\page_makeup_stop_nop}
+
+\unexpanded\def\page_makeup_stop_nop
+ {\egroup
+ \egroup
+ \page}
+
+%D The normal variant.
+
+\newbox \page_makeup_box
+\newtoks\page_makeup_every_setup
+
+\def\page_makeup_start_yes[#name][#settings]%
+ {\doifelsenothing{\namedmakeupparameter{#name}\c!page}
+ {\page}% new, so best not have dangling mess here like references (we could capture then and flush embedded)
+ {\page[\namedmakeupparameter{#name}\c!page]}%
+ \startlayout[#name]%
+ \bgroup
+ \edef\currentmakeup{#name}%
+ \setupcurrentmakeup[#settings]%
+ \setsystemmode\v!makeup
+ \the\page_makeup_every_setup
+ \makeupparameter\c!commands % hm, what is this one doing here ?
+ \forgetall % else indented flush
+ \dontcomplain
+ \global\setbox\page_makeup_box\vbox to \makeupparameter\c!height \bgroup
+ \dosetmakeupattributes\c!style\c!color
+ \hsize\makeupparameter\c!width
+ \setupalign[\makeupparameter\c!align]%
+ \doprocesslocalsetups{\makeupparameter\c!setups}% lua(..),xml(...,..),tex(..)
+ \makeupparameter\c!top
+ \let\stopmakeup\page_makeup_stop_yes}
+
+\unexpanded\def\page_makeup_stop_yes
+ {\endgraf
+ \makeupparameter\c!bottom
+ \egroup
+ \ifprocessingpages % this will be redone anyway (is this needed at all?)
+ \ifpageselected
+ \page_makeup_flush_box
+ \else
+ \page_makeup_wipe_box
+ \fi
+ \else
+ \ifpageselected
+ \page_makeup_wipe_box
+ \else
+ \page_makeup_flush_box
+ \fi
+ \fi
+ \ifselectingpages
+ \global\pageselectedfalse
+ \fi
+ \egroup
+ \stoplayout}
+
+\def\page_makeup_flush_box
+ {\pushpagestate % new
+ \makeupparameter\c!before
+ \relax % to be sure we don't enter the \if
+ \ifdim\ht\page_makeup_box>\vsize
+ \ht\page_makeup_box\vsize % is already set to \textheight (maybe set dp to 0)
+ \fi
+ \setuppagenumber[\c!state=\makeupparameter\c!pagestate]%
+ \box\page_makeup_box
+ \the\page_makeup_every_setup
+ \page
+ \makeupparameter\c!after
+ \relax % to be sure we don't enter the \if
+ \ifdoublesided \ifodd\realpageno \else
+ \getvalue{\??do::\c!doublesided::\makeupparameter\c!doublesided}%
+ \fi \fi
+ \poppagestate} % new
+
+\def\page_makeup_wipe_box
+ {\global\box\page_makeup_box\emptybox}
+
+\setvalue{\??do::\c!doublesided::\v!yes}%
+ {\emptyhbox
+ \page}
+
+\setvalue{\??do::\c!doublesided::\v!empty}%
+ {\the\page_makeup_every_setup
+ % == \page[\v!dummy]
+ \page[\v!blank]%
+ \emptyhbox
+ \page}
+
+%D The text surrounding the main body text can be influenced
+%D by setting their associated status variables. The
+%D connection between them is made by the following macro
+
+\appendtoks % this might need a revision
+ \setupfooter[\c!state=\makeupparameter\c!footerstate]%
+ \setupheader[\c!state=\makeupparameter\c!headerstate]%
+ \setuptext [\c!state=\makeupparameter\c!textstate]%
+ \setupbottom[\c!state=\makeupparameter\c!bottomstate]%
+ \setuptop [\c!state=\makeupparameter\c!topstate]%
+ % this is needed, but no \setuplayout here; fails in texexec --fig=c
+ %\recalculatelayout
+\to \page_makeup_every_setup
+
+%D The standard page template is defined as follows:
+
+\setupmakeup
+ [\c!width=\innermakeupwidth, % example in manual / was \makeupwidth
+ \c!height=\textheight, % example in manual
+ %\c!commands=,
+ %\c!setups=,
+ %\c!color=,
+ %\c!align=,
+ %\c!before=,
+ %\c!after=,
+ \c!page=\v!right,
+ \c!doublesided=\v!empty,
+ \c!top=\vss,
+ \c!bottom=\vss,
+ \c!bottomstate=\v!normal,
+ \c!topstate=\v!normal,
+ \c!textstate=\v!normal,
+ \c!headerstate=\v!stop,
+ \c!footerstate=\v!stop,
+ \c!pagestate=\v!stop] % in manual ! ! !
+
+\definemakeup
+ [\v!standard]
+ [\c!width=\innermakeupwidth,
+ \c!height=\textheight,
+ \c!page=\v!right,
+ \c!doublesided=\v!empty]
+
+\definemakeup
+ [\v!text]
+ [\c!topstate=\v!start,
+ \c!headerstate=\v!start,
+ \c!textstate=\v!start,
+ \c!footerstate=\v!start,
+ \c!bottomstate=\v!start,
+ \c!doublesided=\v!no,
+ \c!page=\v!yes,
+ \c!top=\pseudostrut\ignorespaces,
+ \c!bottom=\obeydepth\vss]
+
+\protect
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index c10a64d95..d299bfc1a 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 e14bfa84a..ec6a091ca 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 1da99b200..4f82f9b8f 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 : 10/19/11 18:24:29
+-- merge date : 10/19/11 23:10:36
do -- begin closure to overcome local limits and interference