From 35c6628f423348b507ceb53016942c1c9978f5ad Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 16 Feb 2011 10:54:00 +0100 Subject: beta 2011.02.16 10:54 --- tex/context/base/back-ini.lua | 3 +- tex/context/base/back-pdf.lua | 43 ++++++++++++++++++++--- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-col.lua | 4 ++- tex/context/base/font-col.mkiv | 14 ++------ tex/context/base/font-ini.mkiv | 8 +++-- tex/context/base/font-run.mkiv | 2 +- tex/context/base/grph-inc.lua | 51 ++++++++++++++-------------- tex/context/base/grph-inc.mkiv | 6 ++-- tex/context/base/mult-de.mkii | 2 ++ tex/context/base/mult-def.lua | 7 ++++ tex/context/base/mult-en.mkii | 2 ++ tex/context/base/mult-fr.mkii | 2 ++ tex/context/base/mult-it.mkii | 2 ++ tex/context/base/mult-nl.mkii | 2 ++ tex/context/base/mult-pe.mkii | 2 ++ tex/context/base/mult-ro.mkii | 2 ++ tex/context/base/node-ini.lua | 25 ++++++++++---- tex/context/base/status-files.pdf | Bin 23241 -> 23229 bytes tex/context/base/syst-lua.lua | 16 ++++----- tex/context/base/typo-cln.lua | 2 +- tex/context/interface/keys-cs.xml | 2 ++ tex/context/interface/keys-de.xml | 2 ++ tex/context/interface/keys-en.xml | 2 ++ tex/context/interface/keys-fr.xml | 2 ++ tex/context/interface/keys-it.xml | 2 ++ tex/context/interface/keys-nl.xml | 2 ++ tex/context/interface/keys-pe.xml | 2 ++ tex/context/interface/keys-ro.xml | 2 ++ tex/generic/context/luatex-fonts-merged.lua | 2 +- 33 files changed, 150 insertions(+), 71 deletions(-) diff --git a/tex/context/base/back-ini.lua b/tex/context/base/back-ini.lua index bc690f946..4e990aa38 100644 --- a/tex/context/base/back-ini.lua +++ b/tex/context/base/back-ini.lua @@ -104,6 +104,7 @@ backends.codeinjections = { setfigurecolorspace = nothing, setfigurealternative = nothing, + setfiguremask = nothing, enabletags = nothing, @@ -155,7 +156,7 @@ backends.tables = { backends.current = "unknown" -function backends.install(what) +function backends.install(what) -- these can become metatables if type(what) == "string" then local backend = backends[what] if backend then diff --git a/tex/context/base/back-pdf.lua b/tex/context/base/back-pdf.lua index eec82d5f2..5f4ea465c 100644 --- a/tex/context/base/back-pdf.lua +++ b/tex/context/base/back-pdf.lua @@ -434,11 +434,11 @@ end -- graphics function codeinjections.setfigurealternative(data,figure) - local display = data.request.display + local request = data.request + local display = request.display if display and display ~= "" then - local request = data.request - figures.push { - name = request.display, + local nested = figures.push { + name = display, page = request.page, size = request.size, prefix = request.prefix, @@ -461,8 +461,41 @@ function codeinjections.setfigurealternative(data,figure) Alternates = pdfreference(pdfimmediateobject(tostring(a))), } displayfigure.attr = d() - return displayfigure, figures.current() + figures.pop() + return displayfigure, nested + else + figures.pop() + end + end +end + +function codeinjections.setfiguremask(data,figure) -- mark + local request = data.request + local mask = request.mask + if mask and mask ~= "" then + figures.push { + name = mask, + page = request.page, + size = request.size, + prefix = request.prefix, + cache = request.cache, + width = request.width, + height = request.height, + } + figures.identify() + local maskfigure = figures.check() + if maskfigure then + local image = maskfigure.status.private + if image then + img.immediatewrite(image) + local d = pdfdictionary { + Interpolate = false, + SMask = pdfreference(image.objnum), + } + figure.attr = d() + end end + figures.pop() end end diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 46e16e7c8..c1479bb14 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.02.15 16:11} +\newcontextversion{2011.02.16 10:54} %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 57ce69dd0..4ce0db0f3 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.02.15 16:11} +\newcontextversion{2011.02.16 10:54} %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.mkii b/tex/context/base/context.mkii index e17d70eb5..85fde561a 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.02.15 16:11} +\edef\contextversion{2011.02.16 10:54} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 0046482a5..3a39bee24 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.02.15 16:11} +\edef\contextversion{2011.02.16 10:54} %D For those who want to use this: diff --git a/tex/context/base/font-col.lua b/tex/context/base/font-col.lua index e1c2afe48..4b888d6cb 100644 --- a/tex/context/base/font-col.lua +++ b/tex/context/base/font-col.lua @@ -146,6 +146,8 @@ function collections.stage_2(name) statistics.stoptiming(fonts) end +-- we already have this parser + local P, Cc = lpeg.P, lpeg.Cc local spec = (P("sa") + P("at") + P("scaled") + P("at") + P("mo")) * P(" ")^1 * (1-P(" "))^1 * P(" ")^0 * -1 local okay = ((1-spec)^1 * spec * Cc(true)) + Cc(false) @@ -190,7 +192,7 @@ function collections.message(message) end end -function collections.process(head) +function collections.process(head) -- this way we keep feature processing if active then local done = false for n in traverse_id(glyph,head) do diff --git a/tex/context/base/font-col.mkiv b/tex/context/base/font-col.mkiv index 0ace4854f..20af3e91b 100644 --- a/tex/context/base/font-col.mkiv +++ b/tex/context/base/font-col.mkiv @@ -79,7 +79,7 @@ {\egroup} \def\doclonefonta#1#2% kind of dododefinefont - {\ctxlua{fonts.collections.message("defining #1 (relative scale: #2)")}% + {\ctxlua{fonts.collections.message("defining #1 (relative scale: #2)")}% brrr \autofontsizefalse \let\lastfontidentifier\s!dummy \def\localrelativefontsize{#2}% @@ -99,7 +99,6 @@ \def\doclonefontstagetwo#1% {\ctxlua{fonts.collections.stage_2("#1")}} - % check : only replace when present in replacement font (default: no) % force : force replacent even when basefont has glyph (default: yes) @@ -111,16 +110,7 @@ % % \definefontsynonym[SerifPlus][Serif][fallbacks=whatever] % -% \definefont[MySerif][SerifPlus at 10pt] -% -% \startcolumns[n=6] -% \MySerif -% \dostepwiserecurse {0} {65000} {1} { -% \iffontchar\font\recurselevel -% {\tttf\uchexnumbers\recurselevel:} \char\recurselevel\par -% \fi -% } -% \stopcolumns +% \showfont[SerifPlus][all] % \definefontfeature[zh][mode=node,script=hang,lang=zhs] % \definefontfallback[serifwhatever] [lmroman10-regular] [0x0000-0x0400][force=yes] diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 2df79815f..0c5a3b9f2 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -687,8 +687,8 @@ \let\relativefontid\empty -\def\lowleveldefinefont#1#2% #2 = cs - {% +\unexpanded\def\lowleveldefinefont#1#2% #2 = cs + {% we can now set more at the lua end \ctxlua{fonts.definers.stage_one("\luaescapestring{#1}")}% the escapestring catches at \somedimen % sets \scaledfontmode and \somefontname and \somefontsize \ifcase\scaledfontmode\relax @@ -709,6 +709,7 @@ % scaled, don't use this one as it's unpredictable \scaledfontsize-\somefontsize\scaledpoint \fi + \relax \scaledfontsize\localrelativefontsize\scaledfontsize \ifautofontsize \scaledfontsize\currentfontbodyscale\scaledfontsize @@ -735,7 +736,8 @@ "\@@fontclassgoodies", % experiment (not yet used) "\@@fontgoodies" % experiment )}% - \edef\somefontspec{at \somefontsize}% we need the resolved designsize (for fallbacks) +% \edef\somefontspec{at \somefontsize}% we need the resolved designsize (for fallbacks) + \edef\somefontspec{at \number\scaledfontsize sp}% we need the resolved designsize (for fallbacks) \expandafter\let\expandafter\lastrawfontcall\csname#2\endcsname \the\everydefinefont} diff --git a/tex/context/base/font-run.mkiv b/tex/context/base/font-run.mkiv index f65017ef4..aaa714c3d 100644 --- a/tex/context/base/font-run.mkiv +++ b/tex/context/base/font-run.mkiv @@ -140,7 +140,7 @@ \ifinsidefloat\else\startbaselinecorrection\fi \vbox\bgroup \forgetall - \startoverlay + \startoverlay % easier in cld {\vbox {\tf \setstrut \dummy \offinterlineskip diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua index 71ef9430a..19429c5b5 100644 --- a/tex/context/base/grph-inc.lua +++ b/tex/context/base/grph-inc.lua @@ -16,6 +16,8 @@ if not modules then modules = { } end modules ['grph-inc'] = { -- figures.boxnumber can go as we now can use names +-- avoid push + --[[ The ConTeXt figure inclusion mechanisms are among the oldest code in ConTeXt and evolve dinto a complex whole. One reason is that we @@ -40,7 +42,7 @@ run TeX code from within Lua. Some more functionality will move to Lua. local format, lower, find, match, gsub, gmatch = string.format, string.lower, string.find, string.match, string.gsub, string.gmatch local texbox = tex.box local contains = table.contains -local concat = table.concat +local concat, insert, remove = table.concat, table.insert, table.remove local todimen = string.todimen local settings_to_array, settings_to_hash = utilities.parsers.settings_to_array, utilities.parsers.settings_to_hash local allocate = utilities.storage.allocate @@ -251,11 +253,10 @@ end -- interfacing to tex - local figuredata = { } local callstack = { } -function figures.new() -- we could use metatables status -> used -> request but it needs testing +local function new() -- we could use metatables status -> used -> request but it needs testing local request = { name = false, label = false, @@ -267,6 +268,7 @@ function figures.new() -- we could use metatables status -> used -> request but ["repeat"] = false, controls = false, display = false, + mask = false, conversion = false, resolution = false, cache = false, @@ -291,30 +293,28 @@ function figures.new() -- we could use metatables status -> used -> request but } -- setmetatable(status, { __index = used }) -- setmetatable(used, { __index = request }) - figuredata = { + return { request = request, used = used, status = status, } - return figuredata end + -- use table.insert|remove + function figures.push(request) - local ncs = #callstack + 1 - if ncs == 1 then - statistics.starttiming(figures) - end - local figuredata = figures.new() + statistics.starttiming(figures) + insert(callstack,figuredata) + figuredata = new() if request then - local iv = interfaces.variables -- request.width/height are strings and are only used when no natural dimensions -- can be determined; at some point the handlers might set them to numbers instead -- local w, h = tonumber(request.width), tonumber(request.height) request.page = math.max(tonumber(request.page) or 1,1) request.size = img.checksize(request.size) - request.object = iv[request.object] == variables.yes - request["repeat"] = iv[request["repeat"]] == variables.yes - request.preview = iv[request.preview] == variables.yes + request.object = request.object == variables.yes + request["repeat"] = request["repeat"] == variables.yes + request.preview = request.preview == variables.yes request.cache = request.cache ~= "" and request.cache request.prefix = request.prefix ~= "" and request.prefix request.format = request.format ~= "" and request.format @@ -322,17 +322,17 @@ function figures.push(request) -- request.height = (h and h > 0) or false table.merge(figuredata.request,request) end - callstack[ncs] = figuredata return figuredata end function figures.pop() - local ncs = #callstack - figuredata = callstack[ncs] - callstack[ncs] = nil - if ncs == 1 then - statistics.stoptiming(figures) - end + figuredata = remove(callstack) or figuredata + statistics.stoptiming(figures) + return figuredata +end + +function figures.current() + return figuredata -- callstack[#callstack] end function figures.get(category,tag,default) @@ -349,10 +349,6 @@ function figures.tprint(category,tag,default) context(figures.get(category,tag,default)) end -function figures.current() - return callstack[#callstack] -end - local defaultformat = "pdf" local defaultprefix = "m_k_i_v_" @@ -812,9 +808,11 @@ function existers.generic(askedname,resolve) end return result end + function checkers.generic(data) local dr, du, ds = data.request, data.used, data.status local name, page, size, color = du.fullname or "unknown generic", du.page or dr.page, dr.size or "crop", dr.color or "natural" + local mask = dr.mask or "none" local conversion = dr.conversion local resolution = dr.resolution if not conversion or conversion == "" then @@ -824,10 +822,12 @@ function checkers.generic(data) resolution = "unknown" end local hash = name .. "->" .. page .. "->" .. size .. "->" .. color .. "->" .. conversion .. "->" .. resolution + .. "->" .. mask local figure = figures.loaded[hash] if figure == nil then figure = img.new { filename = name, page = page, pagebox = dr.size } codeinjections.setfigurecolorspace(data,figure) + codeinjections.setfiguremask(data,figure) figure = (figure and img.scan(figure)) or false local f, d = codeinjections.setfigurealternative(data,figure) figure, data = f or figure, d or data @@ -855,6 +855,7 @@ function checkers.generic(data) end return data end + function includers.generic(data) local dr, du, ds = data.request, data.used, data.status -- here we set the 'natural dimensions' diff --git a/tex/context/base/grph-inc.mkiv b/tex/context/base/grph-inc.mkiv index 80a9c3187..8304c393e 100644 --- a/tex/context/base/grph-inc.mkiv +++ b/tex/context/base/grph-inc.mkiv @@ -148,6 +148,7 @@ \let\@@efpage \!!zerocount \let\@@efobject \@@exobject \let\@@efdisplay \empty + \let\@@efmask \empty % \let\@@efpreset \v!yes \let\@@efsplit \empty @@ -255,6 +256,7 @@ controls = "\@@efcontrols", preview = "\@@efpreview", display = "\@@efdisplay", + mask = "\@@efmask", conversion = "\@@efconversion", resolution = "\@@efresolution", color = "\internalspotcolorparent\@@efcolor", % hack is needed @@ -372,7 +374,7 @@ \def\dogetfiguredimensions[#1][#2]% {\startnointerference \settrue\testexternalfigureonly - \externalfigure[#1][#2,\c!display=,\c!object=\v!no]% + \externalfigure[#1][#2,\c!display=,\c!mask=,\c!object=\v!no]% \stopnointerference} \let\getfiguredimensionsonly\getfiguredimensions @@ -393,7 +395,7 @@ \testexternalfigureonly \setfalse\externalfigureflush % == test ? \externalfigure[#1][#2][#3]% or \doexternalfigure - \externalfigure[#1][#2,\c!display=,\c!object=\v!no]% + \externalfigure[#1][#2,\c!display=,\c!mask=,\c!object=\v!no]% \stopnointerference} % helpers (will be replaced when xforms are accessible at the lua end) diff --git a/tex/context/base/mult-de.mkii b/tex/context/base/mult-de.mkii index 6c95f4aaa..aec2b075a 100644 --- a/tex/context/base/mult-de.mkii +++ b/tex/context/base/mult-de.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{marginalkante} \setinterfacevariable{margintitle}{marginaltitel} \setinterfacevariable{marking}{beschriftung} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{mathmatrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{textstatus} \setinterfaceconstant{textstyle}{textstil} \setinterfaceconstant{textwidth}{textbreite} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{titel} \setinterfaceconstant{titlecolor}{titelfarbe} \setinterfaceconstant{titlecommand}{titlecommand} diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua index fd1837147..69d1edb84 100644 --- a/tex/context/base/mult-def.lua +++ b/tex/context/base/mult-def.lua @@ -10483,6 +10483,9 @@ return { ["pe"]="عرض‌متن", ["ro"]="latimetext", }, + ["threshold"]={ + ["en"]="threshold", -- rather international term + }, ["title"]={ ["cs"]="titul", ["de"]="titel", @@ -12594,6 +12597,10 @@ return { ["pe"]="نمایش", ["ro"]="display", }, + ["mask"]={ + ["en"]="mask", + ["nl"]="masker", + }, ["dot"]={ ["cs"]="tecka", ["de"]="punkt", diff --git a/tex/context/base/mult-en.mkii b/tex/context/base/mult-en.mkii index 383e731a1..608cd6706 100644 --- a/tex/context/base/mult-en.mkii +++ b/tex/context/base/mult-en.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{marginedge} \setinterfacevariable{margintitle}{margintitle} \setinterfacevariable{marking}{marking} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{mathmatrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{textstate} \setinterfaceconstant{textstyle}{textstyle} \setinterfaceconstant{textwidth}{textwidth} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{title} \setinterfaceconstant{titlecolor}{titlecolor} \setinterfaceconstant{titlecommand}{titlecommand} diff --git a/tex/context/base/mult-fr.mkii b/tex/context/base/mult-fr.mkii index a686e2811..283f66df6 100644 --- a/tex/context/base/mult-fr.mkii +++ b/tex/context/base/mult-fr.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{bordmarge} \setinterfacevariable{margintitle}{titremarge} \setinterfacevariable{marking}{marquage} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{mathmatrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{etattexte} \setinterfaceconstant{textstyle}{styletexte} \setinterfaceconstant{textwidth}{largeurtexte} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{titre} \setinterfaceconstant{titlecolor}{couleurtitre} \setinterfaceconstant{titlecommand}{titlecommand} diff --git a/tex/context/base/mult-it.mkii b/tex/context/base/mult-it.mkii index 65061f61c..6dbedaa41 100644 --- a/tex/context/base/mult-it.mkii +++ b/tex/context/base/mult-it.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{bordomargine} \setinterfacevariable{margintitle}{titoloinmargine} \setinterfacevariable{marking}{marcatura} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{mathmatrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{statotesto} \setinterfaceconstant{textstyle}{stiletesto} \setinterfaceconstant{textwidth}{ampiezzatesto} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{titolo} \setinterfaceconstant{titlecolor}{coloretitolo} \setinterfaceconstant{titlecommand}{titlecommand} diff --git a/tex/context/base/mult-nl.mkii b/tex/context/base/mult-nl.mkii index 4676f1951..21778c3a4 100644 --- a/tex/context/base/mult-nl.mkii +++ b/tex/context/base/mult-nl.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{kantlijn} \setinterfacevariable{margintitle}{margetitel} \setinterfacevariable{marking}{markering} +\setinterfacevariable{mask}{masker} \setinterfacevariable{mathalignment}{wiskundeuitlijnen} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{wiskundematrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{tekststatus} \setinterfaceconstant{textstyle}{tekstletter} \setinterfaceconstant{textwidth}{tekstbreedte} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{titel} \setinterfaceconstant{titlecolor}{titelkleur} \setinterfaceconstant{titlecommand}{titelcommando} diff --git a/tex/context/base/mult-pe.mkii b/tex/context/base/mult-pe.mkii index da48701e4..862fac2c2 100644 --- a/tex/context/base/mult-pe.mkii +++ b/tex/context/base/mult-pe.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{لبه‌حاشیه} \setinterfacevariable{margintitle}{عنوان‌حاشیه} \setinterfacevariable{marking}{نشانه‌گذاری} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{تنظیم‌ریاضی} \setinterfacevariable{mathcases}{حالتهای‌ریاضی} \setinterfacevariable{mathmatrix}{ماتریش‌ریاضی} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{وضعیت‌متن} \setinterfaceconstant{textstyle}{سبک‌متن} \setinterfaceconstant{textwidth}{عرض‌متن} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{عنوان} \setinterfaceconstant{titlecolor}{رنگ‌عنوان} \setinterfaceconstant{titlecommand}{فرمان‌عنوان} diff --git a/tex/context/base/mult-ro.mkii b/tex/context/base/mult-ro.mkii index 83943d3fa..8e04db7c0 100644 --- a/tex/context/base/mult-ro.mkii +++ b/tex/context/base/mult-ro.mkii @@ -272,6 +272,7 @@ \setinterfacevariable{marginedge}{marginebordura} \setinterfacevariable{margintitle}{titlumarginal} \setinterfacevariable{marking}{marcaje} +\setinterfacevariable{mask}{mask} \setinterfacevariable{mathalignment}{mathalignment} \setinterfacevariable{mathcases}{mathcases} \setinterfacevariable{mathmatrix}{mathmatrix} @@ -981,6 +982,7 @@ \setinterfaceconstant{textstate}{staretext} \setinterfaceconstant{textstyle}{stiltext} \setinterfaceconstant{textwidth}{latimetext} +\setinterfaceconstant{threshold}{threshold} \setinterfaceconstant{title}{titlu} \setinterfaceconstant{titlecolor}{culoaretitlu} \setinterfaceconstant{titlecommand}{titlecommand} diff --git a/tex/context/base/node-ini.lua b/tex/context/base/node-ini.lua index f0b9b83fa..21e7bc8cb 100644 --- a/tex/context/base/node-ini.lua +++ b/tex/context/base/node-ini.lua @@ -57,6 +57,7 @@ also ignore the empty nodes. [This is obsolete!]

local traverse, traverse_id = node.traverse, node.traverse_id local free_node, remove_node = node.free, node.remove local insert_node_before, insert_node_after = node.insert_before, node.insert_after +local slide_nodes = node.slide local allocate = utilities.storage.allocate @@ -346,16 +347,26 @@ function nodes.reference(n) return lpegmatch(reference,tostring(n)) end +function nodes.link(n,...) -- blobs ? + if type(n) ~= "table" then + n = { n, ... } + end + local head = n[1] + local tail = slide_nodes(head) + for i=2,#n do + local ni = n[i] + tail.next = ni + ni.prev = tail + tail = slide_nodes(ni) + end + return head +end + -- if not node.next then - function node.next(n) - return n and n.next - end - - function node.prev(n) - return n and n.prev - end + function node.next(n) return n and n.next end + function node.prev(n) return n and n.prev end end diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index f818f6229..99681aeb6 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/syst-lua.lua b/tex/context/base/syst-lua.lua index 7c619b6d3..8a5a9531c 100644 --- a/tex/context/base/syst-lua.lua +++ b/tex/context/base/syst-lua.lua @@ -91,17 +91,17 @@ end local splitter = lpegsplitat(S(". ")) -function commands.doifolderversionelse(one,two) -- no checking done +function commands.doifolderversionelse(one,two) -- one >= two if not two then one, two = environment.version, one elseif one == "" then one = environment.version end - local y_1, m_1, d_1 = lpeg.match(splitter,one) - local y_2, m_2, d_2 = lpeg.match(splitter,two) - commands.testcase ( not ( - (tonumber(y_2) or 0) >= (tonumber(y_1) or 0) and - (tonumber(m_2) or 99) >= (tonumber(m_1) or 0) and - (tonumber(d_2) or 99) >= (tonumber(d_1) or 0) - ) ) + local y_1, m_1, d_1 = lpegmatch(splitter,one) + local y_2, m_2, d_2 = lpegmatch(splitter,two) + commands.testcase ( + (tonumber(y_1) or 0) >= (tonumber(y_2) or 0) and + (tonumber(m_1) or 0) >= (tonumber(m_2) or 0) and + (tonumber(d_1) or 0) >= (tonumber(d_1) or 0) + ) end diff --git a/tex/context/base/typo-cln.lua b/tex/context/base/typo-cln.lua index 2327ef6be..a8542c1a1 100644 --- a/tex/context/base/typo-cln.lua +++ b/tex/context/base/typo-cln.lua @@ -57,13 +57,13 @@ local function process(namespace,attribute,head) -- some day, not much change that \SS ends up here else n.char = upper - inline = true done = true if trace_autocase then report_autocase("") end end end + inline = true end end return head, done diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml index 8aba0cca6..2a2fbe2ec 100644 --- a/tex/context/interface/keys-cs.xml +++ b/tex/context/interface/keys-cs.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index fefab4d55..3e67c7286 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index 34ed39349..d152c78e9 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml index f2e5990be..0725ecc62 100644 --- a/tex/context/interface/keys-fr.xml +++ b/tex/context/interface/keys-fr.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index 313d27e09..e564d79f3 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index f486a03c0..eb13b9861 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml index a6b3024f6..8c7102906 100644 --- a/tex/context/interface/keys-pe.xml +++ b/tex/context/interface/keys-pe.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index 7e08e8a8b..b081430d8 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -275,6 +275,7 @@ + @@ -987,6 +988,7 @@ + diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index dc44eecfb..ace911714 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 02/15/11 16:11:51 +-- merge date : 02/16/11 10:54:11 do -- begin closure to overcome local limits and interference -- cgit v1.2.3