From 7e54f5835de2413a64322b4313f88a0ad1b35a8b Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Sat, 14 Sep 2013 14:39:00 +0200
Subject: beta 2013.09.14 14:39

---
 tex/context/base/char-def.lua                      |  22 +++++
 tex/context/base/char-ini.lua                      |   9 ++
 tex/context/base/char-ini.mkiv                     |   2 +
 tex/context/base/cont-new.mkiv                     |   2 +-
 tex/context/base/context-version.pdf               | Bin 4111 -> 4115 bytes
 tex/context/base/context.mkiv                      |   2 +-
 tex/context/base/math-fen.mkiv                     | 109 ++++++++++++++++-----
 tex/context/base/math-noa.lua                      |  50 +++++++---
 tex/context/base/mult-low.lua                      |   2 +-
 tex/context/base/status-files.pdf                  | Bin 24776 -> 24762 bytes
 tex/context/base/status-lua.log                    |   2 +-
 tex/context/base/trac-vis.mkiv                     |   2 +
 tex/generic/context/luatex/luatex-fonts-merged.lua |   2 +-
 13 files changed, 159 insertions(+), 45 deletions(-)

(limited to 'tex')

diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index d048fa6c2..827c6a5ff 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -1388,6 +1388,10 @@ characters.data={
     class="relation",
     name="mid",
    },
+   {
+    class="delimiter",
+    name="singleverticalbar",
+   },
   },
   unicodeslot=0x007C,
  },
@@ -57296,6 +57300,10 @@ characters.data={
     class="close",
     name="rVert",
    },
+   {
+    class="delimiter",
+    name="doubleverticalbar",
+   },
   },
   unicodeslot=0x2016,
  },
@@ -57607,6 +57615,8 @@ characters.data={
   description="REVERSED PRIME",
   direction="on",
   linebreak="po",
+  mathclass="nothing",
+  mathname="reversedprime",
   unicodeslot=0x2035,
  },
  [0x2036]={
@@ -57614,6 +57624,8 @@ characters.data={
   description="REVERSED DOUBLE PRIME",
   direction="on",
   linebreak="po",
+  mathclass="nothing",
+  mathname="reverseddoubleprime",
   specials={ "compat", 0x2035, 0x2035 },
   unicodeslot=0x2036,
  },
@@ -57622,6 +57634,8 @@ characters.data={
   description="REVERSED TRIPLE PRIME",
   direction="on",
   linebreak="po",
+  mathclass="nothing",
+  mathname="reversedtripleprime",
   specials={ "compat", 0x2035, 0x2035, 0x2035 },
   unicodeslot=0x2037,
  },
@@ -57902,6 +57916,8 @@ characters.data={
   description="QUADRUPLE PRIME",
   direction="on",
   linebreak="al",
+  mathclass="nothing",
+  mathname="quadrupleprime",
   specials={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 },
   unicodeslot=0x2057,
  },
@@ -76974,6 +76990,12 @@ characters.data={
   description="TRIPLE VERTICAL BAR DELIMITER",
   direction="on",
   linebreak="al",
+  mathspec={
+   {
+    class="delimiter",
+    name="tripleverticalbar",
+   },
+  },
   unicodeslot=0x2980,
  },
  [0x2981]={
diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua
index bb6730f7b..948e51aa0 100644
--- a/tex/context/base/char-ini.lua
+++ b/tex/context/base/char-ini.lua
@@ -1162,6 +1162,15 @@ directives.register("characters.spaceafteruppercase",function(v)
     end
 end)
 
+-- tex
+
+function commands.chardescription(slot)
+    local d = data[slot]
+    if d then
+        context(d.description)
+    end
+end
+
 -- xml
 
 characters.activeoffset = 0x10000 -- there will be remapped in that byte range
diff --git a/tex/context/base/char-ini.mkiv b/tex/context/base/char-ini.mkiv
index 0e2b773f0..113d26709 100644
--- a/tex/context/base/char-ini.mkiv
+++ b/tex/context/base/char-ini.mkiv
@@ -91,4 +91,6 @@
 %  catcodes.register("xmlcatcodes",\number\xmlcatcodes)
 }
 
+\def\chardescription#1{\ctxcommand{chardescription(\number#1)}}
+
 \protect \endinput
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 09003d7c1..f2d638b7c 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.09.13 10:59}
+\newcontextversion{2013.09.14 14:39}
 
 %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 b8d205086..24d7d0328 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 70331891f..4955d4b11 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.09.13 10:59}
+\edef\contextversion{2013.09.14 14:39}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
diff --git a/tex/context/base/math-fen.mkiv b/tex/context/base/math-fen.mkiv
index c1f1ac2ab..94d93e4af 100644
--- a/tex/context/base/math-fen.mkiv
+++ b/tex/context/base/math-fen.mkiv
@@ -127,22 +127,48 @@
 \definemathfence [brace]       [\c!left="007B,\c!right="007D]
 \definemathfence [bar]         [\c!left="007C,\c!right="007C]
 \definemathfence [doublebar]   [\c!left="2016,\c!right="2016]
+\definemathfence [triplebar]   [\c!left="2980,\c!right="2980]
 \definemathfence [angle]       [\c!left="27E8,\c!right="27E9]
 \definemathfence [doubleangle] [\c!left="27EA,\c!right="27EB]
 \definemathfence [solidus]     [\c!left="2044,\c!right="2044]
 \definemathfence [nothing]
 
+\definemathfence [mirrored] % \v!mirrored
+
+\definemathfence [mirroredparenthesis] [mirrored] [\c!right="0028,\c!left="0029]
+\definemathfence [mirroredbracket]     [mirrored] [\c!right="005B,\c!left="005D]
+\definemathfence [mirroredbrace]       [mirrored] [\c!right="007B,\c!left="007D]
+\definemathfence [mirroredbar]         [mirrored] [\c!right="007C,\c!left="007C]
+\definemathfence [mirroreddoublebar]   [mirrored] [\c!right="2016,\c!left="2016]
+\definemathfence [mirroredtriplebar]   [mirrored] [\c!right="2980,\c!left="2980]
+\definemathfence [mirroredangle]       [mirrored] [\c!right="27E8,\c!left="27E9]
+\definemathfence [mirroreddoubleangle] [mirrored] [\c!right="27EA,\c!left="27EB]
+\definemathfence [mirroredsolidus]     [mirrored] [\c!right="2044,\c!left="2044]
+\definemathfence [mirrorednothing]     [mirorred]
+
 %D A bonus:
 
-\unexpanded\def\Lparent     {\math_fenced_fenced_start{parenthesis}}  \unexpanded\def\Rparent     {\math_fenced_fenced_stop{parenthesis}}
-\unexpanded\def\Lbracket    {\math_fenced_fenced_start{bracket}}      \unexpanded\def\Rbracket    {\math_fenced_fenced_stop{bracket}}
-\unexpanded\def\Lbrace      {\math_fenced_fenced_start{brace}}        \unexpanded\def\Rbrace      {\math_fenced_fenced_stop{brace}}
-\unexpanded\def\Langle      {\math_fenced_fenced_start{angle}}        \unexpanded\def\Rangle      {\math_fenced_fenced_stop{angle}}
-\unexpanded\def\Ldoubleangle{\math_fenced_fenced_start{doubleangle}}  \unexpanded\def\Rdoubleangle{\math_fenced_fenced_stop{doubleangle}}
-\unexpanded\def\Lbar        {\math_fenced_fenced_start{bar}}          \unexpanded\def\Rbar        {\math_fenced_fenced_stop{bar}}
-\unexpanded\def\Lsolidus    {\math_fenced_fenced_start{solidus}}      \unexpanded\def\Rsolidus    {\math_fenced_fenced_stop{solidus}}
-\unexpanded\def\Ldoublebar  {\math_fenced_fenced_start{doublebar}}    \unexpanded\def\Rdoublebar  {\math_fenced_fenced_stop{doublebar}}
-\unexpanded\def\Lnothing    {\math_fenced_fenced_start{nothing}}      \unexpanded\def\Rnothing    {\math_fenced_fenced_stop{nothing}}
+\unexpanded\def\Lparent      {\math_fenced_fenced_start{parenthesis}}  \unexpanded\def\Rparent      {\math_fenced_fenced_stop{parenthesis}}
+\unexpanded\def\Lbracket     {\math_fenced_fenced_start{bracket}}      \unexpanded\def\Rbracket     {\math_fenced_fenced_stop{bracket}}
+\unexpanded\def\Lbrace       {\math_fenced_fenced_start{brace}}        \unexpanded\def\Rbrace       {\math_fenced_fenced_stop{brace}}
+\unexpanded\def\Langle       {\math_fenced_fenced_start{angle}}        \unexpanded\def\Rangle       {\math_fenced_fenced_stop{angle}}
+\unexpanded\def\Ldoubleangle {\math_fenced_fenced_start{doubleangle}}  \unexpanded\def\Rdoubleangle {\math_fenced_fenced_stop{doubleangle}}
+\unexpanded\def\Lbar         {\math_fenced_fenced_start{bar}}          \unexpanded\def\Rbar         {\math_fenced_fenced_stop{bar}}
+\unexpanded\def\Ldoublebar   {\math_fenced_fenced_start{doublebar}}    \unexpanded\def\Rdoublebar   {\math_fenced_fenced_stop{doublebar}}
+\unexpanded\def\Ltriplebar   {\math_fenced_fenced_start{triplebar}}    \unexpanded\def\Rtriplebar   {\math_fenced_fenced_stop{triplebar}}
+\unexpanded\def\Lsolidus     {\math_fenced_fenced_start{solidus}}      \unexpanded\def\Rsolidus     {\math_fenced_fenced_stop{solidus}}
+\unexpanded\def\Lnothing     {\math_fenced_fenced_start{nothing}}      \unexpanded\def\Rnothing     {\math_fenced_fenced_stop{nothing}}
+
+\unexpanded\def\Lparentmirrored      {\math_fenced_fenced_stop{mirroredparenthesis}}  \unexpanded\def\Rparentmirrored      {\math_fenced_fenced_start{mirroredparenthesis}}
+\unexpanded\def\Lbracketmirrored     {\math_fenced_fenced_stop{mirroredbracket}}      \unexpanded\def\Rbracketmirrored     {\math_fenced_fenced_start{mirroredbracket}}
+\unexpanded\def\Lbracemirrored       {\math_fenced_fenced_stop{mirroredbrace}}        \unexpanded\def\Rbracemirrored       {\math_fenced_fenced_start{mirroredbrace}}
+\unexpanded\def\Langlemirrored       {\math_fenced_fenced_stop{mirroredangle}}        \unexpanded\def\Ranglemirrored       {\math_fenced_fenced_start{mirroredangle}}
+\unexpanded\def\Ldoubleanglemirrored {\math_fenced_fenced_stop{mirroreddoubleangle}}  \unexpanded\def\Rdoubleanglemirrored {\math_fenced_fenced_start{mirroreddoubleangle}}
+\unexpanded\def\Lbarmirrored         {\math_fenced_fenced_stop{mirroredbar}}          \unexpanded\def\Rbarmirrored         {\math_fenced_fenced_start{mirroredbar}}
+\unexpanded\def\Ldoublebarmirrored   {\math_fenced_fenced_stop{mirroreddoublebar}}    \unexpanded\def\Rdoublebarmirrored   {\math_fenced_fenced_start{mirroreddoublebar}}
+\unexpanded\def\Ltriplebarmirrored   {\math_fenced_fenced_stop{mirroredtriplebar}}    \unexpanded\def\Rtriplebarmirrored   {\math_fenced_fenced_start{mirroredtriplebar}}
+\unexpanded\def\Lsolidusmirrored     {\math_fenced_fenced_stop{mirroredsolidus}}      \unexpanded\def\Rsolidusmirrored     {\math_fenced_fenced_start{mirroredsolidus}}
+\unexpanded\def\Lnothingmirrored     {\math_fenced_fenced_stop{mirrorednothing}}      \unexpanded\def\Rnothingmirrored     {\math_fenced_fenced_start{mirrorednothing}}
 
 %D And another one:
 
@@ -190,16 +216,17 @@
   {\expandafter\let\csname\??mathleft \meaning#1\endcsname#2%
    \expandafter\let\csname\??mathright\meaning#3\endcsname#4}
 
-\expandafter\let\csname\??mathleft\meaning  [\endcsname\Lbracket
-\expandafter\let\csname\??mathleft\meaning  (\endcsname\Lparent
-\expandafter\let\csname\??mathleft\meaning  <\endcsname\Langle
-\expandafter\let\csname\??mathleft\meaning  ⟨\endcsname\Langle
-\expandafter\let\csname\??mathleft\meaning  ⟪\endcsname\Ldoubleangle
-\expandafter\let\csname\??mathleft\meaning  {\endcsname\Lbrace
-\expandafter\let\csname\??mathleft\meaning  |\endcsname\Lbar
-\expandafter\let\csname\??mathleft\meaning  /\endcsname\Lsolidus
-\expandafter\let\csname\??mathleft\meaning  ‖\endcsname\Ldoublebar
-\expandafter\let\csname\??mathleft\meaning  .\endcsname\Lnothing
+\expandafter\let\csname\??mathleft \meaning [\endcsname\Lbracket
+\expandafter\let\csname\??mathleft \meaning (\endcsname\Lparent
+\expandafter\let\csname\??mathleft \meaning <\endcsname\Langle
+\expandafter\let\csname\??mathleft \meaning ⟨\endcsname\Langle
+\expandafter\let\csname\??mathleft \meaning ⟪\endcsname\Ldoubleangle
+\expandafter\let\csname\??mathleft \meaning {\endcsname\Lbrace
+\expandafter\let\csname\??mathleft \meaning |\endcsname\Lbar
+\expandafter\let\csname\??mathleft \meaning ‖\endcsname\Ldoublebar
+\expandafter\let\csname\??mathleft \meaning ⦀\endcsname\Ltriplebar
+\expandafter\let\csname\??mathleft \meaning /\endcsname\Lsolidus
+\expandafter\let\csname\??mathleft \meaning .\endcsname\Lnothing
 
 \expandafter\let\csname\??mathright\meaning ]\endcsname\Rbracket
 \expandafter\let\csname\??mathright\meaning )\endcsname\Rparent
@@ -208,20 +235,48 @@
 \expandafter\let\csname\??mathright\meaning ⟫\endcsname\Rdoubleangle
 \expandafter\let\csname\??mathright\meaning }\endcsname\Rbrace
 \expandafter\let\csname\??mathright\meaning |\endcsname\Rbar
+\expandafter\let\csname\??mathright\meaning ⦀\endcsname\Rtriplebar
 \expandafter\let\csname\??mathright\meaning /\endcsname\Rsolidus
-\expandafter\let\csname\??mathright\meaning ‖\endcsname\Rdoublebar
 \expandafter\let\csname\??mathright\meaning .\endcsname\Rnothing
 
+\expandafter\let\csname\??mathright\meaning [\endcsname\Lbracketmirrored
+\expandafter\let\csname\??mathright\meaning (\endcsname\Lparentmirrored
+\expandafter\let\csname\??mathright\meaning <\endcsname\Langlemirrored
+\expandafter\let\csname\??mathright\meaning ⟨\endcsname\Langlemirrored
+\expandafter\let\csname\??mathright\meaning ⟪\endcsname\Ldoubleanglemirrored
+\expandafter\let\csname\??mathright\meaning {\endcsname\Lbracemirrored
+%expandafter\let\csname\??mathright\meaning |\endcsname\Lbarmirrored
+%expandafter\let\csname\??mathright\meaning ‖\endcsname\Ldoublebarmirrored
+%expandafter\let\csname\??mathright\meaning ⦀\endcsname\Ltriplebarmirrored
+\expandafter\let\csname\??mathright\meaning /\endcsname\Lsolidusmirrored
+\expandafter\let\csname\??mathright\meaning .\endcsname\Lnothingmirrored
+
+\expandafter\let\csname\??mathleft \meaning ]\endcsname\Rbracketmirrored
+\expandafter\let\csname\??mathleft \meaning )\endcsname\Rparentmirrored
+\expandafter\let\csname\??mathleft \meaning >\endcsname\Ranglemirrored
+\expandafter\let\csname\??mathleft \meaning ⟩\endcsname\Ranglemirrored
+\expandafter\let\csname\??mathleft \meaning ⟫\endcsname\Rdoubleanglemirrored
+\expandafter\let\csname\??mathleft \meaning }\endcsname\Rbracemirrored
+%expandafter\let\csname\??mathleft \meaning |\endcsname\Rbarmirrored
+%expandafter\let\csname\??mathleft \meaning ‖\endcsname\Rdoublebarmirrored
+%expandafter\let\csname\??mathleft \meaning ⦀\endcsname\Rtriplebarmirrored
+\expandafter\let\csname\??mathleft \meaning /\endcsname\Rsolidusmirrored
+\expandafter\let\csname\??mathleft \meaning .\endcsname\Rnothingmirrored
+
+% todo paren parent
+
 \let\lbrack\lbracket
 \let\rbrack\rbracket
 
-\installmathfencepair \lbrace   \Lbrace   \rbrace   \Rbrace
-\installmathfencepair \lbracket \Lbracket \rbracket \Rbracket
-\installmathfencepair \lparent  \Lparent  \rparent  \Rparent
-\installmathfencepair \langle   \Langle   \rangle   \Rangle
-%installmathfencepair \lbar     \Lbar     \rbar     \Rbar
-\installmathfencepair \vert     \Lbar     \vert     \Rbar
-\installmathfencepair \solidus  \Lsolidus \solidus  \Rsolidus
+\installmathfencepair \lbrace   \Lbrace       \rbrace   \Rbrace
+\installmathfencepair \lbracket \Lbracket     \rbracket \Rbracket
+\installmathfencepair \lparen   \Lparen       \rparen   \Rparen
+\installmathfencepair \lparent  \Lparent      \rparent  \Rparent
+\installmathfencepair \langle   \Langle       \rangle   \Rangle
+%installmathfencepair \lrangle  \Ldoubleangle \rrangle  \Rdoubleangle
+%installmathfencepair \lbar     \Lbar         \rbar     \Rbar
+\installmathfencepair \vert     \Lbar         \vert     \Rbar
+\installmathfencepair \solidus  \Lsolidus     \solidus  \Rsolidus
 
 \unexpanded\def\{{\mathortext\lbrace  \letterleftbrace   } % or maybe a chardef
 \unexpanded\def\}{\mathortext\rbrace  \letterrightbrace  } % or maybe a chardef
diff --git a/tex/context/base/math-noa.lua b/tex/context/base/math-noa.lua
index 8a5d3f546..87c6ca8b5 100644
--- a/tex/context/base/math-noa.lua
+++ b/tex/context/base/math-noa.lua
@@ -235,27 +235,39 @@ families[math_char] = function(pointer)
                 local char = pointer.char
                 local bold = boldmap[char]
                 local newa = a - 3
-                if bold then
+                if not bold then
+                    if trace_families then
+                        report_families("no bold replacement for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa])
+                    end
+                    pointer.fam = newa
+               elseif not fontcharacters[font_of_family(newa)][bold] then
+                    if trace_families then
+                        report_families("no bold character for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa])
+                    end
+                    if newa > 3 then
+                        pointer.fam = newa - 3
+                    end
+                else
                     pointer[a_exportstatus] = char
                     pointer.char = bold
                     if trace_families then
                         report_families("replacing %C by bold %C, family %s with remap %s becomes %s with remap %s",char,bold,a,familymap[a],newa,familymap[newa])
                     end
+                    pointer.fam = newa
+                end
+            else
+                local char = pointer.char
+                if not fontcharacters[font_of_family(a)][char] then
+                    if trace_families then
+                        report_families("no bold replacement for %C",char)
+                    end
                 else
                     if trace_families then
-                        report_families("no bold replacement for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa])
+                        report_families("family of %C becomes %s with remap %s",char,a,familymap[a])
                     end
+                    pointer.fam = a
                 end
-                pointer.fam = newa
-            else
-                if trace_families then
-                    local char = pointer.char
-                    report_families("family of %C becomes %s with remap %s",char,a,familymap[a])
-                end
-                pointer.fam = a
             end
-        else
-         -- pointer.fam = 0
         end
     end
 end
@@ -269,8 +281,20 @@ families[math_delim] = function(pointer)
                 -- no bold delimiters in unicode
                 a = a - 3
             end
-            pointer.small_fam = a
-            pointer.large_fam = a
+            local char = pointer.small_char
+            local okay = fontcharacters[font_of_family(a)][char]
+            if okay then
+                pointer.small_fam = a
+            elseif a > 2 then
+                pointer.small_fam = a - 3
+            end
+            local char = pointer.large_char
+            local okay = fontcharacters[font_of_family(a)][char]
+            if okay then
+                pointer.large_fam = a
+            elseif a > 2 then
+                pointer.large_fam = a - 3
+            end
         else
             pointer.small_fam = 0
             pointer.large_fam = 0
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index 14ab607c8..ad6d28bbc 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -180,7 +180,7 @@ return {
         --
         "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg",
         "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg",
-        "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter",
+        "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox",
         "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern",
         "ruledhglue", "ruledvglue", "normalhglue", "normalvglue",
         "ruledpenalty",
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index c54f68a15..d0ee6749a 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 814e5c99a..9db6975f0 100644
--- a/tex/context/base/status-lua.log
+++ b/tex/context/base/status-lua.log
@@ -1,6 +1,6 @@
 (cont-yes.mkiv
 
-ConTeXt  ver: 2013.09.13 10:59 MKIV beta  fmt: 2013.9.13  int: english/english
+ConTeXt  ver: 2013.09.14 14:39 MKIV beta  fmt: 2013.9.14  int: english/english
 
 system          > 'cont-new.mkiv' loaded
 (cont-new.mkiv)
diff --git a/tex/context/base/trac-vis.mkiv b/tex/context/base/trac-vis.mkiv
index fbc6ad6c4..694d1b09d 100644
--- a/tex/context/base/trac-vis.mkiv
+++ b/tex/context/base/trac-vis.mkiv
@@ -59,6 +59,8 @@
 \unexpanded\def\ruledvtop{\syst_visualizers_vtop attr \visualattribute \ctxcommand{visual("simplevtop")} } % special case
 \unexpanded\def\ruledtopv{\syst_visualizers_vtop attr \visualattribute \ctxcommand{visual("vtop")} }
 
+\unexpanded\def\ruledmbox#1{\ruledhbox{\startimath#1\stopimath}}
+
 \appendtoks
     \ifcase\c_syst_visualizers_state\else
         \syst_visualizers_speedup
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 3c63ba098..e6cd36b17 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  : 09/13/13 10:59:07
+-- merge date  : 09/14/13 14:39:53
 
 do -- begin closure to overcome local limits and interference
 
-- 
cgit v1.2.3