From b1b4773ad50df8779adf3335fb7813013e45481c Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Wed, 24 Apr 2013 15:00:25 +0300
Subject: beta 2013.04.24 13:39

---
 tex/context/base/cont-new.mkiv                     |   2 +-
 tex/context/base/context-version.pdf               | Bin 4135 -> 4134 bytes
 tex/context/base/context-version.png               | Bin 40537 -> 40539 bytes
 tex/context/base/context.mkiv                      |   2 +-
 tex/context/base/font-otf.lua                      |  14 +++++++++++++-
 tex/context/base/font-otn.lua                      |   4 ++--
 tex/context/base/font-otp.lua                      |   2 +-
 tex/context/base/mult-def.mkiv                     |   1 +
 tex/context/base/status-files.pdf                  | Bin 24745 -> 24718 bytes
 tex/context/base/status-lua.pdf                    | Bin 211551 -> 211512 bytes
 tex/context/base/strc-itm.mkvi                     |   3 +++
 tex/generic/context/luatex/luatex-fonts-merged.lua |  14 +++++++++++---
 12 files changed, 33 insertions(+), 9 deletions(-)

(limited to 'tex')

diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 8c1b025c8..df19f22cf 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.23 12:46}
+\newcontextversion{2013.04.24 13: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 70ba3f23f..86f4912f4 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-version.png b/tex/context/base/context-version.png
index e57796a2d..a7429df88 100644
Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index ab6658451..8b5825485 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.23 12:46}
+\edef\contextversion{2013.04.24 13:39}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua
index 8a6183180..b08b6e15d 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -798,7 +798,7 @@ actions["check encoding"] = function(data,filename,raw)
     end
 end
 
--- for the moment we assume that a fotn with lookups will not use
+-- for the moment we assume that a font with lookups will not use
 -- altuni so we stick to kerns only
 
 actions["add duplicates"] = function(data,filename,raw)
@@ -1251,9 +1251,11 @@ actions["reorganize lookups"] = function(data,filename,raw) -- we could check fo
                         if current then
                             for i=1,#current do
                                 current[i] = current_class[current[i]] or { }
+                                -- let's not be sparse
                                 if lookups and not lookups[i] then
                                     lookups[i] = "" -- (was: false) e.g. we can have two lookups and one replacement
                                 end
+                                -- end of fix
                             end
                             rule.current = t_hashed(current,t_h_cache)
                         end
@@ -1283,6 +1285,16 @@ actions["reorganize lookups"] = function(data,filename,raw) -- we could check fo
                             local current = coverage.current
                             if current then
                                 current = t_uncover(splitter,t_u_cache,current)
+                                -- let's not be sparse
+                                local lookups = rule.lookups
+                                if lookups then
+                                    for i=1,#current do
+                                        if not lookups[i] then
+                                            lookups[i] = "" -- fix sparse array
+                                        end
+                                    end
+                                end
+                                --
                                 rule.current = t_hashed(current,t_h_cache)
                             end
                             local after = coverage.after
diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua
index 39a3f77dd..36b5c4001 100644
--- a/tex/context/base/font-otn.lua
+++ b/tex/context/base/font-otn.lua
@@ -613,10 +613,10 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence)
             if lig then
                 if trace_ligatures then
                     local stopchar = stop.char
-                    head, start = toligature(kind,lookupname,head, start,stop,lig,skipmark,discfound)
+                    head, start = toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound)
                     logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
                 else
-                    head, start = toligature(kind,lookupname,head, start,stop,lig,skipmark,discfound)
+                    head, start = toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound)
                 end
                 return head, start, true
             else
diff --git a/tex/context/base/font-otp.lua b/tex/context/base/font-otp.lua
index c07d9ad4e..b02ae97ac 100644
--- a/tex/context/base/font-otp.lua
+++ b/tex/context/base/font-otp.lua
@@ -366,8 +366,8 @@ local function packdata(data)
                             local r = rule.after        if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end
                             local r = rule.current      if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end
                             local r = rule.replacements if r then rule.replacements  = pack_flat   (r)    end -- can have holes
-                         -- local r = rule.lookups      if r then rule.lookups       = pack_mixed  (r)    end -- can have false
                             local r = rule.lookups      if r then rule.lookups       = pack_indexed(r)    end -- can have ""
+                         -- local r = rule.lookups      if r then rule.lookups       = pack_flat(r)       end -- can have holes (already taken care of some cases)
                         end
                     end
                 end
diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv
index ec33171da..cb165b055 100644
--- a/tex/context/base/mult-def.mkiv
+++ b/tex/context/base/mult-def.mkiv
@@ -71,6 +71,7 @@
 \def\v!chemicals        {chemicals}
 \def\v!words            {words}
 \def\v!combination      {combination}
+\def\v!norepeat         {norepeat}
 
 \def\s!lcgreek          {lcgreek}
 \def\s!ucgreek          {ucgreek}
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 75f537ddc..0d4bd81af 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 104a26f06..bdbd77bb3 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-itm.mkvi b/tex/context/base/strc-itm.mkvi
index 5840ee73e..85ec4bc45 100644
--- a/tex/context/base/strc-itm.mkvi
+++ b/tex/context/base/strc-itm.mkvi
@@ -430,6 +430,7 @@
 \setvalue{\??itemgroupkeyword\v!stopper  }{\letitemgroupparameter\c!placestopper\v!yes} % keep {}
 \setvalue{\??itemgroupkeyword\v!unpacked }{\setfalse\c_strc_itemgroups_pack}
 \setvalue{\??itemgroupkeyword\v!repeat   }{\settrue\c_strc_itemgroups_repeat}
+\setvalue{\??itemgroupkeyword\v!norepeat }{\setfalse\c_strc_itemgroups_repeat}
 \setvalue{\??itemgroupkeyword\v!reverse  }{\settrue\c_strc_itemgroups_reverse}
 \setvalue{\??itemgroupkeyword\v!columns  }{\settrue\c_strc_itemgroups_columns}
 \setvalue{\??itemgroupkeyword\v!one      }{\letitemgroupparameter\c!n\plusone}
@@ -1306,6 +1307,8 @@
       \ifx\m_strc_itemgroups_repeat_start\empty
         \edef\m_strc_itemgroups_repeat_start{\currentitemlevel}%
       \fi
+   \else
+      \let\m_strc_itemgroups_repeat_start\empty
    \fi}
 
 \def\strc_itemgroups_insert_item
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 28271378a..da5e35a80 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/23/13 12:46:30
+-- merge date  : 04/24/13 13:39:43
 
 do -- begin closure to overcome local limits and interference
 
@@ -6098,6 +6098,14 @@ actions["reorganize lookups"]=function(data,filename,raw)
               local current=coverage.current
               if current then
                 current=t_uncover(splitter,t_u_cache,current)
+                local lookups=rule.lookups
+                if lookups then
+                  for i=1,#current do
+                    if not lookups[i] then
+                      lookups[i]="" 
+                    end
+                  end
+                end
                 rule.current=t_hashed(current,t_h_cache)
               end
               local after=coverage.after
@@ -10642,8 +10650,8 @@ local function packdata(data)
               local r=rule.before    if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end
               local r=rule.after    if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end
               local r=rule.current   if r then for i=1,#r do r[i]=pack_boolean(r[i]) end end
-              local r=rule.replacements if r then rule.replacements=pack_flat  (r)  end
-              local r=rule.lookups   if r then rule.lookups=pack_indexed(r)  end 
+              local r=rule.replacements if r then rule.replacements=pack_flat  (r)  end 
+              local r=rule.lookups   if r then rule.lookups=pack_indexed(r)  end
             end
           end
         end
-- 
cgit v1.2.3