From 0a1d66e9356ae4676438c7e1865d71331437e412 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 7 Aug 2013 12:20:30 +0300 Subject: beta 2013.08.07 10:55 --- scripts/context/lua/mtxrun.lua | 52 ++++++-- scripts/context/stubs/mswin/mtxrun.lua | 52 ++++++-- scripts/context/stubs/unix/mtxrun | 52 ++++++-- tex/context/base/back-pdf.lua | 22 +++- tex/context/base/back-pdf.mkiv | 139 ++++++++++----------- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4101 -> 4114 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/l-os.lua | 24 +++- tex/context/base/mlib-pps.mkiv | 20 +-- tex/context/base/s-inf-03.pdf | Bin 1978 -> 1974 bytes tex/context/base/status-files.pdf | Bin 24695 -> 24703 bytes tex/context/base/status-lua.log | 9 +- tex/context/base/trac-log.lua | 20 ++- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 15 files changed, 249 insertions(+), 147 deletions(-) diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index c98e118bc..a858b8457 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -2547,7 +2547,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-os"] = package.loaded["l-os"] or true --- original size: 14044, stripped down to: 8530 +-- original size: 14318, stripped down to: 8752 if not modules then modules={} end modules ['l-os']={ version=1.001, @@ -2799,26 +2799,38 @@ function os.timezone(delta) end local timeformat=format("%%s%s",os.timezone(true)) local dateformat="!%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.fulltime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=format(timeformat,date(dateformat)) end - return format(timeformat,date(dateformat,t)) + return lastdate end local dateformat="%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.localtime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=date(dateformat,t) end - return date(dateformat,t) + return lastdate end function os.converttime(t,default) local t=tonumber(t) @@ -6668,7 +6680,7 @@ do -- create closure to overcome 200 locals limit package.loaded["trac-log"] = package.loaded["trac-log"] or true --- original size: 22729, stripped down to: 14939 +-- original size: 23004, stripped down to: 15157 if not modules then modules={} end modules ['trac-log']={ version=1.001, @@ -6817,6 +6829,7 @@ if tex and (tex.jobname or tex.formatname) then translations=t end setlogfile=ignore + settimedlog=ignore else logs.flush=ignore writer=function(s) @@ -6871,7 +6884,6 @@ else poptarget=ignore setformats=ignore settranslations=ignore - local f_timed=formatters["[%S] "] setlogfile=function(name,keepopen) if name and name~="" then local localtime=os.localtime @@ -6880,17 +6892,26 @@ else local f=io.open(name,"ab") write_nl=function(s) writeline(s) - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") end else write_nl=function(s) writeline(s) local f=io.open(name,"ab") - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") f:close() end end end + setlogfile=ignore + end + settimedlog=function() + local localtime=os.localtime + local writeline=write_nl + write_nl=function(s) + writeline(localtime().." | "..s) + end + settimedlog=ignore end end logs.report=report @@ -6902,6 +6923,7 @@ logs.poptarget=poptarget logs.setformats=setformats logs.settranslations=settranslations logs.setlogfile=setlogfile +logs.settimedlog=settimedlog logs.direct=direct logs.subdirect=subdirect logs.writer=writer @@ -16261,8 +16283,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663500 --- stripped bytes : 233129 +-- original bytes : 664049 +-- stripped bytes : 233238 -- end library merge @@ -17161,6 +17183,10 @@ local is_mkii_stub = runners.registered[file.removesuffix(file.basename(filename local e_argument = environment.argument +if e_argument("timedlog") then + logs.settimedlog() +end + if e_argument("usekpse") or e_argument("forcekpse") or is_mkii_stub then resolvers.load_tree(e_argument('tree'),true) -- force resolve of TEXMFCNF diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index c98e118bc..a858b8457 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -2547,7 +2547,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-os"] = package.loaded["l-os"] or true --- original size: 14044, stripped down to: 8530 +-- original size: 14318, stripped down to: 8752 if not modules then modules={} end modules ['l-os']={ version=1.001, @@ -2799,26 +2799,38 @@ function os.timezone(delta) end local timeformat=format("%%s%s",os.timezone(true)) local dateformat="!%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.fulltime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=format(timeformat,date(dateformat)) end - return format(timeformat,date(dateformat,t)) + return lastdate end local dateformat="%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.localtime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=date(dateformat,t) end - return date(dateformat,t) + return lastdate end function os.converttime(t,default) local t=tonumber(t) @@ -6668,7 +6680,7 @@ do -- create closure to overcome 200 locals limit package.loaded["trac-log"] = package.loaded["trac-log"] or true --- original size: 22729, stripped down to: 14939 +-- original size: 23004, stripped down to: 15157 if not modules then modules={} end modules ['trac-log']={ version=1.001, @@ -6817,6 +6829,7 @@ if tex and (tex.jobname or tex.formatname) then translations=t end setlogfile=ignore + settimedlog=ignore else logs.flush=ignore writer=function(s) @@ -6871,7 +6884,6 @@ else poptarget=ignore setformats=ignore settranslations=ignore - local f_timed=formatters["[%S] "] setlogfile=function(name,keepopen) if name and name~="" then local localtime=os.localtime @@ -6880,17 +6892,26 @@ else local f=io.open(name,"ab") write_nl=function(s) writeline(s) - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") end else write_nl=function(s) writeline(s) local f=io.open(name,"ab") - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") f:close() end end end + setlogfile=ignore + end + settimedlog=function() + local localtime=os.localtime + local writeline=write_nl + write_nl=function(s) + writeline(localtime().." | "..s) + end + settimedlog=ignore end end logs.report=report @@ -6902,6 +6923,7 @@ logs.poptarget=poptarget logs.setformats=setformats logs.settranslations=settranslations logs.setlogfile=setlogfile +logs.settimedlog=settimedlog logs.direct=direct logs.subdirect=subdirect logs.writer=writer @@ -16261,8 +16283,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663500 --- stripped bytes : 233129 +-- original bytes : 664049 +-- stripped bytes : 233238 -- end library merge @@ -17161,6 +17183,10 @@ local is_mkii_stub = runners.registered[file.removesuffix(file.basename(filename local e_argument = environment.argument +if e_argument("timedlog") then + logs.settimedlog() +end + if e_argument("usekpse") or e_argument("forcekpse") or is_mkii_stub then resolvers.load_tree(e_argument('tree'),true) -- force resolve of TEXMFCNF diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index c98e118bc..a858b8457 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -2547,7 +2547,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-os"] = package.loaded["l-os"] or true --- original size: 14044, stripped down to: 8530 +-- original size: 14318, stripped down to: 8752 if not modules then modules={} end modules ['l-os']={ version=1.001, @@ -2799,26 +2799,38 @@ function os.timezone(delta) end local timeformat=format("%%s%s",os.timezone(true)) local dateformat="!%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.fulltime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=format(timeformat,date(dateformat)) end - return format(timeformat,date(dateformat,t)) + return lastdate end local dateformat="%Y-%m-%d %H:%M:%S" +local lasttime=nil +local lastdate=nil function os.localtime(t,default) - t=tonumber(t) or 0 + t=t and tonumber(t) or 0 if t>0 then elseif default then return default else - t=nil + t=time() + end + if t~=lasttime then + lasttime=t + lastdate=date(dateformat,t) end - return date(dateformat,t) + return lastdate end function os.converttime(t,default) local t=tonumber(t) @@ -6668,7 +6680,7 @@ do -- create closure to overcome 200 locals limit package.loaded["trac-log"] = package.loaded["trac-log"] or true --- original size: 22729, stripped down to: 14939 +-- original size: 23004, stripped down to: 15157 if not modules then modules={} end modules ['trac-log']={ version=1.001, @@ -6817,6 +6829,7 @@ if tex and (tex.jobname or tex.formatname) then translations=t end setlogfile=ignore + settimedlog=ignore else logs.flush=ignore writer=function(s) @@ -6871,7 +6884,6 @@ else poptarget=ignore setformats=ignore settranslations=ignore - local f_timed=formatters["[%S] "] setlogfile=function(name,keepopen) if name and name~="" then local localtime=os.localtime @@ -6880,17 +6892,26 @@ else local f=io.open(name,"ab") write_nl=function(s) writeline(s) - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") end else write_nl=function(s) writeline(s) local f=io.open(name,"ab") - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") f:close() end end end + setlogfile=ignore + end + settimedlog=function() + local localtime=os.localtime + local writeline=write_nl + write_nl=function(s) + writeline(localtime().." | "..s) + end + settimedlog=ignore end end logs.report=report @@ -6902,6 +6923,7 @@ logs.poptarget=poptarget logs.setformats=setformats logs.settranslations=settranslations logs.setlogfile=setlogfile +logs.settimedlog=settimedlog logs.direct=direct logs.subdirect=subdirect logs.writer=writer @@ -16261,8 +16283,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663500 --- stripped bytes : 233129 +-- original bytes : 664049 +-- stripped bytes : 233238 -- end library merge @@ -17161,6 +17183,10 @@ local is_mkii_stub = runners.registered[file.removesuffix(file.basename(filename local e_argument = environment.argument +if e_argument("timedlog") then + logs.settimedlog() +end + if e_argument("usekpse") or e_argument("forcekpse") or is_mkii_stub then resolvers.load_tree(e_argument('tree'),true) -- force resolve of TEXMFCNF diff --git a/tex/context/base/back-pdf.lua b/tex/context/base/back-pdf.lua index dc6f6b06f..f8a5dab6f 100644 --- a/tex/context/base/back-pdf.lua +++ b/tex/context/base/back-pdf.lua @@ -19,13 +19,25 @@ end backends.install("pdf") --- experimental code (somewhat weird here) .. todo: nodeinjections - local context = context local sind, cosd = math.sind, math.cosd local insert, remove = table.insert, table.remove +local f_matrix = string.formatters["%0.8f %0.8f %0.8f %0.8f"] + +function commands.pdfrotation(a) + -- todo: check for 1 and 0 and flush sparse + local s, c = sind(a), cosd(a) + context(f_matrix(c,s,-s,c)) +end + +-- experimental code (somewhat weird here) .. todo: nodeinjections .. this will only work +-- out well if we also calculate the accumulated cm and wrap inclusions / annotations in +-- the accumulated ... it's a mess +-- +-- we could also do the save restore wrapping here + colorhack + local pdfsetmatrix = nodes.pool.pdfsetmatrix local stack = { } @@ -65,12 +77,12 @@ function commands.pdfstartmirroring() context(pdfsetmatrix(-1,0,0,1)) end -function commands.pdfstartmatrix(sx,rx,ry,sy) +function commands.pdfstartmatrix(sx,rx,ry,sy) -- tx, ty if sx == 1 and rx == 0 and ry == 0 and sy == 1 then insert(stack,false) else - context(pdfsetmatrix(rx,sx,sy,ry)) - insert(stack,{ -rx, -sx, -sy, -ry }) + context(pdfsetmatrix(sx,rx,ry,sy)) + insert(stack,{ -sx, -rx, -ry, -sy }) end end diff --git a/tex/context/base/back-pdf.mkiv b/tex/context/base/back-pdf.mkiv index 39d9e114a..597899af1 100644 --- a/tex/context/base/back-pdf.mkiv +++ b/tex/context/base/back-pdf.mkiv @@ -123,118 +123,107 @@ \to \everylastbackendshipout %D Transformations. Some day we will use primitives (once they're fixed). - -% \def\dostartscaling#1#2% the test is needed because acrobat is bugged! -% {\forcecolorhack % maybe use signal instead -% \pdfliteral{q \ifdim#1\points=\zeropoint.0001\else#1\fi\space 0 0 -% \ifdim#2\points=\zeropoint.0001\else#2\fi\space 0 0 cm}} -% -% \def\dostopscaling -% {\pdfliteral{Q}} -% -% \def\dostartrotation#1% grouped -% {\forcecolorhack % maybe use signal instead -% \pdfliteral{q \cldcontext{lpdf.rotationcm(#1)}}} -% -% \def\dostoprotation -% {\pdfliteral{Q}} -% -% function lpdf.rotationcm(a) -% local s, c = sind(a), cosd(a) -% return format("%f %f %f %f 0 0 cm",c,s,-s,c) -% end -% -% \def\dostartmirroring{\pdfliteral{-1 0 0 1 0 0 cm}} -% \def\dostopmirroring {\pdfliteral{-1 0 0 1 0 0 cm}} - % todo: inject at the lua end cq. deal with #5 and #6 too -% \unexpanded\def\dostartrotation#1% grouped -% {\forcecolorhack % maybe use signal instead -% \advance\backendtransformlevel\plusone -% \pdfsave -% \pdfsetmatrix{\ctxcommand{pdfrotation(#1)}}} -% -% \unexpanded\def\dostoprotation -% {\pdfrestore -% \advance\backendtransformlevel\minusone} +% % % rotation % % % \unexpanded\def\dostartrotation#1% grouped - {\forcecolorhack % maybe use signal instead - \advance\backendtransformlevel\plusone - \ctxcommand{pdfstartrotation(#1)}} + {\advance\backendtransformlevel\plusone + \forcecolorhack + \pdfsave + \pdfsetmatrix{\ctxcommand{pdfrotation(#1)}}} \unexpanded\def\dostoprotation - {\ctxcommand{pdfstoprotation()}% + {\pdfrestore + \forcecolorhack \advance\backendtransformlevel\minusone} -% \unexpanded\def\dostartscaling#1#2% the test is needed because acrobat is bugged! -% {\forcecolorhack % maybe use signal instead +% \unexpanded\def\dostartrotation#1% grouped +% {\forcecolorhack % \advance\backendtransformlevel\plusone -% \pdfsave -% \pdfsetmatrix -% {\ifdim#1\points=\zeropoint.0001\else#1\fi\space 0 0 -% \ifdim#2\points=\zeropoint.0001\else#2\fi\space}}% 0 0 -% -% \unexpanded\def\dostopscaling -% {\pdfrestore +% \ctxcommand{pdfstartrotation(#1)}} + +% \unexpanded\def\dostoprotation +% {\ctxcommand{pdfstoprotation()}% % \advance\backendtransformlevel\minusone} +% % % scaling % % % + \unexpanded\def\dostartscaling#1#2% the test is needed because acrobat is bugged! - {\forcecolorhack % maybe use signal instead - \advance\backendtransformlevel\plusone - \ctxcommand{pdfstartscaling(#1,#2)}} + {\advance\backendtransformlevel\plusone + \forcecolorhack % maybe use signal instead + \pdfsave + \pdfsetmatrix + {\ifdim#1\points=\zeropoint.0001\else#1\fi\space 0 0 + \ifdim#2\points=\zeropoint.0001\else#2\fi\space}}% 0 0 \unexpanded\def\dostopscaling - {\ctxcommand{pdfstopscaling()}% + {\pdfrestore + \forcecolorhack \advance\backendtransformlevel\minusone} -% \unexpanded\def\dostartmirroring -% {\advance\backendtransformlevel\plusone -% \pdfsave -% \pdfsetmatrix{-1 0 0 1}} % 0 0 +% \unexpanded\def\dostartscaling#1#2% the test is needed because acrobat is bugged! +% {\forcecolorhack +% \advance\backendtransformlevel\plusone +% \ctxcommand{pdfstartscaling(#1,#2)}} -% \unexpanded\def\dostopmirroring -% {\pdfrestore +% \unexpanded\def\dostopscaling +% {\ctxcommand{pdfstopscaling()}% % \advance\backendtransformlevel\minusone} +% % % mirroring % % % + \unexpanded\def\dostartmirroring {\advance\backendtransformlevel\plusone - \ctxcommand{pdfstartmirroring()}} + \pdfsave + \pdfsetmatrix{-1 0 0 1}} % 0 0 \unexpanded\def\dostopmirroring - {\ctxcommand{pdfstopmirroring()}% + {\pdfrestore \advance\backendtransformlevel\minusone} -% \unexpanded\def\dotransformnextbox#1#2#3#4#5#6% sx rx ry sy tx ty (will change) / basepoints ! +% \unexpanded\def\dostartmirroring % {\advance\backendtransformlevel\plusone -% % fixing ht/dp/wd should happen elsewhere -% \dowithnextbox{\dodotransformnextbox{#5}{#6}{#1 #2 #3 #4}}} -% -% \unexpanded\def\dodotransformnextbox#1#2#3% -% {\hbox -% {\kern#1\onebasepoint -% \raise#2\onebasepoint\hbox -% {\pdfsave -% \pdfsetmatrix{#3}% 0 0 (no #5 #6 yet) -% \box\nextbox -% \pdfrestore -% \advance\backendtransformlevel\minusone}}} +% \ctxcommand{pdfstartmirroring()}} + +% \unexpanded\def\dostopmirroring +% {\ctxcommand{pdfstopmirroring()}% +% \advance\backendtransformlevel\minusone} + +% % % transform % % % \unexpanded\def\dotransformnextbox#1#2#3#4#5#6% sx rx ry sy tx ty (will change) / basepoints ! {\advance\backendtransformlevel\plusone % fixing ht/dp/wd should happen elsewhere - \dowithnextbox{\dodotransformnextbox{#5}{#6}{#1}{#2}{#3}{#4}}} + \dowithnextbox{\dodotransformnextbox{#5}{#6}{#1 #2 #3 #4}}} -\unexpanded\def\dodotransformnextbox#1#2#3#4#5#6% +\unexpanded\def\dodotransformnextbox#1#2#3% {\hbox {\kern#1\onebasepoint \raise#2\onebasepoint\hbox - {\ctxcommand{pdfstartmatrix(#3,#4,#5,#6)} + {\pdfsave + \pdfsetmatrix{#3}% 0 0 (no #5 #6 yet) \box\nextbox - \ctxcommand{pdfstopmatrix()} + \pdfrestore \advance\backendtransformlevel\minusone}}} +% \unexpanded\def\dotransformnextbox#1#2#3#4#5#6% sx rx ry sy tx ty (will change) / basepoints ! +% {\advance\backendtransformlevel\plusone +% % fixing ht/dp/wd should happen elsewhere +% \dowithnextbox{\dodotransformnextbox{#1}{#2}{#3}{#4}{#5}{#6}}} + +% \unexpanded\def\dodotransformnextbox#1#2#3#4#5#6% +% {\hbox +% {\kern #5\onebasepoint +% \raise#6\onebasepoint +% \hbox +% {\ctxcommand{pdfstartmatrix(#1,#2,#3,#4)}% +% \box\nextbox +% \ctxcommand{pdfstopmatrix()}% +% \advance\backendtransformlevel\minusone}}} + +% % % clipping % % % + \unexpanded\def\dostartclipping#1#2#3% we can move this to lua and only set a box here {\PointsToBigPoints{#2}\width \PointsToBigPoints{#3}\height diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 1f94beac3..1af85a7cd 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.08.06 15:50} +\newcontextversion{2013.08.07 10:55} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index dc67d2670..ef25efc14 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.mkiv b/tex/context/base/context.mkiv index 11ce57e03..4b2e0bdd7 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.08.06 15:50} +\edef\contextversion{2013.08.07 10:55} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/l-os.lua b/tex/context/base/l-os.lua index a4c0ac820..3838b5524 100644 --- a/tex/context/base/l-os.lua +++ b/tex/context/base/l-os.lua @@ -382,31 +382,43 @@ end local timeformat = format("%%s%s",os.timezone(true)) local dateformat = "!%Y-%m-%d %H:%M:%S" +local lasttime = nil +local lastdate = nil function os.fulltime(t,default) - t = tonumber(t) or 0 + t = t and tonumber(t) or 0 if t > 0 then -- valid time elseif default then return default else - t = nil + t = time() end - return format(timeformat,date(dateformat,t)) + if t ~= lasttime then + lasttime = t + lastdate = format(timeformat,date(dateformat)) + end + return lastdate end local dateformat = "%Y-%m-%d %H:%M:%S" +local lasttime = nil +local lastdate = nil function os.localtime(t,default) - t = tonumber(t) or 0 + t = t and tonumber(t) or 0 if t > 0 then -- valid time elseif default then return default else - t = nil + t = time() + end + if t ~= lasttime then + lasttime = t + lastdate = date(dateformat,t) end - return date(dateformat,t) + return lastdate end function os.converttime(t,default) diff --git a/tex/context/base/mlib-pps.mkiv b/tex/context/base/mlib-pps.mkiv index f21d84e0d..fe9f460f9 100644 --- a/tex/context/base/mlib-pps.mkiv +++ b/tex/context/base/mlib-pps.mkiv @@ -55,7 +55,7 @@ \ctxlua{metapost.edefsxsy(\number\wd\scratchbox,\number\ht\scratchbox,0)}% \vbox to \zeropoint{\vss\hbox to \zeropoint{\scale[\c!sx=\sx,\c!sy=\sy]{\box\scratchbox}\hss}}} -% horrible: +% horrible (we could inline scale and matrix code): \def\MPLIBgettextscaledcm#1#2#3#4#5#6#7#8#9% 2-7: sx,rx,ry,sy,tx,ty {\ctxlua{metapost.gettext(\number\MPtextbox,#1)}% @@ -64,16 +64,16 @@ \vbox to \zeropoint\bgroup \vss \hbox to \zeropoint \bgroup -% \scale[\c!sx=#8,\c!sy=#9]{\raise\dp\MPtextbox\box\MPtextbox}% -% \scale[\c!sx=#8,\c!sy=#9,\c!depth=\v!no]{\box\MPtextbox}% + % \scale[\c!sx=#8,\c!sy=#9]{\raise\dp\MPtextbox\box\MPtextbox}% + % \scale[\c!sx=#8,\c!sy=#9,\c!depth=\v!no]{\box\MPtextbox}% \fastsxsy{#8}{#9}{\raise\dp\MPtextbox\box\MPtextbox}% - % This gives: LuaTeX warning: Misplaced \pdfrestore .. don't ask me why. - % but I'll retry it some day soon. - % \dostartscaling{#8}{#9}% - % \raise\dp\MPtextbox\box\MPtextbox - % \dostopscaling - \forcecolorhack % needed ? already in the scale macro - \hss + % This gives: LuaTeX warning: Misplaced \pdfrestore .. don't ask me why. + % but I'll retry it some day soon. + % \dostartscaling{#8}{#9}% + % \raise\dp\MPtextbox\box\MPtextbox + % \dostopscaling + \forcecolorhack % can go away ... already in the scale macro + \hss \egroup \egroup \egroup diff --git a/tex/context/base/s-inf-03.pdf b/tex/context/base/s-inf-03.pdf index 5a4ec2f39..74b183f3f 100644 Binary files a/tex/context/base/s-inf-03.pdf and b/tex/context/base/s-inf-03.pdf differ diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index c2beda085..0ec5a6755 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.log b/tex/context/base/status-lua.log index 60c0b46f6..370c5ea16 100644 --- a/tex/context/base/status-lua.log +++ b/tex/context/base/status-lua.log @@ -1,11 +1,13 @@ (cont-yes.mkiv -ConTeXt ver: 2013.08.06 15:50 MKIV beta fmt: 2013.8.6 int: english/english +ConTeXt ver: 2013.08.07 10:55 MKIV beta fmt: 2013.8.7 int: english/english system > 'cont-new.mkiv' loaded (cont-new.mkiv) system > 'cont-loc.mkiv' loaded -(c:/data/develop/context/sources/cont-loc.mkiv) +(c:/data/develop/context/sources/cont-loc.mkiv +!!!! > testing rotation and scaling +) system > 'cont-exp.mkiv' loaded interface > macros > processed mkvi file 'c:/data/develop/context/sources/cont-exp.mkiv', delta 0 interface > macros > processed mkvi file 'c:/data/develop/context/sources/cont-exp.mkiv', delta 0 @@ -74,5 +76,4 @@ references > unknown reference '[][math]' references > unknown reference '[][mathematics]' references > unknown reference '[][mbox]' references > unknown reference '[][md5]' -references > unknown reference '[][metapost]' -references > unknown reference '[][mime]' +references > unknown reference '[][metapost]' \ No newline at end of file diff --git a/tex/context/base/trac-log.lua b/tex/context/base/trac-log.lua index 0ae5d87e3..4ef50f5f4 100644 --- a/tex/context/base/trac-log.lua +++ b/tex/context/base/trac-log.lua @@ -271,7 +271,8 @@ if tex and (tex.jobname or tex.formatname) then translations = t end - setlogfile = ignore + setlogfile = ignore + settimedlog = ignore else @@ -339,8 +340,6 @@ else setformats = ignore settranslations = ignore - local f_timed = formatters["[%S] "] - setlogfile = function(name,keepopen) if name and name ~= "" then local localtime = os.localtime @@ -349,17 +348,27 @@ else local f = io.open(name,"ab") write_nl = function(s) writeline(s) - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") end else write_nl = function(s) writeline(s) local f = io.open(name,"ab") - f:write(f_timed(localtime()),s,"\n") + f:write(localtime()," | ",s,"\n") f:close() end end end + setlogfile = ignore + end + + settimedlog = function() + local localtime = os.localtime + local writeline = write_nl + write_nl = function(s) + writeline(localtime() .. " | " .. s) + end + settimedlog = ignore end end @@ -374,6 +383,7 @@ logs.setformats = setformats logs.settranslations = settranslations logs.setlogfile = setlogfile +logs.settimedlog = settimedlog logs.direct = direct logs.subdirect = subdirect diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 6c5476801..f7b952af9 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/06/13 15:50:04 +-- merge date : 08/07/13 10:55:57 do -- begin closure to overcome local limits and interference -- cgit v1.2.3