From fd5fde0e9d561ad8e96fa2dfdc14b59af57f8f9d Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Sun, 14 Jul 2013 14:53:00 +0200
Subject: beta 2013.07.14 14:53

---
 tex/context/base/cont-new.mkiv                     |   2 +-
 tex/context/base/context-version.pdf               | Bin 4097 -> 4113 bytes
 tex/context/base/context.mkiv                      |   2 +-
 tex/context/base/math-stc.mkvi                     |   2 +-
 tex/context/base/node-met.lua                      |   1 -
 tex/context/base/s-inf-03.pdf                      | Bin 1971 -> 1977 bytes
 tex/context/base/status-files.pdf                  | Bin 24573 -> 24613 bytes
 tex/context/base/status-lua.log                    |   2 +-
 tex/context/base/strc-ref.lua                      |   5 +-
 tex/generic/context/luatex/luatex-basics-nod.lua   |  54 +++++++++++++++++++--
 tex/generic/context/luatex/luatex-fonts-merged.lua |  44 +++++++++++++++--
 11 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 283e924cc..72101e746 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.07.12 19:10}
+\newcontextversion{2013.07.14 14:53}
 
 %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 3bf5f1c53..74319d9ea 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 e6cc65a9d..4ad245936 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.07.12 19:10}
+\edef\contextversion{2013.07.14 14:53}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
diff --git a/tex/context/base/math-stc.mkvi b/tex/context/base/math-stc.mkvi
index 5f92f3801..559fbd16c 100644
--- a/tex/context/base/math-stc.mkvi
+++ b/tex/context/base/math-stc.mkvi
@@ -723,7 +723,7 @@
 
 \definemathunderextensible  [vfenced] [underbar]      ["203E]
 \definemathoverextensible   [vfenced] [overbar]       ["203E]
-\definemathoverextensible   [vfenced] [doublebar]     ["203E]  ["203E]
+\definemathdoubleextensible [vfenced] [doublebar]     ["203E]  ["203E]
 
 \definemathoverextensible   [vfenced] [overbrace]     ["FE3DE]          % ["023DE]
 \definemathunderextensible  [vfenced] [underbrace]    ["FE3DF]          % ["023DF]
diff --git a/tex/context/base/node-met.lua b/tex/context/base/node-met.lua
index aff427185..f08f2b3dd 100644
--- a/tex/context/base/node-met.lua
+++ b/tex/context/base/node-met.lua
@@ -113,7 +113,6 @@ nodes.kerning              = node.kerning
 nodes.ligaturing           = node.ligaturing
 nodes.mlist_to_hlist       = node.mlist_to_hlist
 
-
 if not gonuts or not node.getfield then
     node.getfield = metatable.__index
     node.setfield = metatable.__newindex
diff --git a/tex/context/base/s-inf-03.pdf b/tex/context/base/s-inf-03.pdf
index a2de80fab..b0aaf6733 100644
Binary files a/tex/context/base/s-inf-03.pdf and b/tex/context/base/s-inf-03.pdf differ
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index af631be91..d2eb1348c 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 71ade66ca..10d115dfe 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.07.12 19:10 MKIV beta  fmt: 2013.7.12  int: english/english
+ConTeXt  ver: 2013.07.14 14:53 MKIV beta  fmt: 2013.7.14  int: english/english
 
 system          > 'cont-new.mkiv' loaded
 (cont-new.mkiv)
diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua
index 4c4a0fe7f..adf88840f 100644
--- a/tex/context/base/strc-ref.lua
+++ b/tex/context/base/strc-ref.lua
@@ -2024,7 +2024,10 @@ local function realpageofpage(p) -- the last one counts !
         nofrealpages = #pages
         plist = { }
         for rp=1,nofrealpages do
-            plist[pages[rp].number] = rp
+            local page = pages[rp]
+            if page then
+                plist[page.number] = rp
+            end
         end
         references.nofrealpages = nofrealpages
     end
diff --git a/tex/generic/context/luatex/luatex-basics-nod.lua b/tex/generic/context/luatex/luatex-basics-nod.lua
index 58b27897d..50a1e8627 100644
--- a/tex/generic/context/luatex/luatex-basics-nod.lua
+++ b/tex/generic/context/luatex/luatex-basics-nod.lua
@@ -96,8 +96,8 @@ end
 
 -- experimental
 
-local getfield = node.getfield or function(n,tag)       return n[tag]  end end
-local setfield = node.setfield or function(n,tag,value) n[tag] = value end end
+local getfield = node.getfield or function(n,tag)       return n[tag]  end
+local setfield = node.setfield or function(n,tag,value) n[tag] = value end
 
 nodes.getfield = getfield
 nodes.setfield = setfield
@@ -116,4 +116,52 @@ if node.getlist    then nodes.getlist    = node.getlist    else function nodes.g
 function nodes.tonut (n) return n end
 function nodes.tonode(n) return n end
 
-nodes.nuts = nodes -- we stay nodes
+-- being lazy ... just copy a bunch ... not all needed in generic but we assume
+-- nodes to be kind of private anyway
+
+nodes.tostring             = node.tostring or tostring
+nodes.copy                 = node.copy
+nodes.copy_list            = node.copy_list
+nodes.delete               = node.delete
+nodes.dimensions           = node.dimensions
+nodes.end_of_math          = node.end_of_math
+nodes.flush_list           = node.flush_list
+nodes.flush_node           = node.flush_node
+nodes.free                 = node.free
+nodes.insert_after         = node.insert_after
+nodes.insert_before        = node.insert_before
+nodes.hpack                = node.hpack
+nodes.new                  = node.new
+nodes.tail                 = node.tail
+nodes.traverse             = node.traverse
+nodes.traverse_id          = node.traverse_id
+nodes.slide                = node.slide
+nodes.vpack                = node.vpack
+
+nodes.first_glyph          = node.first_glyph
+nodes.first_character      = node.first_character
+nodes.has_glyph            = node.has_glyph or node.first_glyph
+
+nodes.current_attr         = node.current_attr
+nodes.do_ligature_n        = node.do_ligature_n
+nodes.has_field            = node.has_field
+nodes.last_node            = node.last_node
+nodes.usedlist             = node.usedlist
+nodes.protrusion_skippable = node.protrusion_skippable
+nodes.write                = node.write
+
+nodes.has_attribute        = node.has_attribute
+nodes.set_attribute        = node.set_attribute
+nodes.unset_attribute      = node.unset_attribute
+
+nodes.protect_glyphs       = node.protect_glyphs
+nodes.unprotect_glyphs     = node.unprotect_glyphs
+nodes.kerning              = node.kerning
+nodes.ligaturing           = node.ligaturing
+nodes.mlist_to_hlist       = node.mlist_to_hlist
+
+-- in generic code, at least for some time, we stay nodes, while in context
+-- we can go nuts (e.g. experimental); this split permits us us keep code
+-- used elsewhere stable but at the same time play around in context
+
+nodes.nuts = nodes
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index d7a1fab5b..c17a54182 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  : 07/12/13 19:10:11
+-- merge date  : 07/14/13 14:53:44
 
 do -- begin closure to overcome local limits and interference
 
@@ -3381,8 +3381,8 @@ function nodes.pool.kern(k)
   n.kern=k
   return n
 end
-local getfield=node.getfield or function(n,tag)    return n[tag] end end
-local setfield=node.setfield or function(n,tag,value) n[tag]=value end end
+local getfield=node.getfield or function(n,tag)    return n[tag] end
+local setfield=node.setfield or function(n,tag,value) n[tag]=value end
 nodes.getfield=getfield
 nodes.setfield=setfield
 nodes.getattr=getfield
@@ -3396,7 +3396,43 @@ if node.getfont  then nodes.getfont=node.getfont  else function nodes.getfont  (
 if node.getlist  then nodes.getlist=node.getlist  else function nodes.getlist  (n) return getfield(n,"list")  end end
 function nodes.tonut (n) return n end
 function nodes.tonode(n) return n end
-nodes.nuts=nodes 
+nodes.tostring=node.tostring or tostring
+nodes.copy=node.copy
+nodes.copy_list=node.copy_list
+nodes.delete=node.delete
+nodes.dimensions=node.dimensions
+nodes.end_of_math=node.end_of_math
+nodes.flush_list=node.flush_list
+nodes.flush_node=node.flush_node
+nodes.free=node.free
+nodes.insert_after=node.insert_after
+nodes.insert_before=node.insert_before
+nodes.hpack=node.hpack
+nodes.new=node.new
+nodes.tail=node.tail
+nodes.traverse=node.traverse
+nodes.traverse_id=node.traverse_id
+nodes.slide=node.slide
+nodes.vpack=node.vpack
+nodes.first_glyph=node.first_glyph
+nodes.first_character=node.first_character
+nodes.has_glyph=node.has_glyph or node.first_glyph
+nodes.current_attr=node.current_attr
+nodes.do_ligature_n=node.do_ligature_n
+nodes.has_field=node.has_field
+nodes.last_node=node.last_node
+nodes.usedlist=node.usedlist
+nodes.protrusion_skippable=node.protrusion_skippable
+nodes.write=node.write
+nodes.has_attribute=node.has_attribute
+nodes.set_attribute=node.set_attribute
+nodes.unset_attribute=node.unset_attribute
+nodes.protect_glyphs=node.protect_glyphs
+nodes.unprotect_glyphs=node.unprotect_glyphs
+nodes.kerning=node.kerning
+nodes.ligaturing=node.ligaturing
+nodes.mlist_to_hlist=node.mlist_to_hlist
+nodes.nuts=nodes
 
 end -- closure
 
-- 
cgit v1.2.3