summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2010-01-11 14:57:00 +0100
committerHans Hagen <pragma@wxs.nl>2010-01-11 14:57:00 +0100
commit3dbcef73aec79246dfc4238eb7af28d3fa54e1f3 (patch)
tree45b19a9aae6525d3ae8e615213ef88e17e8c7adc
parentb49a72625ea82574863b42d6b8782c9ce9aba4f7 (diff)
downloadcontext-3dbcef73aec79246dfc4238eb7af28d3fa54e1f3.tar.gz
beta 2010.01.11 14:57
-rw-r--r--scripts/context/lua/luatools.lua1
-rw-r--r--scripts/context/lua/mtxrun.lua17
-rw-r--r--scripts/context/stubs/mswin/luatools.lua1
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua17
-rwxr-xr-xscripts/context/stubs/unix/luatools1
-rwxr-xr-xscripts/context/stubs/unix/mtxrun17
-rw-r--r--tex/context/base/buff-ini.lua26
-rw-r--r--tex/context/base/char-cmp.lua1
-rw-r--r--tex/context/base/data-bin.lua1
-rw-r--r--tex/context/base/data-lua.lua1
-rw-r--r--tex/context/base/data-tex.lua1
-rw-r--r--tex/context/base/data-tre.lua1
-rw-r--r--tex/context/base/data-zip.lua1
-rw-r--r--tex/context/base/font-syn.lua1
-rw-r--r--tex/context/base/l-table.lua1
-rw-r--r--tex/context/base/luat-ini.lua6
-rw-r--r--tex/context/base/mult-clm.lua1
-rw-r--r--tex/context/base/pack-rul.mkiv8
-rw-r--r--tex/context/base/pret-lua.lua19
-rw-r--r--tex/context/base/spac-ver.lua1
-rw-r--r--tex/context/base/strc-des.mkiv14
-rw-r--r--tex/context/base/strc-not.lua6
-rw-r--r--tex/context/base/strc-not.mkiv3
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua3
24 files changed, 109 insertions, 40 deletions
diff --git a/scripts/context/lua/luatools.lua b/scripts/context/lua/luatools.lua
index 69a7f488a..9f34bea72 100644
--- a/scripts/context/lua/luatools.lua
+++ b/scripts/context/lua/luatools.lua
@@ -513,6 +513,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 79fdaa759..051cd0fa8 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -522,6 +522,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
@@ -5456,13 +5457,17 @@ local function parse_apply(list,pattern)
end
local nofparsed = #parsed
if nofparsed == 0 then
- -- something is wrong
+ return -- something is wrong
+ end
+ local one = list[1]
+ if not one then
+ return -- something is wrong
elseif not trace_lpath then
- return normal_apply(list,parsed,nofparsed,list[1].mi)
+ return normal_apply(list,parsed,nofparsed,one.mi)
elseif trace_lprofile then
- return profiled_apply(list,parsed,nofparsed,list[1].mi)
- else -- trace_lpath
- return traced_apply(list,parsed,nofparsed,list[1].mi)
+ return profiled_apply(list,parsed,nofparsed,one.mi)
+ else
+ return traced_apply(list,parsed,nofparsed,one.mi)
end
end
@@ -10114,6 +10119,7 @@ if not modules then modules = { } end modules ['data-zip'] = {
}
local format, find, match = string.format, string.find, string.match
+local unpack = unpack or table.unpack
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
@@ -10432,6 +10438,7 @@ if not modules then modules = { } end modules ['data-lua'] = {
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local gsub = string.gsub
+local unpack = unpack or table.unpack
local libformats = { 'luatexlibs', 'tex', 'texmfscripts', 'othertextfiles' } -- 'luainputs'
local clibformats = { 'lib' }
diff --git a/scripts/context/stubs/mswin/luatools.lua b/scripts/context/stubs/mswin/luatools.lua
index 69a7f488a..9f34bea72 100644
--- a/scripts/context/stubs/mswin/luatools.lua
+++ b/scripts/context/stubs/mswin/luatools.lua
@@ -513,6 +513,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 79fdaa759..051cd0fa8 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -522,6 +522,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
@@ -5456,13 +5457,17 @@ local function parse_apply(list,pattern)
end
local nofparsed = #parsed
if nofparsed == 0 then
- -- something is wrong
+ return -- something is wrong
+ end
+ local one = list[1]
+ if not one then
+ return -- something is wrong
elseif not trace_lpath then
- return normal_apply(list,parsed,nofparsed,list[1].mi)
+ return normal_apply(list,parsed,nofparsed,one.mi)
elseif trace_lprofile then
- return profiled_apply(list,parsed,nofparsed,list[1].mi)
- else -- trace_lpath
- return traced_apply(list,parsed,nofparsed,list[1].mi)
+ return profiled_apply(list,parsed,nofparsed,one.mi)
+ else
+ return traced_apply(list,parsed,nofparsed,one.mi)
end
end
@@ -10114,6 +10119,7 @@ if not modules then modules = { } end modules ['data-zip'] = {
}
local format, find, match = string.format, string.find, string.match
+local unpack = unpack or table.unpack
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
@@ -10432,6 +10438,7 @@ if not modules then modules = { } end modules ['data-lua'] = {
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local gsub = string.gsub
+local unpack = unpack or table.unpack
local libformats = { 'luatexlibs', 'tex', 'texmfscripts', 'othertextfiles' } -- 'luainputs'
local clibformats = { 'lib' }
diff --git a/scripts/context/stubs/unix/luatools b/scripts/context/stubs/unix/luatools
index 69a7f488a..9f34bea72 100755
--- a/scripts/context/stubs/unix/luatools
+++ b/scripts/context/stubs/unix/luatools
@@ -513,6 +513,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 79fdaa759..051cd0fa8 100755
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -522,6 +522,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
@@ -5456,13 +5457,17 @@ local function parse_apply(list,pattern)
end
local nofparsed = #parsed
if nofparsed == 0 then
- -- something is wrong
+ return -- something is wrong
+ end
+ local one = list[1]
+ if not one then
+ return -- something is wrong
elseif not trace_lpath then
- return normal_apply(list,parsed,nofparsed,list[1].mi)
+ return normal_apply(list,parsed,nofparsed,one.mi)
elseif trace_lprofile then
- return profiled_apply(list,parsed,nofparsed,list[1].mi)
- else -- trace_lpath
- return traced_apply(list,parsed,nofparsed,list[1].mi)
+ return profiled_apply(list,parsed,nofparsed,one.mi)
+ else
+ return traced_apply(list,parsed,nofparsed,one.mi)
end
end
@@ -10114,6 +10119,7 @@ if not modules then modules = { } end modules ['data-zip'] = {
}
local format, find, match = string.format, string.find, string.match
+local unpack = unpack or table.unpack
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
@@ -10432,6 +10438,7 @@ if not modules then modules = { } end modules ['data-lua'] = {
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local gsub = string.gsub
+local unpack = unpack or table.unpack
local libformats = { 'luatexlibs', 'tex', 'texmfscripts', 'othertextfiles' } -- 'luainputs'
local clibformats = { 'lib' }
diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua
index d6b5211b1..9d8ad8104 100644
--- a/tex/context/base/buff-ini.lua
+++ b/tex/context/base/buff-ini.lua
@@ -37,6 +37,8 @@ local lpegmatch = lpeg.match
local data, flags, hooks, visualizers = buffers.data, buffers.flags, buffers.hooks, buffers.visualizers
+visualizers.defaultname = variables.typing
+
function buffers.raw(name)
return data[name] or { }
end
@@ -350,15 +352,27 @@ function buffers.loadvisualizer(name)
if hn then
return hn
else
- if trace_visualize then
+ environment.loadluafile("pret-" .. name)
+ local hn = handlers[name]
+ if not hn then
+ -- hn = buffers.newvisualizer(name)
+ hn = handlers[visualizers.defaultname]
+ handlers[name] = n
+ if trace_visualize then
+ logs.report("buffers","mapping '%s' visualizer onto '%s'",name,visualizers.defaultname)
+ end
+ elseif trace_visualize then
logs.report("buffers","loading '%s' visualizer",name)
end
- environment.loadluafile("pret-" .. name)
- return handlers[name] or buffers.newvisualizer(name)
+ return hn
end
end
-local default = buffers.newvisualizer("default")
+-- was "default", should be set at tex end (todo)
+
+local default = buffers.newvisualizer(visualizers.defaultname)
+
+--~ print(variables.typing) os.exit()
local currentvisualizer, currenthandler
@@ -366,7 +380,7 @@ function buffers.setvisualizer(str)
currentvisualizer = lower(str)
currenthandler = handlers[currentvisualizer]
if not currenthandler then
- currentvisualizer = 'default'
+ currentvisualizer = visualizers.defaultname
currenthandler = handlers.default
end
if currenthandler.reset then
@@ -374,7 +388,7 @@ function buffers.setvisualizer(str)
end
end
-buffers.setvisualizer("default")
+buffers.setvisualizer(visualizers.defaultname)
function visualizers.reset()
end
diff --git a/tex/context/base/char-cmp.lua b/tex/context/base/char-cmp.lua
index 42a354cb8..c7deb7901 100644
--- a/tex/context/base/char-cmp.lua
+++ b/tex/context/base/char-cmp.lua
@@ -7,6 +7,7 @@ if not modules then modules = { } end modules ['char-cmp'] = {
}
local utf = unicode.utf8
+local unpack = unpack or table.unpack
characters = characters or { }
characters.uncomposed = characters.uncomposed or { }
diff --git a/tex/context/base/data-bin.lua b/tex/context/base/data-bin.lua
index 6e967fb1a..7bfdc7efe 100644
--- a/tex/context/base/data-bin.lua
+++ b/tex/context/base/data-bin.lua
@@ -7,6 +7,7 @@ if not modules then modules = { } end modules ['data-bin'] = {
}
local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+local unpack = unpack or table.unpack
function resolvers.findbinfile(filename, filetype)
return resolvers.methodhandler('finders',file.collapse_path(filename), filetype)
diff --git a/tex/context/base/data-lua.lua b/tex/context/base/data-lua.lua
index 3005d5176..af09bbe59 100644
--- a/tex/context/base/data-lua.lua
+++ b/tex/context/base/data-lua.lua
@@ -13,6 +13,7 @@ if not modules then modules = { } end modules ['data-lua'] = {
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local gsub = string.gsub
+local unpack = unpack or table.unpack
local libformats = { 'luatexlibs', 'tex', 'texmfscripts', 'othertextfiles' } -- 'luainputs'
local clibformats = { 'lib' }
diff --git a/tex/context/base/data-tex.lua b/tex/context/base/data-tex.lua
index 0f2be3962..5798ba9f3 100644
--- a/tex/context/base/data-tex.lua
+++ b/tex/context/base/data-tex.lua
@@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['data-tex'] = {
-- special functions that deal with io
local format, lower = string.format, string.lower
+local unpack = unpack or table.unpack
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
diff --git a/tex/context/base/data-tre.lua b/tex/context/base/data-tre.lua
index a56040ccc..ae417b7a7 100644
--- a/tex/context/base/data-tre.lua
+++ b/tex/context/base/data-tre.lua
@@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['data-tre'] = {
-- \input tree://oeps1/**/oeps.tex
local find, gsub = string.find, string.gsub
+local unpack = unpack or table.unpack
local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
diff --git a/tex/context/base/data-zip.lua b/tex/context/base/data-zip.lua
index 7d2fc8664..aa3740a83 100644
--- a/tex/context/base/data-zip.lua
+++ b/tex/context/base/data-zip.lua
@@ -7,6 +7,7 @@ if not modules then modules = { } end modules ['data-zip'] = {
}
local format, find, match = string.format, string.find, string.match
+local unpack = unpack or table.unpack
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
diff --git a/tex/context/base/font-syn.lua b/tex/context/base/font-syn.lua
index e3bd85288..b56ea7917 100644
--- a/tex/context/base/font-syn.lua
+++ b/tex/context/base/font-syn.lua
@@ -15,6 +15,7 @@ local find, gmatch = string.find, string.gmatch
local concat, sort, format = table.concat, table.sort, string.format
local lpegmatch = lpeg.match
local utfgsub, utflower = utf.gsub, utf.lower
+local unpack = unpack or table.unpack
local trace_names = false trackers.register("fonts.names", function(v) trace_names = v end)
local trace_warnings = false trackers.register("fonts.warnings", function(v) trace_warnings = v end)
diff --git a/tex/context/base/l-table.lua b/tex/context/base/l-table.lua
index 70a901e9d..1382f83a3 100644
--- a/tex/context/base/l-table.lua
+++ b/tex/context/base/l-table.lua
@@ -12,6 +12,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }
diff --git a/tex/context/base/luat-ini.lua b/tex/context/base/luat-ini.lua
index 4138e16af..295a9ab8f 100644
--- a/tex/context/base/luat-ini.lua
+++ b/tex/context/base/luat-ini.lua
@@ -45,7 +45,7 @@ one.</p>
--ldx]]--
local string, table, lpeg, math, io, system = string, table, lpeg, math, io, system
-local next, setfenv = next, setfenv
+local next, setfenv = next, setfenv or debug.setfenv
local format = string.format
local global = _G
@@ -78,6 +78,10 @@ local protected = {
userdata, thirddata, moduledata = nil, nil, nil
+if not setfenv then
+ texio.write_nl("warning: we need to fix setfenv")
+end
+
function protect(name)
if name == "isolateddata" then
local t = { }
diff --git a/tex/context/base/mult-clm.lua b/tex/context/base/mult-clm.lua
index 6e6597e2a..069da8862 100644
--- a/tex/context/base/mult-clm.lua
+++ b/tex/context/base/mult-clm.lua
@@ -11,6 +11,7 @@ if not modules then modules = { } end modules ['mult-clm'] = {
local texsprint, ctxcatcodes, vrbcatcodes = tex.sprint, tex.ctxcatcodes, tex.vrbcatcodes
local format, insert, remove, concat = string.format, table.insert, table.remove, table.concat
+local unpack = unpack or table.unpack
local trace_define = false trackers.register("context.define", function(v) trace_define = v end)
diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv
index b0b2592b5..79daf99e2 100644
--- a/tex/context/base/pack-rul.mkiv
+++ b/tex/context/base/pack-rul.mkiv
@@ -2654,9 +2654,9 @@
\c!orientation=,
\c!indenting=,
#2]%
- \setvalue{\e!start#1}{\dostartframedtext[#1]}%
- \setvalue{\e!stop #1}{\dostopframedtext }%
- \setvalue {#1}{\doframedtext [#1]}}
+ \unexpanded\setvalue{\e!start#1}{\dostartframedtext[#1]}%
+ \unexpanded\setvalue{\e!stop #1}{\dostopframedtext }%
+ \unexpanded\setvalue {#1}{\doframedtext [#1]}}
\def\defineframedtext
{\dodoubleempty\dodefineframedtext}
@@ -2832,7 +2832,7 @@
\def\dodefineframed[#1][#2]%
{\iffirstargument
- \setvalue{#1}{\dodoubleempty\doframed[#2]}%
+ \unexpanded\setvalue{#1}{\dodoubleempty\doframed[#2]}%
\fi}
\def\doframed[#1][#2]%
diff --git a/tex/context/base/pret-lua.lua b/tex/context/base/pret-lua.lua
index 1a771a7fd..2809a1eca 100644
--- a/tex/context/base/pret-lua.lua
+++ b/tex/context/base/pret-lua.lua
@@ -33,9 +33,11 @@ visualizer.identifiers.base = {
}
visualizer.identifiers.five = {
- "_G", "getfenv", "getmetatable", "ipairs", "loadlib", "next", "pairs",
- "pcall", "rawequal", "setfenv", "setmetatable", "xpcall", "string", "table",
- "math", "coroutine", "io", "os", "debug", "load", "module", "select"
+ "_G", "getmetatable", "ipairs", "loadlib", "next", "pairs",
+ "pcall", "rawequal", "setmetatable", "xpcall", "string", "table",
+ "math", "coroutine", "io", "os", "debug", "load", "module", "select",
+ -- depricated
+ "getfenv", "setfenv",
}
visualizer.identifiers.libs = {
@@ -43,7 +45,7 @@ visualizer.identifiers.libs = {
"coroutine.create", "coroutine.resume", "coroutine.status", "coroutine.wrap",
"coroutine.yield", "coroutine.running",
-- package
- "package.cpath", "package.loaded", "package.loadlib", "package.path",
+ "package.cpath", "package.loaded", "package.loadlib", "package.path", "package.config",
-- io
"io.close", "io.flush", "io.input", "io.lines", "io.open", "io.output",
"io.read", "io.tmpfile", "io.type", "io.write", "io.stdin", "io.stdout",
@@ -51,7 +53,7 @@ visualizer.identifiers.libs = {
-- math
"math.abs", "math.acos", "math.asin", "math.atan", "math.atan2", "math.ceil",
"math.cos", "math.deg", "math.exp", "math.floor math.", "math.ldexp",
- "math.log", "math.log10", "math.max", "math.min math.mod math.pi", "math.pow",
+ "math.log", "math.max", "math.min", "math.mod", "math.pi", "math.pow",
"math.rad", "math.random", "math.randomseed", "math.sin", "math.sqrt",
"math.tan", "math.cosh", "math.fmod", "math.modf", "math.sinh", "math.tanh",
"math.huge",
@@ -60,13 +62,16 @@ visualizer.identifiers.libs = {
"string.lower", "string.rep", "string.sub", "string.upper", "string.format",
"string.gfind", "string.gsub", "string.gmatch", "string.match", "string.reverse",
-- table
- "table.maxn", "table.concat", "table.foreach", "table.foreachi", "table.getn",
+ "table.concat", "table.foreach", "table.foreachi", "table.getn",
"table.sort", "table.insert", "table.remove", "table.setn",
+ "table.pack", "table.unpack",
-- os
"os.clock", "os.date", "os.difftime", "os.execute", "os.exit", "os.getenv",
"os.remove", "os.rename", "os.setlocale", "os.time", "os.tmpname",
-- package
- "package.preload", "package.seeall"
+ "package.preload", "package.seeall",
+ -- depricated
+ "math.log10", "table.maxn",
}
local known_words = { }
diff --git a/tex/context/base/spac-ver.lua b/tex/context/base/spac-ver.lua
index 8700eccce..97114c1e6 100644
--- a/tex/context/base/spac-ver.lua
+++ b/tex/context/base/spac-ver.lua
@@ -20,6 +20,7 @@ local format, gmatch, concat, match = string.format, string.gmatch, table.concat
local ceil, floor, max, min, round = math.ceil, math.floor, math.max, math.min, math.round
local texsprint, texlists, texdimen, texbox, texht, texdp = tex.sprint, tex.lists, tex.dimen, tex.box, tex.ht, tex.dp
local lpegmatch = lpeg.match
+local unpack = unpack or table.unpack
local ctxcatcodes = tex.ctxcatcodes
local variables = interfaces.variables
diff --git a/tex/context/base/strc-des.mkiv b/tex/context/base/strc-des.mkiv
index f50688a69..4c823514d 100644
--- a/tex/context/base/strc-des.mkiv
+++ b/tex/context/base/strc-des.mkiv
@@ -868,14 +868,18 @@
userdata = structure.helpers.touserdata(\!!bs\detokenize{#2}\!!es)
}
}}%
- \xdef\currentdescriptionattribute {\ctxlua {tex.write(jobreferences.setinternalreference("\referenceprefix","\currentdescriptionreference",\nextinternalreference,"\@@iafocus"))}}%
- \xdef\currentdescriptionsynchronize{\ctxlatelua{structure.lists.enhance(\currentdescriptionnumberentry)}}%
+ \xdef\currentdescriptionattribute {\ctxlua {tex.write(jobreferences.setinternalreference("\referenceprefix","\currentdescriptionreference",\nextinternalreference,"\@@iafocus"))}}%
+ \xdef\currentdescriptionsynchronize{\ctxlatelua{structure.lists.enhance(\currentdescriptionnumberentry)}}%
\fi
\endgroup}
-\def\reinstatedescriptionnumberentry
- {\xdef\currentdescriptionattribute {\ctxlua {tex.write(jobreferences.getinternalreference(\currentdescriptionnumberentry))}}%
- \xdef\currentdescriptionsynchronize{\ctxlatelua{structure.lists.enhance(\currentdescriptionnumberentry)}}}
+% This is not so nice, some day i'll just store the number with the entry
+% and deal with all at the Lua end, but first we need to be able to set
+% macros.
+
+\def\reinstatedescriptionnumberentry#1%
+ {\xdef\currentdescriptionattribute {\ctxlua {tex.write(jobreferences.getinternalreference(#1))}}%
+ \xdef\currentdescriptionsynchronize{\ctxlatelua{structure.lists.enhance(#1)}}}
\installstructurelistprocessor{description}{\usestructurelistprocessor{number+title}}
diff --git a/tex/context/base/strc-not.lua b/tex/context/base/strc-not.lua
index 266e22edc..f390c05b5 100644
--- a/tex/context/base/strc-not.lua
+++ b/tex/context/base/strc-not.lua
@@ -69,6 +69,12 @@ function notes.get(tag,n)
end
end
+-- we could make a special enhancer
+
+function notes.listindex(tag,n)
+ return notedata[tag][n]
+end
+
function notes.define(tag,kind,number)
local state = notes.setstate(tag,kind)
state.number = number
diff --git a/tex/context/base/strc-not.mkiv b/tex/context/base/strc-not.mkiv
index cbdf3783f..6be959fa3 100644
--- a/tex/context/base/strc-not.mkiv
+++ b/tex/context/base/strc-not.mkiv
@@ -640,9 +640,10 @@
{\edef\currentdescription{#1}%
\edef\currentnote{#1}%
\edef\currentdescriptionnumberentry{#2}%
+ \edef\currentdescriptionlistentry{\ctxlua{tex.write(structure.notes.listindex("#1",#2))}}%
% as we can have collected notes (e.g. in tables) we need to recover
% \currentdescriptionattribute and \currentdescriptionsynchronize
- \reinstatedescriptionnumberentry
+ \reinstatedescriptionnumberentry\currentdescriptionlistentry % we could store the number in the entry
%
\dontcomplain % should be done in startstoreddescription instead
\dostartstoreddescription\begstrut\currentnotedescriptiontext\endstrut\dostopstoreddescription}
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 56c7c59d5..3d48a017d 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
--- merge date : 01/09/10 00:02:29
+-- merge date : 01/11/10 15:01:58
do -- begin closure to overcome local limits and interference
@@ -584,6 +584,7 @@ local concat, sort, insert, remove = table.concat, table.sort, table.insert, tab
local format, find, gsub, lower, dump, match = string.format, string.find, string.gsub, string.lower, string.dump, string.match
local getmetatable, setmetatable = getmetatable, setmetatable
local type, next, tostring, tonumber, ipairs, pairs = type, next, tostring, tonumber, ipairs, pairs
+local unpack = unpack or table.unpack
function table.strip(tab)
local lst = { }