From 5b2019644037a2cf805af6848813b79eace180f5 Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Sat, 3 Mar 2012 00:00:15 +0200
Subject: beta 2012.03.02 22:35

---
 tex/context/base/cont-new.mkii                     |   2 +-
 tex/context/base/cont-new.mkiv                     |   2 +-
 tex/context/base/context-version.pdf               | Bin 4069 -> 4071 bytes
 tex/context/base/context-version.png               | Bin 104970 -> 104790 bytes
 tex/context/base/context.mkii                      |   2 +-
 tex/context/base/context.mkiv                      |   2 +-
 tex/context/base/font-gds.lua                      |  37 +++++++++++++++++----
 tex/context/base/status-files.pdf                  | Bin 24329 -> 24315 bytes
 tex/context/base/status-lua.pdf                    | Bin 172399 -> 172402 bytes
 tex/context/fonts/demo.lfg                         |  16 +++++++--
 tex/generic/context/luatex/luatex-fonts-merged.lua |   2 +-
 11 files changed, 50 insertions(+), 13 deletions(-)

(limited to 'tex')

diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 2bc4ad186..1d46b2d66 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2012.03.02 21:28}
+\newcontextversion{2012.03.02 22:35}
 
 %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/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 4018f3ed1..46577655e 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{2012.03.02 21:28}
+\newcontextversion{2012.03.02 22:35}
 
 %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-version.pdf b/tex/context/base/context-version.pdf
index b59ef7b95..858f0aea3 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 2c6a907e9..54190b7e5 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.mkii b/tex/context/base/context.mkii
index b034bb731..5436ad448 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
 %D your styles an modules.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2012.03.02 21:28}
+\edef\contextversion{2012.03.02 22:35}
 
 %D For those who want to use this:
 
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 1ec714575..b77c94bea 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -23,7 +23,7 @@
 %D up and the dependencies are more consistent.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2012.03.02 21:28}
+\edef\contextversion{2012.03.02 22:35}
 
 %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 97e97a640..3b87e4c77 100644
--- a/tex/context/base/font-gds.lua
+++ b/tex/context/base/font-gds.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['font-gds'] = {
 -- depends on ctx
 
 local type, next = type, next
-local gmatch, format, lower = string.gmatch, string.format, string.lower
+local gmatch, format, lower, find, splitup = string.gmatch, string.format, string.lower, string.find, string.splitup
 local texsp = tex.sp
 
 local fonts, nodes, attributes, node = fonts, nodes, attributes, node
@@ -251,17 +251,42 @@ local function setcolorscheme(tfmdata,scheme)
                 local g = goodies[i]
                 what = (g.colorschemes and g.colorschemes[scheme]) or what
             end
-            if what then
+            if type(what) == "table" then
                 -- this is font bound but we can share them if needed
                 -- just as we could hash the conversions (per font)
-                local hash, reverse = tfmdata.resources.unicodes, { }
+                local hash       = tfmdata.resources.unicodes
+                local reverse    = { }
+                local characters = tfmdata.characters
                 for i=1,#what do
                     local w = what[i]
                     for j=1,#w do
                         local name = w[j]
-                        local unicode = hash[name]
-                        if unicode then
-                            reverse[unicode] = i
+                        if name == "*" then
+                            -- inefficient but only used for tracing anyway
+                            for _, unicode in next, hash do
+                                reverse[unicode] = i
+                            end
+                        elseif type(name) == "number" then
+                            reverse[name] = i
+                        elseif find(name,":") then
+                            local start, stop = splitup(name,":")
+                            start = tonumber(start)
+                            stop = tonumber(stop)
+                            if start and stop then
+                                -- limited usage: we only deal with non reassigned
+                                -- maybe some day I'll also support the ones with a
+                                -- tounicode in this range
+                                for unicode=start,stop do
+                                    if characters[unicode] then
+                                        reverse[unicode] = i
+                                    end
+                                end
+                            end
+                        else
+                            local unicode = hash[name]
+                            if unicode then
+                                reverse[unicode] = i
+                            end
                         end
                     end
                 end
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 84c6d6a7c..25becac6d 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 fb3f6b267..b27c6d963 100644
Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ
diff --git a/tex/context/fonts/demo.lfg b/tex/context/fonts/demo.lfg
index 6e332cde9..00ca3ee6e 100644
--- a/tex/context/fonts/demo.lfg
+++ b/tex/context/fonts/demo.lfg
@@ -1,3 +1,5 @@
+-- see test suite: goodies-002.tex
+
 local yes = "yes"
 
 local default = {
@@ -24,7 +26,7 @@ end
 
 return {
     name = "demo",
-    version = "1.00",
+    version = "1.01",
     comment = "An example of goodies.",
     author = "Hans Hagen",
     featuresets = {
@@ -43,7 +45,17 @@ return {
             [2] = {
                 "two", "four", "six", "eight", "ten",
             },
-        }
+        },
+        all = {
+            [1] = {
+                "*",
+            },
+        },
+        some = {
+            [1] = {
+                "0x0030:0x0035",
+            },
+        },
     },
     postprocessors = {
         statistics = statistics,
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index e6a055804..bb47b946c 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  : 03/02/12 21:28:05
+-- merge date  : 03/02/12 22:35:34
 
 do -- begin closure to overcome local limits and interference
 
-- 
cgit v1.2.3