From c06e4e00885df7a7e679311a36059669caaa1435 Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Sat, 4 Dec 2010 20:40:13 +0200
Subject: beta 2010.12.04 19:31

---
 tex/context/base/buff-ver.mkiv              | 19 +++++++++++-
 tex/context/base/cldf-com.lua               |  3 ++
 tex/context/base/cont-new.tex               |  2 +-
 tex/context/base/context.tex                |  2 +-
 tex/context/base/font-gds.lua               | 32 +++++++++++---------
 tex/context/base/math-def.mkiv              |  2 +-
 tex/context/base/math-vfu.lua               | 47 +++++++++++++++--------------
 tex/context/base/tabl-tab.mkiv              |  6 ++--
 tex/context/fonts/lm-math.lfg               |  3 ++
 tex/context/fonts/lucida-math.lfg           |  5 ++-
 tex/context/interface/cont-cs.xml           |  9 ++++++
 tex/context/interface/cont-de.xml           |  9 ++++++
 tex/context/interface/cont-en.xml           |  9 ++++++
 tex/context/interface/cont-fr.xml           |  9 ++++++
 tex/context/interface/cont-it.xml           |  9 ++++++
 tex/context/interface/cont-nl.xml           |  9 ++++++
 tex/context/interface/cont-pe.xml           |  9 ++++++
 tex/context/interface/cont-ro.xml           |  9 ++++++
 tex/generic/context/luatex-fonts-merged.lua |  2 +-
 19 files changed, 149 insertions(+), 46 deletions(-)

diff --git a/tex/context/base/buff-ver.mkiv b/tex/context/base/buff-ver.mkiv
index f4402eb41..f6847f055 100644
--- a/tex/context/base/buff-ver.mkiv
+++ b/tex/context/base/buff-ver.mkiv
@@ -269,6 +269,20 @@
 %D
 %D \typebuffer
 
+% beware, the command is supposed to do something like
+% \framed and not manipulate content i.e. it gets no
+% argument but something b/egrouped instead
+%
+% so, if we only had left and right it woul dbe:
+%
+% \def\doleftoftype {\typeparameter\c!left\bgroup}  % we need the grouping in order
+% \def\dorightoftype{\egroup\typeparameter\c!right} % to get the normal font
+%
+% but with command:
+
+\def\doleftoftype {\typeparameter\c!left\typeparameter\c!command\bgroup}
+\def\dorightoftype{\egroup\typeparameter\c!right}
+
 \unexpanded\def\type{\dotype\empty}
 \unexpanded\def\typ {\dotyp \empty}
 
@@ -283,7 +297,8 @@
    \dodotype}
 
 \def\dodotype
-  {\futurelet\next\dodotypeone}
+  {\doleftoftype
+   \futurelet\next\dodotypeone}
 
 \def\dotyp#1%
   {\dontleavehmode
@@ -338,6 +353,7 @@
      nature = "inline",
     }}%
    \dostoptagged
+   \dorightoftype
    \egroup}
 
 \def\dodotypenested#1%
@@ -351,6 +367,7 @@
      nature = "inline",
    }}%
    \dostoptagged
+   \dorightoftype
    \egroup
    \gobbleoneargument} % grab last >
 
diff --git a/tex/context/base/cldf-com.lua b/tex/context/base/cldf-com.lua
index 4c5e106a7..ab20e2e89 100644
--- a/tex/context/base/cldf-com.lua
+++ b/tex/context/base/cldf-com.lua
@@ -6,6 +6,9 @@ if not modules then modules = { } end modules ['cldf-com'] = {
     license   = "see context related readme files"
 }
 
+local tostring, type = tostring, type
+local format = string.format
+
 local context   = context
 local generics  = context.generics
 local variables = interfaces.variables
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index c37350f86..0c2bf2a49 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.04 09:44}
+\newcontextversion{2010.12.04 19:31}
 
 %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 1a1d0f38a..c23e2893a 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.04 09:44}
+\edef\contextversion{2010.12.04 19:31}
 
 %D For those who want to use this:
 
diff --git a/tex/context/base/font-gds.lua b/tex/context/base/font-gds.lua
index ac83a611c..e85662af6 100644
--- a/tex/context/base/font-gds.lua
+++ b/tex/context/base/font-gds.lua
@@ -281,22 +281,25 @@ node_initializers.goodies     = setgoodies
 
 local function initialize(goodies)
     local mathgoodies = goodies.mathematics
-    local virtuals = mathgoodies and mathgoodies.virtuals
-    local mapfiles = mathgoodies and mathgoodies.mapfiles
-    local maplines = mathgoodies and mathgoodies.maplines
-    if virtuals then
-        for name, specification in next, virtuals do
-            mathematics.makefont(name,specification)
+    if mathgoodies then
+        local virtuals  = mathgoodies.virtuals
+        local mapfiles  = mathgoodies.mapfiles
+        local maplines  = mathgoodies.maplines
+        local variables = mathgoodies.variables
+        if virtuals then
+            for name, specification in next, virtuals do
+                mathematics.makefont(name,specification,variables)
+            end
         end
-    end
-    if mapfiles then
-        for i=1,#mapfiles do
-            fonts.map.loadfile(mapfiles[i]) -- todo: backend function
+        if mapfiles then
+            for i=1,#mapfiles do
+                fonts.map.loadfile(mapfiles[i]) -- todo: backend function
+            end
         end
-    end
-    if maplines then
-        for i=1,#maplines do
-            fonts.map.loadline(maplines[i]) -- todo: backend function
+        if maplines then
+            for i=1,#maplines do
+                fonts.map.loadline(maplines[i]) -- todo: backend function
+            end
         end
     end
 end
@@ -390,4 +393,3 @@ fonts.goodies.register("compositions", initialize)
 -- tex/fonts/data/foundry/collection
 --
 -- see lfg files in distribution
-
diff --git a/tex/context/base/math-def.mkiv b/tex/context/base/math-def.mkiv
index 62691c655..4d8883c0f 100644
--- a/tex/context/base/math-def.mkiv
+++ b/tex/context/base/math-def.mkiv
@@ -240,7 +240,7 @@
    #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
 
 \definemathcommand [mathstrut] {\vphantom{(}}
-\definemathcommand [joinrel]   {\mathrel{\mkern-4mu}} % was mistakenly 3mu
+\definemathcommand [joinrel]   {\mathrel{\mkern-3mu}}
 
 % \definemathcommand [matrix]    {\PLAINmatrix}
 % \definemathcommand [over]      {\normalover} % hack, to do
diff --git a/tex/context/base/math-vfu.lua b/tex/context/base/math-vfu.lua
index c97978a79..b8c63e76b 100644
--- a/tex/context/base/math-vfu.lua
+++ b/tex/context/base/math-vfu.lua
@@ -293,8 +293,10 @@ local function stack(main,characters,id,size,unicode,u1,d12,u2)
     end
 end
 
-function vfmath.alas(main,id,size)
+function vfmath.alas(main,id,size,variables)
     local characters = main.characters
+    local shared = main.shared
+    local joinrelfactor = variables.joinrelfactor or 3
     for i=0x7A,0x7D do
         make(main,characters,id,size,i,1)
     end
@@ -319,23 +321,23 @@ function vfmath.alas(main,id,size)
     vertbar  (main,characters,id,size,0xFF605,0.30,0xFF606)
     vertbar  (main,characters,id,size,0xFF606,0.30,0xFF607)
     vertbar  (main,characters,id,size,0xFF607,0.30,0xFF608)
-    jointwo  (main,characters,id,size,0x21A6,0xFE321,0,0x02192)           -- \mapstochar\rightarrow
-    jointwo  (main,characters,id,size,0x21A9,0x02190,3,0xFE323)           -- \leftarrow\joinrel\rhook
-    jointwo  (main,characters,id,size,0x21AA,0xFE322,3,0x02192)           -- \lhook\joinrel\rightarrow
-    stack    (main,characters,id,size,0x2259,0x0003D,3,0x02227)           -- \buildrel\wedge\over=
-    jointwo  (main,characters,id,size,0x22C8,0x022B3,4,0x022B2)           -- \mathrel\triangleright\joinrel\mathrel\triangleleft (4 looks better than 3)
-    jointwo  (main,characters,id,size,0x2260,0x00338,0,0x0003D)           -- \not\equal
-    jointwo  (main,characters,id,size,0x2284,0x00338,0,0x02282)           -- \not\subset
-    jointwo  (main,characters,id,size,0x2285,0x00338,0,0x02283)           -- \not\supset
-    jointwo  (main,characters,id,size,0x22A7,0x0007C,3,0x0003D)           -- \mathrel|\joinrel=
-    jointwo  (main,characters,id,size,0x27F5,0x02190,3,0x0002D)           -- \leftarrow\joinrel\relbar
-    jointwo  (main,characters,id,size,0x27F6,0x0002D,3,0x02192)           -- \relbar\joinrel\rightarrow
-    jointwo  (main,characters,id,size,0x27F7,0x02190,3,0x02192)           -- \leftarrow\joinrel\rightarrow
-    jointwo  (main,characters,id,size,0x27F8,0x021D0,3,0x0003D)           -- \Leftarrow\joinrel\Relbar
-    jointwo  (main,characters,id,size,0x27F9,0x0003D,3,0x021D2)           -- \Relbar\joinrel\Rightarrow
-    jointwo  (main,characters,id,size,0x27FA,0x021D0,3,0x021D2)           -- \Leftarrow\joinrel\Rightarrow
-    jointhree(main,characters,id,size,0x27FB,0x02190,3,0x0002D,0,0xFE324) -- \leftarrow\joinrel\relbar\mapsfromchar
-    jointhree(main,characters,id,size,0x27FC,0xFE321,0,0x0002D,3,0x02192) -- \mapstochar\relbar\joinrel\rightarrow
+    jointwo  (main,characters,id,size,0x21A6,0xFE321,0,0x02192)                       -- \mapstochar\rightarrow
+    jointwo  (main,characters,id,size,0x21A9,0x02190,joinrelfactor,0xFE323)           -- \leftarrow\joinrel\rhook
+    jointwo  (main,characters,id,size,0x21AA,0xFE322,joinrelfactor,0x02192)           -- \lhook\joinrel\rightarrow
+    stack    (main,characters,id,size,0x2259,0x0003D,3,0x02227)                       -- \buildrel\wedge\over=
+    jointwo  (main,characters,id,size,0x22C8,0x022B3,joinrelfactor,0x022B2)           -- \mathrel\triangleright\joinrel\mathrel\triangleleft (4 looks better than 3)
+    jointwo  (main,characters,id,size,0x2260,0x00338,0,0x0003D)                       -- \not\equal
+    jointwo  (main,characters,id,size,0x2284,0x00338,0,0x02282)                       -- \not\subset
+    jointwo  (main,characters,id,size,0x2285,0x00338,0,0x02283)                       -- \not\supset
+    jointwo  (main,characters,id,size,0x22A7,0x0007C,joinrelfactor,0x0003D)           -- \mathrel|\joinrel=
+    jointwo  (main,characters,id,size,0x27F5,0x02190,joinrelfactor,0x0002D)           -- \leftarrow\joinrel\relbar
+    jointwo  (main,characters,id,size,0x27F6,0x0002D,joinrelfactor,0x02192)           -- \relbar\joinrel\rightarrow
+    jointwo  (main,characters,id,size,0x27F7,0x02190,joinrelfactor,0x02192)           -- \leftarrow\joinrel\rightarrow
+    jointwo  (main,characters,id,size,0x27F8,0x021D0,joinrelfactor,0x0003D)           -- \Leftarrow\joinrel\Relbar
+    jointwo  (main,characters,id,size,0x27F9,0x0003D,joinrelfactor,0x021D2)           -- \Relbar\joinrel\Rightarrow
+    jointwo  (main,characters,id,size,0x27FA,0x021D0,joinrelfactor,0x021D2)           -- \Leftarrow\joinrel\Rightarrow
+    jointhree(main,characters,id,size,0x27FB,0x02190,joinrelfactor,0x0002D,0,0xFE324) -- \leftarrow\joinrel\relbar\mapsfromchar
+    jointhree(main,characters,id,size,0x27FC,0xFE321,0,0x0002D,joinrelfactor,0x02192) -- \mapstochar\relbar\joinrel\rightarrow
 end
 
 local unique = 0 -- testcase: \startTEXpage \math{!\text{-}\text{-}\text{-}} \stopTEXpage
@@ -385,7 +387,8 @@ setmetatable ( reverse, { __index = function(t,name)
     return r
 end } )
 
-function vfmath.define(specification,set)
+function vfmath.define(specification,set,variables)
+    variables = variables or { }
     local name = specification.name -- symbolic name
     local size = specification.size -- given size
     local fnt, lst, main = { }, { }, nil
@@ -671,7 +674,7 @@ function vfmath.define(specification,set)
     end
     lst[#lst+1] = { id = font.nextid(), size = size }
     if mp then -- weak catch
-        vfmath.alas(main,#lst,size)
+        vfmath.alas(main,#lst,size,variables)
     end
     if trace_virtual or trace_timings then
         report_virtual("loading and virtualizing font %s at size %s took %0.3f seconds",name,size,os.clock()-start)
@@ -685,9 +688,9 @@ function vfmath.define(specification,set)
     return main
 end
 
-function mathematics.makefont(name, set)
+function mathematics.makefont(name, set, variables)
     fonts.definers.methods.variants[name] = function(specification)
-        return vfmath.define(specification,set)
+        return vfmath.define(specification,set,variables)
     end
 end
 
diff --git a/tex/context/base/tabl-tab.mkiv b/tex/context/base/tabl-tab.mkiv
index e724b0188..274ae74bf 100644
--- a/tex/context/base/tabl-tab.mkiv
+++ b/tex/context/base/tabl-tab.mkiv
@@ -1544,9 +1544,9 @@
    \dotablestandardbegin[\ifsplittables u\else b\fi]%
    \the\localtabledefinitions
    \forgetall % added
-   \doifsomething{#1}
-     {\def\currenttableformat{#1}%
-      \dogettablenofcolumns\currenttableformat
+   \edef\currenttableformat{#1}%
+   \doifsomething\currenttableformat
+     {\dogettablenofcolumns\currenttableformat
       % more modern is to use catcode tables
       \expandafter\dobegintableformat\currenttableformat\doendtableformat}}
 
diff --git a/tex/context/fonts/lm-math.lfg b/tex/context/fonts/lm-math.lfg
index 7b3bfe6e0..9b2fe0f2d 100644
--- a/tex/context/fonts/lm-math.lfg
+++ b/tex/context/fonts/lm-math.lfg
@@ -234,6 +234,9 @@ return {
             ["lmroman10-boldmath"] = ten_bold,
             ["lmroman12-math"]     = twelve,
             ["lmroman17-math"]     = seventeen,
+        },
+        variables = {
+            joinrelfactor = 3, -- default anyway
         }
     }
 }
diff --git a/tex/context/fonts/lucida-math.lfg b/tex/context/fonts/lucida-math.lfg
index 9a554d65b..746d281e0 100644
--- a/tex/context/fonts/lucida-math.lfg
+++ b/tex/context/fonts/lucida-math.lfg
@@ -331,7 +331,10 @@ return {
                 { name = "file:lsr.afm", vector = "tex-ss" },
                 { name = "file:lstr.afm", vector = "tex-tt" },
                 { name = "file:lbl.afm", vector = "lbr-fraktur" }, -- more complete
-            }
+            },
+        },
+        variables = {
+            joinrelfactor = 4, -- default is 3
         }
     }
 }
diff --git a/tex/context/interface/cont-cs.xml b/tex/context/interface/cont-cs.xml
index e4d5db460..5d689a769 100644
--- a/tex/context/interface/cont-cs.xml
+++ b/tex/context/interface/cont-cs.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="barva">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="vlevo">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="vpravo">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="prikaz">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 36f3c7f23..2bdfb751c 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="farbe">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="links">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="rechts">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="befehl">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 826fabd93..28f2d724b 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="color">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="left">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="right">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="command">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index 84cfb0dba..5317c19ce 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="couleur">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="gauche">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="droite">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="commande">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 38e5d5a8d..8e14050d2 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="colore">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="sinistra">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="destra">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="comando">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index a0f6b6fba..a3cc591ac 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="kleur">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="links">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="rechts">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="commando">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-pe.xml b/tex/context/interface/cont-pe.xml
index de53b0679..25ce62678 100644
--- a/tex/context/interface/cont-pe.xml
+++ b/tex/context/interface/cont-pe.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="رنگ">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="چپ">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="راست">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="فرمان">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 1bb4625bd..de44c2a6b 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -869,6 +869,15 @@
         <cd:parameter name="culoare">
           <cd:constant type="cd:name" default=""/>
         </cd:parameter>
+        <cd:parameter name="stanga">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="dreapta">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
+        <cd:parameter name="comanda">
+          <cd:constant type="cd:command"/>
+        </cd:parameter>
       </cd:assignments>
     </cd:arguments>
   </cd:command>
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 19b110416..dfba66938 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/04/10 09:44:58
+-- merge date  : 12/04/10 19:31:58
 
 do -- begin closure to overcome local limits and interference
 
-- 
cgit v1.2.3