From e85e42343c3d3ba4e84f39647060c075e8b4dedc Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Fri, 29 Aug 2014 21:15:04 +0200 Subject: 2014-08-29 20:59:00 --- tex/context/base/back-exp.lua | 22 +++++++- tex/context/base/back-exp.mkiv | 4 ++ tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4436 -> 4433 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/core-env.mkiv | 61 ++++++++++++++++++++- tex/context/base/status-files.pdf | Bin 25009 -> 24983 bytes tex/context/base/status-lua.pdf | Bin 327109 -> 327145 bytes tex/context/base/strc-flt.mkvi | 11 ++++ tex/context/base/strc-lst.lua | 4 ++ tex/context/base/strc-lst.mkvi | 3 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 12 files changed, 106 insertions(+), 5 deletions(-) (limited to 'tex') diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua index 1210f6925..647a9a049 100644 --- a/tex/context/base/back-exp.lua +++ b/tex/context/base/back-exp.lua @@ -292,7 +292,7 @@ end -- local tagsplitter = C(precolon) * colon * C(predash) * dash * C(rest) + -- C(predash) * dash * Cc(nil) * C(rest) -local listdata = { } +local listdata = { } -- maybe do this otherwise function wrapups.hashlistdata() local c = structures.lists.collected @@ -1300,10 +1300,29 @@ do end end + -- todo: internal is already hashed + + function structurestags.setlist(tag,n) + local data = structures.lists.getresult(n) + if data then + referencehash[detailedtag("listitem",tag)] = data + end + end + + function extras.listitem(result,element,detail,n,fulltag,di) + local data = referencehash[fulltag] + if data then + extras.addreference(result,data.references) + return true + end + end + end do + -- todo: internal is already hashed + function structurestags.setregister(tag,n) local data = structures.registers.get(tag,n) if data then @@ -2883,3 +2902,4 @@ commands.settagcombination = structurestags.setcombination commands.settagtablecell = structurestags.settablecell commands.settagtabulatecell = structurestags.settabulatecell commands.settagregister = structurestags.setregister +commands.settaglist = structurestags.setlist diff --git a/tex/context/base/back-exp.mkiv b/tex/context/base/back-exp.mkiv index 2f33c0498..a7f8e0040 100644 --- a/tex/context/base/back-exp.mkiv +++ b/tex/context/base/back-exp.mkiv @@ -131,6 +131,10 @@ \unexpanded\def\dotagregisterlocation{\taggedctxcommand{settagregister("\currentregister",\currentregisternumber)}}% \to \everyenableelements +\appendtoks + \unexpanded\def\dotaglistlocation{\taggedctxcommand{settaglist("\currentlist",\currentlistindex)}}% +\to \everyenableelements + \appendtoks \let\specialfixedspace \explicitfixedspace \let\specialobeyedspace \explicitobeyedspace diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 50bf74de1..dd04289e9 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{2014.08.29 13:37} +\newcontextversion{2014.08.29 20:57} %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 dafe0e619..54792ec8f 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 9b6fbf145..8ff3a4b55 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2014.08.29 13:37} +\edef\contextversion{2014.08.29 20:57} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/core-env.mkiv b/tex/context/base/core-env.mkiv index 01d127d2f..47f29ed73 100644 --- a/tex/context/base/core-env.mkiv +++ b/tex/context/base/core-env.mkiv @@ -173,6 +173,27 @@ \newconditional\c_checked_mode +% one + +% \def\syst_modes_check_indeed#1% +% {\ifcsname\??mode#1\endcsname +% \ifcase\csname\??mode#1\endcsname\else +% \let\syst_modes_check_step\gobbleoneargument +% \fi +% \fi} +% +% \def\syst_modes_check#1#2#3% +% {\let\syst_modes_check_step\syst_modes_check_indeed +% \rawprocesscommacommand[#3]\syst_modes_check_step +% \ifx\syst_modes_check_step\gobbleoneargument +% \expandafter#1% +% \else +% \expandafter#2% +% \fi} + +% modes .. twice as fast on defined modes .. we could use definers and make it even faster +% if needed + \def\syst_modes_check_indeed#1% {\ifcsname\??mode#1\endcsname \ifcase\csname\??mode#1\endcsname\else @@ -180,7 +201,7 @@ \fi \fi} -\def\syst_modes_check#1#2#3% +\def\syst_modes_check_nop#1#2#3% {\let\syst_modes_check_step\syst_modes_check_indeed \rawprocesscommacommand[#3]\syst_modes_check_step \ifx\syst_modes_check_step\gobbleoneargument @@ -189,6 +210,22 @@ \expandafter#2% \fi} +\def\syst_modes_check_yes#1#2#3% + {\ifcase\csname\??mode#3\endcsname + \expandafter#2% + \else + \expandafter#1% + \fi} + +\def\syst_modes_check#1#2#3% + {\ifcsname\??mode#3\endcsname + \expandafter\syst_modes_check_yes + \else + \expandafter\syst_modes_check_nop + \fi#1#2{#3}} + +% all + \def\syst_modes_check_all_indeed#1% {\ifcsname\??mode#1\endcsname \ifcase\csname\??mode#1\endcsname @@ -384,6 +421,28 @@ % % \def\syst_setups_normal#1% % {:\ifcsname\??setup:#1\endcsname#1\else\letterpercent\fi\endcsname\empty} % takes one argument +% +% only makes sense with many setups +% +% \def\syst_setups% the grid option will be extended to other main modes +% {\ifgridsnapping +% \expandafter\syst_setups_grid +% \else +% \expandafter\syst_setups_normal +% \fi} +% +% \def\syst_setups_normal#1% the grid option will be extended to other main modes +% {\csname\??setup +% :\ifcsname\??setup:#1\endcsname#1\else\letterpercent\fi +% \endcsname\empty} % takes one argument +% +% \def\syst_setups_grid#1% the grid option will be extended to other main modes +% {\csname\??setup +% \ifcsname\??setup\v!grid:#1\endcsname\v!grid:#1\else:\ifcsname\??setup:#1\endcsname#1\else\letterpercent\fi\fi +% \endcsname\empty} % takes one argument +% +% \let\directsetup\syst_setups +% \let\texsetup \syst_setups % nicer than \directsetup and more en par with xmlsetup and luasetup % We can consider: % diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index eace6b775..97e928c35 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 16c917f72..d12a331e7 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-flt.mkvi b/tex/context/base/strc-flt.mkvi index a93921317..3f6822adb 100644 --- a/tex/context/base/strc-flt.mkvi +++ b/tex/context/base/strc-flt.mkvi @@ -1104,11 +1104,22 @@ \unexpanded\def\betweenfloatblanko % assumes that spaceafter is present {\blank[\rootfloatparameter\c!spacebefore]} % or v!back,.... +% \unexpanded\def\doplacefloatbox % used elsewhere +% {%\forgetall % NO +% \whitespace +% \blank[\rootfloatparameter\c!spacebefore] +% \page_otr_command_flush_float_box +% \blank[\rootfloatparameter\c!spaceafter]} + \unexpanded\def\doplacefloatbox % used elsewhere {%\forgetall % NO \whitespace \blank[\rootfloatparameter\c!spacebefore] + \nointerlineskip + \flushnotes % new per 2014-05-29 : todo: move them up in the mvl + \nointerlineskip \page_otr_command_flush_float_box + \nointerlineskip \blank[\rootfloatparameter\c!spaceafter]} % test case: diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua index 6a2c07249..570a8b126 100644 --- a/tex/context/base/strc-lst.lua +++ b/tex/context/base/strc-lst.lua @@ -550,6 +550,10 @@ end lists.result = { } +function lists.getresult(r) + return lists.result[r] +end + function lists.process(specification) lists.result = lists.filter(specification) local specials = utilities.parsers.settings_to_hash(specification.extras or "") diff --git a/tex/context/base/strc-lst.mkvi b/tex/context/base/strc-lst.mkvi index 0008f0602..b10ab696d 100644 --- a/tex/context/base/strc-lst.mkvi +++ b/tex/context/base/strc-lst.mkvi @@ -451,6 +451,8 @@ \def\usestructurelistprocessor#tag% {\csname\??structurelistprocessor#tag\endcsname} +\let\dotaglistlocation\relax + \unexpanded\def\strclistsentryprocess#tag#method#index#extra% This one is called at the lua end! {\ctxcommand{pushlist(#index)}% \edef\currentlist {#tag}% @@ -459,6 +461,7 @@ \edef\currentlistextra {#extra}% \listextraparameter\c!before \dostarttagged\t!listitem\currentlist + \dotaglistlocation \csname\??structurelistprocessor \ifcsname\??structurelistprocessor\currentlist:\currentlistmethod\endcsname\currentlist:\currentlistmethod\else \ifcsname\??structurelistprocessor\currentlistmethod \endcsname\currentlistmethod \else diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index a02e2504a..77aab3049 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/29/14 13:37:42 +-- merge date : 08/29/14 20:57:48 do -- begin closure to overcome local limits and interference -- cgit v1.2.3