From 882c78423c9b7de26b7dee61b75878a782c30d11 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sat, 18 Dec 2010 21:03:00 +0100 Subject: beta 2010.12.18 21:03 --- tex/context/base/cont-new.tex | 2 +- tex/context/base/context.tex | 2 +- tex/context/base/core-fnt.mkiv | 12 ------------ tex/context/base/page-mar.mkiv | 2 +- tex/context/base/strc-mar.lua | 16 ++++++++++++---- tex/context/base/strc-mar.mkiv | 5 ++++- tex/context/base/supp-box.mkiv | 19 +++++++++++++++++++ tex/context/base/syst-aux.mkiv | 1 + tex/context/base/syst-ext.mkii | 8 ++++---- tex/generic/context/luatex-fonts-merged.lua | 2 +- 10 files changed, 44 insertions(+), 25 deletions(-) diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index d767b1f03..4e4c99cb6 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2010.12.13 22:59} +\newcontextversion{2010.12.18 21:03} %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.tex b/tex/context/base/context.tex index dfecbb321..339fa0460 100644 --- a/tex/context/base/context.tex +++ b/tex/context/base/context.tex @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2010.12.13 22:59} +\edef\contextversion{2010.12.18 21:03} %D For those who want to use this: diff --git a/tex/context/base/core-fnt.mkiv b/tex/context/base/core-fnt.mkiv index b48eddad4..4d19ff39e 100644 --- a/tex/context/base/core-fnt.mkiv +++ b/tex/context/base/core-fnt.mkiv @@ -150,18 +150,6 @@ \fi}% \fi} -%D \macros -%D {shiftedword, shiftedwords} -%D -%D Used as \type {\shiftedwords {10pt} {some text}} this macro will -%D move - -% \def\shiftedword#1% #2% -% {\raise#1\hbox} % {#2}} % officially: {\ifdim#1>\zeropoint\raise\else\lower\fi#1\hbox{#2}} - -% \def\shiftedwords#1#2% -% {\processisolatedwords{#2}{\shiftedword{#1}}} - %D \macros %D {low, high, lohi, hilo} %D diff --git a/tex/context/base/page-mar.mkiv b/tex/context/base/page-mar.mkiv index 12814ffbf..c260b0eda 100644 --- a/tex/context/base/page-mar.mkiv +++ b/tex/context/base/page-mar.mkiv @@ -18,7 +18,7 @@ %D TODO: use parents etc -\writestatus{loading}{ConTeXt Page Macros / Maginal Things} +\writestatus{loading}{ConTeXt Page Macros / Marginal Things} \unprotect diff --git a/tex/context/base/strc-mar.lua b/tex/context/base/strc-mar.lua index 7db26b10e..fad713400 100644 --- a/tex/context/base/strc-mar.lua +++ b/tex/context/base/strc-mar.lua @@ -98,6 +98,14 @@ local function sweep(head,first,last) last = a end elseif id == hlist_code or id == vlist_code then + local a = hasattribute(n,a_marks) + if not a then + -- next + elseif first == 0 then + first, last = a, a + elseif a > last then + last = a + end local list = n.list if list then first, last = sweep(list, first, last) @@ -432,12 +440,12 @@ end local methods = { } -local function doresolve(name,range,swap,df,dl,strict) - local range = ranges[range] or ranges[v_page] +local function doresolve(name,rangename,swap,df,dl,strict) + local range = ranges[rangename] or ranges[v_page] local first, last = range.first, range.last if trace_marks_get then report_marks("resolve: name=%s, range=%s, swap=%s, first=%s, last=%s, df=%s, dl=%s, strict=%s", - name,range,tostring(swap or false),first,last,df,dl,tostring(strict or false)) + name,rangename,tostring(swap or false),first,last,df,dl,tostring(strict or false)) end if swap then first, last = last + df, first + dl @@ -468,7 +476,7 @@ local function fetched(name,range,method) elseif value == "" then report_marks("nothing fetched: name=%s, range=%s, method=%s",name,range,method) else - report_marks("marking fetched: name=%s, range=%s, method=%s, value=%s",name,range,method) + report_marks("marking fetched: name=%s, range=%s, method=%s, value=%s",name,range,method,value) end return value or "" end diff --git a/tex/context/base/strc-mar.mkiv b/tex/context/base/strc-mar.mkiv index a7458f2d8..abec8d201 100644 --- a/tex/context/base/strc-mar.mkiv +++ b/tex/context/base/strc-mar.mkiv @@ -36,7 +36,10 @@ %D with \MKII\ or previous \MKIV\ implementations but in practice this %D is not a real problem. It's also easier now to extend this mechanism. -\definesystemattribute[marks] +% if global has side effects we will need to nil it selectively +% and optionally enable it in for instance postponed content + +\definesystemattribute [marks] [global] \let\currentmarking\empty diff --git a/tex/context/base/supp-box.mkiv b/tex/context/base/supp-box.mkiv index 78fd93b12..2860c7556 100644 --- a/tex/context/base/supp-box.mkiv +++ b/tex/context/base/supp-box.mkiv @@ -1298,6 +1298,8 @@ %D %D \typebuffer \blank \getbuffer \blank +% todo: provide variant with #1 picked up as box + \def\processisolatedchars#1#2% {\dontleavehmode \begingroup @@ -1312,6 +1314,23 @@ \ctxlua{commands.applytowords(\number\scratchbox,"\strippedcsname#2",true)}% \endgroup} +\unexpanded\def\processwords#1% + {\processisolatedwords{#1}\processword} + +\let\processword\relax + +%D The better variant: + +\def\applytocharacters#1% + {\dontleavehmode + \dowithnextbox{\ctxlua{commands.applytochars(\number\nextbox,"\strippedcsname#1",true)}}% + \normalhbox} + +\def\applytowords#1% + {\dontleavehmode + \dowithnextbox{\ctxlua{commands.applytowords(\number\nextbox,"\strippedcsname#1",true)}}% + \normalhbox} + %D \macros %D {sbox} %D diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index 27dfe9594..497520723 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -6977,6 +6977,7 @@ \def\doprocesswords#1 #2\od {\doifsomething{#1}{\processword{#1} \doprocesswords#2 \od}} +% {\doifsomething{\detokenize{#1}}{\processword{#1} \doprocesswords#2 \od}} % to be tested \def\processwords#1% {\doprocesswords#1 \od}% no \unskip diff --git a/tex/context/base/syst-ext.mkii b/tex/context/base/syst-ext.mkii index 745478526..2357e81f1 100644 --- a/tex/context/base/syst-ext.mkii +++ b/tex/context/base/syst-ext.mkii @@ -121,21 +121,21 @@ \dodoglobal\@if#1{false}% \escapechar\scratchcounter} -%D Also new: +%D Also: \def\define#1% {\ifx#1\undefined - \expandafter\def + \expandafter\long\expandafter\def \else \message{[\noexpand#1is already defined]}% - \expandafter\def\expandafter\gobbleddefinition + \expandafter\long\expandafter\def\expandafter\gobbleddefinition \fi#1} \def\redefine#1% {\ifx#1\undefined\else \message{[\noexpand#1is redefined]}% \fi - \def#1} + \long\def#1} % \define\hans{hans} % \redefine\hans{hans} diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index e2abae9eb..e95f2980a 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 : 12/13/10 22:59:02 +-- merge date : 12/18/10 21:03:48 do -- begin closure to overcome local limits and interference -- cgit v1.2.3