summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4131 -> 4130 bytes
-rw-r--r--tex/context/base/context-version.pngbin40552 -> 40496 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/pack-com.mkiv54
-rw-r--r--tex/context/base/status-files.pdfbin24750 -> 24754 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin211728 -> 211848 bytes
-rw-r--r--tex/context/base/strc-lab.mkiv15
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-fonts.lua4
10 files changed, 70 insertions, 9 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 74a5f3f2a..5286fb829 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.04.14 16:51}
+\newcontextversion{2013.04.15 10:36}
%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 cf05572ff..fdab10f7e 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index b0bfbdbe0..499f3fd4c 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 5dc0a73fd..5a6df19ef 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.04.14 16:51}
+\edef\contextversion{2013.04.15 10:36}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/pack-com.mkiv b/tex/context/base/pack-com.mkiv
index 8c10549e0..626410bc5 100644
--- a/tex/context/base/pack-com.mkiv
+++ b/tex/context/base/pack-com.mkiv
@@ -179,7 +179,10 @@
\let\currentcombination\empty}
{\edef\currentcombinationspec{\combinationparameter\c!nx*\combinationparameter\c!ny*}}}%
\else
- \edef\currentcombinationspec{\currentcombinationspec*\plusone*}%
+ \doifassignmentelse{#2}%
+ {\setupcurrentcombination[#2]%
+ \edef\currentcombinationspec{\combinationparameter\c!nx*\combinationparameter\c!ny*}}
+ {\edef\currentcombinationspec{\currentcombinationspec*\plusone*}}%
\fi
%
\forgetall
@@ -224,6 +227,30 @@
\cr
\pack_combinations_pickup}
+% \def\pack_combinations_pickup_content % we want to add struts but still ignore an empty box
+% {\dostoptagged
+% \setbox\b_pack_combinations_content\box\nextbox
+% \dostarttagged\t!combinationcaption\empty
+% \dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup
+% \afterassignment\pack_combinations_caption_first
+% \let\nexttoken=}
+
+% I've first considered using a constructor directly but it's more overhead
+% and some settings conflict with already used combination settings so instead
+% we plug in labels. This also permits extensions later on.
+
+\installcorenamespace{combinationalternative}
+
+\appendtoks
+ \edef\p_pack_combinations_alternative{\combinationparameter\c!alternative}%
+ \setfalse\c_str_define_commands_label % no helper commands
+ \ifx\currentcombinationparent\empty
+ \normalexpanded{\definelabel[\v!combination:\currentcombination]}[\c!text=]%
+ \else
+ \normalexpanded{\definelabel[\v!combination:\currentcombination][\currentcombinationparent]}[\c!text=]%
+ \fi
+\to \everydefinecombination
+
\def\pack_combinations_pickup % we want to add struts but still ignore an empty box
{\dostarttagged\t!combinationpair\empty
\dostarttagged\t!combinationcontent\empty
@@ -233,10 +260,33 @@
{\dostoptagged
\setbox\b_pack_combinations_content\box\nextbox
\dostarttagged\t!combinationcaption\empty
- \dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup
+ \expandnamespacemacro\??combinationalternative\p_pack_combinations_alternative\v!text}
+
+\setvalue{\??combinationalternative\v!text}%
+ {\dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup
\afterassignment\pack_combinations_caption_first
\let\nexttoken=}
+\setvalue{\??combinationalternative\v!label}%
+ {\dowithnextboxcs\pack_combinations_pickup_caption\vtop\bgroup
+ \hsize\wd\b_pack_combinations_content
+ \ifx\p_align\empty\else\setupalign[\p_align]\fi
+ \usecombinationstyleandcolor\c!style\c!color % but label style wins, so independent configuration
+ \begstrut
+ \strc_labels_command{\v!combination:\currentcombination}%
+ \endstrut
+ \egroup}
+
+\appendtoks
+ \edef\p_pack_combinations_alternative{\combinationparameter\c!alternative}%
+ \ifx\p_pack_combinations_alternative\v!label
+ \edef\p_continue{\combinationparameter\c!continue}%
+ \ifx\p_continue\v!yes \else
+ \strc_counters_reset{\v!combination:\currentcombination}%
+ \fi
+ \fi
+\to \everycombination
+
\def\pack_combinations_pickup_caption
{\dostoptagged
\dostoptagged
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 52b899bb4..d85682e58 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 7184d6b26..87bf2df81 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/strc-lab.mkiv b/tex/context/base/strc-lab.mkiv
index 407b74669..21588a743 100644
--- a/tex/context/base/strc-lab.mkiv
+++ b/tex/context/base/strc-lab.mkiv
@@ -49,16 +49,23 @@
\c!state=\v!start,
\c!levels=3]
+\settrue\c_str_define_commands_label
+
\unexpanded\def\strc_define_commands_label#1#2#3% current level parent
{\doifelsenothing{#3}
{\normalexpanded{\defineconstruction[#1][\s!handler=\v!label,\c!level=#2]}%
\setevalue{\??label#1:\s!parent}{\??label}}%
{\normalexpanded{\defineconstruction[#1][#3][\s!handler=\v!label,\c!level=#2]}%
\setevalue{\??label#1:\s!parent}{\??label#3}}%
- \setuevalue{\e!next #1}{\strc_labels_next }%
- \setuevalue{\c!reset#1}{\strc_labels_reset }%
- %setuevalue{\c!set #1}{\strc_labels_set }%
- \setuevalue {#1}{\strc_labels_command{#1}}}
+ \ifconditional\c_str_define_commands_label
+ \setuevalue{\e!next #1}{\strc_labels_next }%
+ \setuevalue{\c!reset#1}{\strc_labels_reset }%
+ %setuevalue{\c!set #1}{\strc_labels_set }%
+ \setuevalue {#1}{\strc_labels_command{#1}}%
+ \else
+ % used indirectly
+ \settrue\c_str_define_commands_label
+ \fi}
% todo: \strc_labels_command for user
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 96f4c79cb..bfd187ae0 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 : 04/14/13 16:51:15
+-- merge date : 04/15/13 10:36:49
do -- begin closure to overcome local limits and interference
diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua
index 0a6dc68e8..96f35012f 100644
--- a/tex/generic/context/luatex/luatex-fonts.lua
+++ b/tex/generic/context/luatex/luatex-fonts.lua
@@ -16,6 +16,10 @@ if not modules then modules = { } end modules ['luatex-fonts'] = {
-- places where in context other code is plugged in, but this does not affect the core code. Users
-- can (given that their macro package provides this option) access the font data (characters,
-- descriptions, properties, parameters, etc) of this main table.
+--
+-- Future versions will probably have some more specific context code removed, like tracing and
+-- obscure hooks, so that we have a more efficient version (and less files too). So, don't depend
+-- too much on low level code that is meant for context as it can change without notice.
utf = utf or unicode.utf8