From d9d64ac2f2a9e32d105c8aa23b44afe24aa5e196 Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 26 Aug 2011 14:40:12 +0300 Subject: beta 2011.08.26 13:32 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4089 -> 4093 bytes tex/context/base/context-version.png | Bin 104744 -> 106125 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-otn.lua | 29 ++++-- tex/context/base/pack-rul.mkii | 2 +- tex/context/base/pack-rul.mkiv | 20 +--- tex/context/base/scrn-int.mkii | 3 +- tex/context/base/scrn-pag.mkvi | 103 +++++++-------------- tex/context/base/status-files.pdf | Bin 23870 -> 23890 bytes tex/context/base/status-lua.pdf | Bin 162205 -> 162208 bytes tex/context/base/strc-sec.mkiv | 2 +- tex/context/base/strc-tag.lua | 18 +++- tex/generic/context/luatex/luatex-fonts-merged.lua | 31 +++++-- 16 files changed, 103 insertions(+), 113 deletions(-) diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index b6dbba5e0..1da67eedf 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.08.26 01:43} +\newcontextversion{2011.08.26 13:32} %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 6ee2a3bfb..815e84f60 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.08.26 01:43} +\newcontextversion{2011.08.26 13:32} %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 8c927f12b..b9f838973 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index 4e9c93bbe..2328fe297 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index 578783b40..ba1a4f21f 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.08.26 01:43} +\edef\contextversion{2011.08.26 13:32} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 433fbb340..855070b9a 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.08.26 01:43} +\edef\contextversion{2011.08.26 13:32} %D For those who want to use this: diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index d9dc20f6c..1d2b20976 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -976,17 +976,29 @@ example, the following is valid:

Therefore we we don't really do the replacement here already unless we have the single lookup case. The efficiency of the replacements can be improved by deleting -as less as needed but that would also mke the code even more messy.

+as less as needed but that would also make the code even more messy.

--ldx]]-- local function delete_till_stop(start,stop,ignoremarks) - if start ~= stop then - -- todo keep marks + local n = 1 + if start == stop then + -- done + elseif ignoremarks then + repeat -- start x x m x x stop => start m + local next = start.next + if not marks[next.char] then + delete_node(start,next) + end + n = n + 1 + until next == stop + else -- start x x x stop => start repeat local next = start.next delete_node(start,next) + n = n + 1 until next == stop end + return n end --[[ldx-- @@ -1076,29 +1088,32 @@ end function chainprocs.gsub_alternate(start,stop,kind,chainname,currentcontext,lookuphash,currentlookup,chainlookupname) -- todo: marks ? - delete_till_stop(start,stop) + local n = delete_till_stop(start,stop) local current = start local subtables = currentlookup.subtables + local m = 0 while current do if current.id == glyph_code then + m = m + 1 local currentchar = current.char local lookupname = subtables[1] local alternatives = lookuphash[lookupname] if not alternatives then if trace_bugs then - logwarning("%s: no alternative hits",cref(kind,chainname,chainlookupname,lookupname)) + logwarning("%s: %s of %s, no alternative hit",cref(kind,chainname,chainlookupname,lookupname),m,n) end else alternatives = alternatives[currentchar] if not alternatives then if trace_bugs then - logwarning("%s: no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),gref(currentchar)) + logwarning("%s: %s of %s, no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),m,n,gref(currentchar)) end else local choice, index = alternative_glyph(current,alternatives,kind,chainname,chainlookupname,lookupname) current.char = choice if trace_alternatives then - logprocess("%s: replacing single %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),index,gref(currentchar),gref(choice),index) + logprocess("%s: %s of %s, replacing single %s by alternative %s (%s)", + cref(kind,chainname,chainlookupname,lookupname),m,n,index,gref(currentchar),gref(choice)) end end end diff --git a/tex/context/base/pack-rul.mkii b/tex/context/base/pack-rul.mkii index 2e625a90f..7399cacd8 100644 --- a/tex/context/base/pack-rul.mkii +++ b/tex/context/base/pack-rul.mkii @@ -871,7 +871,7 @@ \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi \edef\overlaylinecolor{\framedparameter\c!framecolor}% - \edef\overlaylinewidth{\the\ruledlinewidth}% + \def \overlaylinewidth{\the\ruledlinewidth}% no edef \edef\@@localframing {\framedparameter\c!frame}% \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else \edef\framedrulethickness{\framedparameter\c!rulethickness}% diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv index 97724ff00..6b90daee1 100644 --- a/tex/context/base/pack-rul.mkiv +++ b/tex/context/base/pack-rul.mkiv @@ -417,6 +417,8 @@ \edef\backgroundwidth {\the\wd\framebox}% \edef\backgroundheight{\the\ht\framebox}% \edef\backgrounddepth {\the\dp\framebox}% + \edef\overlaylinecolor{\framedparameter\c!framecolor}% + \edef\overlaylinewidth{\the\ruledlinewidth}% %\edef\foregroundbox{\box#1}% \edef\component{\framedparameter\c!component}% \ifx\component\empty @@ -676,10 +678,6 @@ \fi % not here, in calling macro: setups \removeframedboxdepth -% \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}% -% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi - \edef\overlaylinecolor{\framedparameter\c!framecolor}% - \edef\overlaylinewidth{\the\ruledlinewidth}% \edef\@@localframing {\framedparameter\c!frame}% \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else \edef\framedrulethickness{\framedparameter\c!rulethickness}% @@ -712,23 +710,17 @@ \fi \setbox\framebox\box#2% \dp\framebox\zeropoint -% \removeframedboxdepth -% \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}% -% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi - \edef\overlaylinecolor{\framedparameter\c!framecolor}% - \edef\overlaylinewidth{\the\ruledlinewidth}% - \edef\@@localframing {\framedparameter\c!frame}% + \edef\framedbackground {\framedparameter\c!background}% + \edef\framedrulethickness{\framedparameter\c!rulethickness}% + \edef\@@localframing {\framedparameter\c!frame}% \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else - \edef\framedrulethickness{\framedparameter\c!rulethickness}% \ifx\framedrulethickness\empty\else \ruledlinewidth\framedrulethickness\relax \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi \fi \dooutlinebox % real or invisible frame \fi \fi - \edef\framedbackground{\framedparameter\c!background}% \ifx\framedbackground\empty\else\dobackedbox\fi -% \restoreframedboxdepth \box\framebox \egroup} @@ -1286,8 +1278,6 @@ \let\postprocessframebox\relax % prevent nesting \next\framebox \fi - \edef\overlaylinecolor{\framedparameter\c!framecolor}% - \edef\overlaylinewidth{\the\ruledlinewidth}% \@@... \ifboxhasframe % real or invisible frame \dooutlinebox \fi diff --git a/tex/context/base/scrn-int.mkii b/tex/context/base/scrn-int.mkii index 1f104c03d..01d8501e2 100644 --- a/tex/context/base/scrn-int.mkii +++ b/tex/context/base/scrn-int.mkii @@ -89,7 +89,8 @@ \advance\backspace -\!!widtha \fi\fi \advance\!!widtha\rightcombitotal - \advance\!!widtha 2\dimexpr\@@scbackspace+\@@schoroffset\relax} + \advance\!!widtha 2\dimexpr\@@scbackspace+\@@schoroffset\relax + \advance\!!widtha \makeupwidth} {\doifelse\@@scwidth\v!max {\!!widtha\printpaperwidth} {\!!widtha\@@scwidth}}% diff --git a/tex/context/base/scrn-pag.mkvi b/tex/context/base/scrn-pag.mkvi index aae99f304..ca5305304 100644 --- a/tex/context/base/scrn-pag.mkvi +++ b/tex/context/base/scrn-pag.mkvi @@ -31,93 +31,56 @@ \newconditional\scrn_canvas_tight_page -% \def\scrn_canvas_calculate -% {\begingroup -% \edef\currentinteractionscreenwidth {\interactionscreenparameter\c!width }% -% \edef\currentinteractionscreenheight{\interactionscreenparameter\c!height}% -% \canvasbackoffset\backspace -% \canvastopoffset\topspace -% \ifx\currentinteractionscreenwidth\v!fit -% \global\canvaswidth\leftcombitotal -% \ifdim\backspace>\canvaswidth -% \ifdim\backspace>\zeropoint\relax -% \global\advance\canvasbackoffset -\canvaswidth -% \fi -% \fi -% \global\advance\canvaswidth\dimexpr -% \rightcombitotal -% + 2\dimexpr -% \interactionscreenparameter\c!backspace -% + \interactionscreenparameter\c!horoffset -% \relax -% \relax -% \donetrue -% \else\ifx\currentinteractionscreenwidth\v!max -% \global\canvaswidth\printpaperwidth -% \donetrue -% \else -% \global\canvaswidth\currentinteractionscreenwidth -% \donefalse -% \fi\fi -% \ifdone -% \ifdim\canvaswidth>\paperwidth\ifdim\canvaswidth>\zeropoint -% \global\paperwidth\canvaswidth % kills location=middle -% \fi\fi -% \fi -% \ifx\currentinteractionscreenheight\v!fit -% \global\canvasheight\dimexpr\topheight+\topdistance\relax -% \ifdim\topspace>\canvasheight -% \ifdim\topspace>\zeropoint\relax -% \global\advance\canvastopoffset -\canvasheight -% \fi -% \fi -% \global\advance\canvasheight\dimexpr -% \makeupheight -% + \bottomdistance -% + \bottomheight -% + 2\dimexpr -% \interactionscreenparameter\c!topspace -% + \interactionscreenparameter\c!veroffset -% \relax -% \relax -% \else\ifx\currentinteractionscreenheight\v!max -% \global\canvasheight\printpaperheight -% \else -% \global\canvasheight\currentinteractionscreenheight -% \fi\fi -% \ifdone -% \ifdim\canvasheight>\paperheight\ifdim\canvasheight>\zeropoint -% \global\paperheight\canvasheight % kills location=middle -% \fi\fi -% \fi -% \endgroup} - \def\scrn_canvas_calculate {\begingroup \edef\currentinteractionscreenwidth {\interactionscreenparameter\c!width }% \edef\currentinteractionscreenheight{\interactionscreenparameter\c!height}% \canvasbackoffset\backspace \canvastopoffset\topspace - \ifx\currentinteractionscreenwidth\v!fit - \global\canvaswidth\leftcombitotal + \ifx\currentinteractionscreenwidth\v!max + \global\canvaswidth\printpaperwidth + \else\ifx\currentinteractionscreenwidth\v!fit + \global\canvaswidth\dimexpr + \leftcombitotal + + \makeupwidth + + \rightcombitotal + + 2\dimexpr + \interactionscreenparameter\c!backspace + + \interactionscreenparameter\c!horoffset + \relax + \relax + \else\ifx\currentinteractionscreenwidth\v!tight \ifdim\backspace>\canvaswidth \ifdim\backspace>\zeropoint\relax \global\advance\canvasbackoffset -\canvaswidth \fi \fi \global\advance\canvaswidth\dimexpr - \rightcombitotal + \makeupwidth + + \rightcombitotal + 2\dimexpr \interactionscreenparameter\c!backspace + \interactionscreenparameter\c!horoffset \relax \relax - \else\ifx\currentinteractionscreenwidth\v!max - \global\canvaswidth\printpaperwidth \else \global\canvaswidth\currentinteractionscreenwidth - \fi\fi - \ifx\currentinteractionscreenheight\v!fit + \fi\fi\fi + \ifx\currentinteractionscreenheight\v!max + \global\canvasheight\printpaperheight + \else\ifx\currentinteractionscreenheight\v!fit + \global\canvasheight\dimexpr + \topheight + + \topdistance + + \makeupheight + + \bottomdistance + + \bottomheight + + 2\dimexpr + \interactionscreenparameter\c!topspace + + \interactionscreenparameter\c!veroffset + \relax + \relax + \else\ifx\currentinteractionscreenheight\v!tight \global\canvasheight\dimexpr\topheight+\topdistance\relax \ifdim\topspace>\canvasheight \ifdim\topspace>\zeropoint\relax @@ -133,11 +96,9 @@ + \interactionscreenparameter\c!veroffset \relax \relax - \else\ifx\currentinteractionscreenheight\v!max - \global\canvasheight\printpaperheight \else \global\canvasheight\currentinteractionscreenheight - \fi\fi + \fi\fi\fi \ifconditional\c_page_layouts_location_is_set \global\setfalse\scrn_canvas_tight_page \fi diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index c9d27a01e..6f26315ab 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index c8d4e573f..71187c33d 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv index 33ab047d0..1990e0d97 100644 --- a/tex/context/base/strc-sec.mkiv +++ b/tex/context/base/strc-sec.mkiv @@ -331,7 +331,7 @@ {\getvalue{\??nh:\c!placehead:\v!yes}}} \def\setheaddisplay - {\doifelsevalue{\??nh:\headparameter\c!alternative}\v!horizontal + {\doifelsevalue{\??ns:\headparameter\c!alternative}\v!horizontal {\setfalse\headisdisplay} {\settrue \headisdisplay}} diff --git a/tex/context/base/strc-tag.lua b/tex/context/base/strc-tag.lua index a0c1d1d32..78b807487 100644 --- a/tex/context/base/strc-tag.lua +++ b/tex/context/base/strc-tag.lua @@ -242,13 +242,21 @@ function tags.start(tag,specification) codeinjections.enabletags() enabled = true end - labels[tag] = label ~= "" and label or tag - local fulltag + -- +--~ labels[tag] = label ~= "" and label or tag +--~ local fulltag +--~ if detail and detail ~= "" then +--~ fulltag = tag .. ":" .. detail +--~ else +--~ fulltag = tag +--~ end + -- + local fulltag = label ~= "" and label or tag + labels[tag] = fulltag if detail and detail ~= "" then - fulltag = tag .. ":" .. detail - else - fulltag = tag + fulltag = fulltag .. ":" .. detail end + -- local t = #taglist + 1 local n = (ids[fulltag] or 0) + 1 ids[fulltag] = n diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 99c22f268..6202ac04e 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 : 08/26/11 01:43:42 +-- merge date : 08/26/11 13:33:00 do -- begin closure to overcome local limits and interference @@ -9058,17 +9058,29 @@ example, the following is valid:

Therefore we we don't really do the replacement here already unless we have the single lookup case. The efficiency of the replacements can be improved by deleting -as less as needed but that would also mke the code even more messy.

+as less as needed but that would also make the code even more messy.

--ldx]]-- local function delete_till_stop(start,stop,ignoremarks) - if start ~= stop then - -- todo keep marks + local n = 1 + if start == stop then + -- done + elseif ignoremarks then + repeat -- start x x m x x stop => start m + local next = start.next + if not marks[next.char] then + delete_node(start,next) + end + n = n + 1 + until next == stop + else -- start x x x stop => start repeat local next = start.next delete_node(start,next) + n = n + 1 until next == stop end + return n end --[[ldx-- @@ -9158,29 +9170,32 @@ end function chainprocs.gsub_alternate(start,stop,kind,chainname,currentcontext,lookuphash,currentlookup,chainlookupname) -- todo: marks ? - delete_till_stop(start,stop) + local n = delete_till_stop(start,stop) local current = start local subtables = currentlookup.subtables + local m = 0 while current do if current.id == glyph_code then + m = m + 1 local currentchar = current.char local lookupname = subtables[1] local alternatives = lookuphash[lookupname] if not alternatives then if trace_bugs then - logwarning("%s: no alternative hits",cref(kind,chainname,chainlookupname,lookupname)) + logwarning("%s: %s of %s, no alternative hit",cref(kind,chainname,chainlookupname,lookupname),m,n) end else alternatives = alternatives[currentchar] if not alternatives then if trace_bugs then - logwarning("%s: no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),gref(currentchar)) + logwarning("%s: %s of %s, no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),m,n,gref(currentchar)) end else local choice, index = alternative_glyph(current,alternatives,kind,chainname,chainlookupname,lookupname) current.char = choice if trace_alternatives then - logprocess("%s: replacing single %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),index,gref(currentchar),gref(choice),index) + logprocess("%s: %s of %s, replacing single %s by alternative %s (%s)", + cref(kind,chainname,chainlookupname,lookupname),m,n,index,gref(currentchar),gref(choice)) end end end -- cgit v1.2.3