summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2009-11-23 11:49:00 +0100
committerHans Hagen <pragma@wxs.nl>2009-11-23 11:49:00 +0100
commit79817aae214b6a02b8a23c90e7d5e8fb4da6b80f (patch)
tree5e1cc879663e30f40873407e7e6fa6feb9a724ea /tex
parentc38290bd0d10e40de8f19cecf2baac0d8e9912e7 (diff)
downloadcontext-79817aae214b6a02b8a23c90e7d5e8fb4da6b80f.tar.gz
beta 2009.11.23 11:49
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/data-aux.lua18
-rw-r--r--tex/context/base/data-con.lua2
-rw-r--r--tex/context/base/data-res.lua229
-rw-r--r--tex/context/base/data-tex.lua25
-rw-r--r--tex/context/base/data-use.lua3
-rw-r--r--tex/context/base/data-zip.lua71
-rw-r--r--tex/context/base/font-ext.lua26
-rw-r--r--tex/context/base/luat-env.lua15
-rw-r--r--tex/context/base/mult-sys.tex1
-rw-r--r--tex/context/base/spac-ver.mkiv36
-rw-r--r--tex/context/base/trac-log.lua6
-rw-r--r--tex/context/base/trac-tra.lua86
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua4
15 files changed, 254 insertions, 272 deletions
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 25a5b19c0..3aafa79e0 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2009.11.21 11:45}
+\newcontextversion{2009.11.23 11:49}
%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.tex b/tex/context/base/context.tex
index 3d25b095d..7e19ccd06 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2009.11.21 11:45}
+\edef\contextversion{2009.11.23 11:49}
%D For those who want to use this:
diff --git a/tex/context/base/data-aux.lua b/tex/context/base/data-aux.lua
index 923c6bb91..26e1f551c 100644
--- a/tex/context/base/data-aux.lua
+++ b/tex/context/base/data-aux.lua
@@ -8,47 +8,47 @@ if not modules then modules = { } end modules ['data-aux'] = {
local find = string.find
-local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
function resolvers.update_script(oldname,newname) -- oldname -> own.name, not per se a suffix
local scriptpath = "scripts/context/lua"
newname = file.addsuffix(newname,"lua")
local oldscript = resolvers.clean_path(oldname)
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","to be replaced old script %s", oldscript)
end
local newscripts = resolvers.find_files(newname) or { }
if #newscripts == 0 then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","unable to locate new script")
end
else
for i=1,#newscripts do
local newscript = resolvers.clean_path(newscripts[i])
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","checking new script %s", newscript)
end
if oldscript == newscript then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","old and new script are the same")
end
elseif not find(newscript,scriptpath) then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","new script should come from %s",scriptpath)
end
elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","invalid new script name")
end
else
local newdata = io.loaddata(newscript)
if newdata then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","old script content replaced by new content")
end
io.savedata(oldscript,newdata)
break
- elseif trace_verbose then
+ elseif trace_locating then
logs.report("fileio","unable to load new script")
end
end
diff --git a/tex/context/base/data-con.lua b/tex/context/base/data-con.lua
index d35bc7ab1..f06dba5b5 100644
--- a/tex/context/base/data-con.lua
+++ b/tex/context/base/data-con.lua
@@ -11,8 +11,6 @@ local format, lower, gsub = string.format, string.lower, string.gsub
local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
local trace_containers = false trackers.register("resolvers.containers", function(v) trace_containers = v end)
local trace_storage = false trackers.register("resolvers.storage", function(v) trace_storage = v end)
-local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
--[[ldx--
<p>Once we found ourselves defining similar cache constructs
diff --git a/tex/context/base/data-res.lua b/tex/context/base/data-res.lua
index 1cb0b2dd9..3fc36dab2 100644
--- a/tex/context/base/data-res.lua
+++ b/tex/context/base/data-res.lua
@@ -37,11 +37,11 @@ local format, gsub, find, lower, upper, match, gmatch = string.format, string.gs
local concat, insert, sortedkeys = table.concat, table.insert, table.sortedkeys
local next, type = next, type
-local trace_locating, trace_detail, trace_verbose = false, false, false
+local trace_locating, trace_detail, trace_expansions = false, false, false
-trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
-trackers.register("resolvers.detail", function(v) trace_detail = v trackers.enable("resolvers.verbose,resolvers.detail") end)
+trackers.register("resolvers.locating", function(v) trace_locating = v end)
+trackers.register("resolvers.details", function(v) trace_detail = v end)
+trackers.register("resolvers.expansions", function(v) trace_expansions = v end) -- todo
if not resolvers then
resolvers = {
@@ -350,37 +350,43 @@ end
-- work that well; the parsing is ok, but dealing with the resulting
-- table is a pain because we need to work inside-out recursively
+local function do_first(a,b)
+ local t = { }
+ for s in gmatch(b,"[^,]+") do t[#t+1] = a .. s end
+ return "{" .. concat(t,",") .. "}"
+end
+
+local function do_second(a,b)
+ local t = { }
+ for s in gmatch(a,"[^,]+") do t[#t+1] = s .. b end
+ return "{" .. concat(t,",") .. "}"
+end
+
+local function do_both(a,b)
+ local t = { }
+ for sa in gmatch(a,"[^,]+") do
+ for sb in gmatch(b,"[^,]+") do
+ t[#t+1] = sa .. sb
+ end
+ end
+ return "{" .. concat(t,",") .. "}"
+end
+
+local function do_three(a,b,c)
+ return a .. b.. c
+end
+
local function splitpathexpr(str, t, validate)
-- no need for further optimization as it is only called a
- -- few times, we can use lpeg for the sub; we could move
- -- the local functions outside the body
+ -- few times, we can use lpeg for the sub
+ if trace_expansion then
+ logs.report("fileio","expanding variable '%s'",str)
+ end
t = t or { }
str = gsub(str,",}",",@}")
str = gsub(str,"{,","{@,")
-- str = "@" .. str .. "@"
local ok, done
- local function do_first(a,b)
- local t = { }
- for s in gmatch(b,"[^,]+") do t[#t+1] = a .. s end
- return "{" .. concat(t,",") .. "}"
- end
- local function do_second(a,b)
- local t = { }
- for s in gmatch(a,"[^,]+") do t[#t+1] = s .. b end
- return "{" .. concat(t,",") .. "}"
- end
- local function do_both(a,b)
- local t = { }
- for sa in gmatch(a,"[^,]+") do
- for sb in gmatch(b,"[^,]+") do
- t[#t+1] = sa .. sb
- end
- end
- return "{" .. concat(t,",") .. "}"
- end
- local function do_three(a,b,c)
- return a .. b.. c
- end
while true do
done = false
while true do
@@ -411,6 +417,11 @@ local function splitpathexpr(str, t, validate)
t[#t+1] = s
end
end
+ if trace_expansions then
+ for k,v in ipairs(t) do
+ logs.report("fileio","% 4i: %s",k,v)
+ end
+ end
return t
end
@@ -473,14 +484,14 @@ function resolvers.getownpath()
local olddir = lfs.currentdir()
if lfs.chdir(p) then
local pp = lfs.currentdir()
- if trace_verbose and p ~= pp then
- logs.report("fileio","following symlink %s to %s",p,pp)
+ if trace_locating and p ~= pp then
+ logs.report("fileio","following symlink '%s' to '%s'",p,pp)
end
resolvers.ownpath = pp
lfs.chdir(olddir)
else
- if trace_verbose then
- logs.report("fileio","unable to check path %s",p)
+ if trace_locating then
+ logs.report("fileio","unable to check path '%s'",p)
end
resolvers.ownpath = p
end
@@ -509,10 +520,10 @@ local function identify_own()
if resolvers.env('TEXMFCNF') == "" then os.env['TEXMFCNF'] = resolvers.cnfdefault end
if resolvers.env('TEXOS') == "" then os.env['TEXOS'] = resolvers.env('SELFAUTODIR') end
if resolvers.env('TEXROOT') == "" then os.env['TEXROOT'] = resolvers.env('SELFAUTOPARENT') end
- if trace_verbose then
+ if trace_locating then
for i=1,#own_places do
local v = own_places[i]
- logs.report("fileio","variable %s set to %s",v,resolvers.env(v) or "unknown")
+ logs.report("fileio","variable '%s' set to '%s'",v,resolvers.env(v) or "unknown")
end
end
identify_own = function() end
@@ -544,10 +555,8 @@ end
local function load_cnf_file(fname)
fname = resolvers.clean_path(fname)
local lname = file.replacesuffix(fname,'lua')
- local f = io.open(lname)
- if f then -- this will go
- f:close()
- local dname = file.dirname(fname)
+ if lfs.isfile(lname) then
+ local dname = file.dirname(fname) -- fname ?
if not instance.configuration[dname] then
resolvers.load_data(dname,'configuration',lname and file.basename(lname))
instance.order[#instance.order+1] = instance.configuration[dname]
@@ -555,8 +564,8 @@ local function load_cnf_file(fname)
else
f = io.open(fname)
if f then
- if trace_verbose then
- logs.report("fileio","loading %s", fname)
+ if trace_locating then
+ logs.report("fileio","loading configuration file %s", fname)
end
local line, data, n, k, v
local dname = file.dirname(fname)
@@ -590,8 +599,8 @@ local function load_cnf_file(fname)
end
end
f:close()
- elseif trace_verbose then
- logs.report("fileio","skipping %s", fname)
+ elseif trace_locating then
+ logs.report("fileio","skipping configuration file '%s'", fname)
end
end
end
@@ -618,8 +627,11 @@ function resolvers.load_cnf()
end
end
-- instance.cnffiles contain complete names now !
+ -- we still use a funny mix of cnf and new but soon
+ -- we will switch to lua exclusively as we only use
+ -- the file to collect the tree roots
if #instance.cnffiles == 0 then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","no cnf files found (TEXMFCNF may not be set/known)")
end
else
@@ -686,14 +698,14 @@ end
function resolvers.append_hash(type,tag,name)
if trace_locating then
- logs.report("fileio","= hash append: %s",tag)
+ logs.report("fileio","hash '%s' appended",tag)
end
insert(instance.hashes, { ['type']=type, ['tag']=tag, ['name']=name } )
end
function resolvers.prepend_hash(type,tag,name)
if trace_locating then
- logs.report("fileio","= hash prepend: %s",tag)
+ logs.report("fileio","hash '%s' prepended",tag)
end
insert(instance.hashes, 1, { ['type']=type, ['tag']=tag, ['name']=name } )
end
@@ -718,8 +730,8 @@ end
function resolvers.locatelists()
for _, path in ipairs(resolvers.clean_path_list('TEXMF')) do
- if trace_verbose then
- logs.report("fileio","locating list of %s",path)
+ if trace_locating then
+ logs.report("fileio","locating list of '%s'",path)
end
resolvers.locatedatabase(file.collapse_path(path))
end
@@ -732,11 +744,11 @@ end
function resolvers.locators.tex(specification)
if specification and specification ~= '' and lfs.isdir(specification) then
if trace_locating then
- logs.report("fileio",'! tex locator found: %s',specification)
+ logs.report("fileio","tex locator '%s' found",specification)
end
resolvers.append_hash('file',specification,filename)
elseif trace_locating then
- logs.report("fileio",'? tex locator not found: %s',specification)
+ logs.report("fileio","tex locator '%s' not found",specification)
end
end
@@ -779,8 +791,8 @@ local weird = lpeg.P(".")^1 + lpeg.anywhere(lpeg.S("~`!#$%^&*()={}[]:;\"\'||<>,?
function resolvers.generators.tex(specification)
local tag = specification
- if trace_verbose then
- logs.report("fileio","scanning path %s",specification)
+ if trace_locating then
+ logs.report("fileio","scanning path '%s'",specification)
end
instance.files[tag] = { }
local files = instance.files[tag]
@@ -829,7 +841,7 @@ function resolvers.generators.tex(specification)
end
end
action()
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","%s files found on %s directories with %s uppercase remappings",n,m,r)
end
end
@@ -859,7 +871,12 @@ local function split_kpse_path(str) -- beware, this can be either a path or a {s
else
found = checkedsplit(str,io.pathseparator)
end
- -- print(table.serialize(found))
+ if trace_expansions then
+ logs.report("fileio","splitting path specification '%s'",str)
+ for k,v in ipairs(found) do
+ logs.report("fileio","% 4i: %s",k,v)
+ end
+ end
cache[str] = found
end
return found
@@ -889,6 +906,7 @@ function resolvers.joinconfig()
end
end
end
+
function resolvers.split_path(str)
if type(str) == 'table' then
return str
@@ -896,6 +914,7 @@ function resolvers.split_path(str)
return split_kpse_path(str)
end
end
+
function resolvers.join_path(str)
if type(str) == 'table' then
return file.join_path(str)
@@ -984,12 +1003,18 @@ function resolvers.serialize(files)
return concat(t,"\n")
end
+local data_state = { }
+
+function resolvers.data_state()
+ return data_state or { }
+end
+
function resolvers.save_data(dataname, makename) -- untested without cache overload
for cachename, files in next, instance[dataname] do
local name = (makename or file.join)(cachename,dataname)
local luaname, lucname = name .. ".lua", name .. ".luc"
- if trace_verbose then
- logs.report("fileio","preparing %s for %s",dataname,cachename)
+ if trace_locating then
+ logs.report("fileio","preparing '%s' for '%s'",dataname,cachename)
end
for k, v in next, files do
if type(v) == "table" and #v == 1 then
@@ -1003,24 +1028,25 @@ function resolvers.save_data(dataname, makename) -- untested without cache overl
date = os.date("%Y-%m-%d"),
time = os.date("%H:%M:%S"),
content = files,
+ uuid = os.uuid(),
}
local ok = io.savedata(luaname,resolvers.serialize(data))
if ok then
- if trace_verbose then
- logs.report("fileio","%s saved in %s",dataname,luaname)
+ if trace_locating then
+ logs.report("fileio","'%s' saved in '%s'",dataname,luaname)
end
if utils.lua.compile(luaname,lucname,false,true) then -- no cleanup but strip
- if trace_verbose then
- logs.report("fileio","%s compiled to %s",dataname,lucname)
+ if trace_locating then
+ logs.report("fileio","'%s' compiled to '%s'",dataname,lucname)
end
else
- if trace_verbose then
- logs.report("fileio","compiling failed for %s, deleting file %s",dataname,lucname)
+ if trace_locating then
+ logs.report("fileio","compiling failed for '%s', deleting file '%s'",dataname,lucname)
end
os.remove(lucname)
end
- elseif trace_verbose then
- logs.report("fileio","unable to save %s in %s (access error)",dataname,luaname)
+ elseif trace_locating then
+ logs.report("fileio","unable to save '%s' in '%s' (access error)",dataname,luaname)
end
end
end
@@ -1032,19 +1058,20 @@ function resolvers.load_data(pathname,dataname,filename,makename) -- untested wi
if blob then
local data = blob()
if data and data.content and data.type == dataname and data.version == resolvers.cacheversion then
- if trace_verbose then
- logs.report("fileio","loading %s for %s from %s",dataname,pathname,filename)
+ data_state[#data_state+1] = data.uuid
+ if trace_locating then
+ logs.report("fileio","loading '%s' for '%s' from '%s'",dataname,pathname,filename)
end
instance[dataname][pathname] = data.content
else
- if trace_verbose then
- logs.report("fileio","skipping %s for %s from %s",dataname,pathname,filename)
+ if trace_locating then
+ logs.report("fileio","skipping '%s' for '%s' from '%s'",dataname,pathname,filename)
end
instance[dataname][pathname] = { }
instance.loaderror = true
end
- elseif trace_verbose then
- logs.report("fileio","skipping %s for %s from %s",dataname,pathname,filename)
+ elseif trace_locating then
+ logs.report("fileio","skipping '%s' for '%s' from '%s'",dataname,pathname,filename)
end
end
@@ -1070,8 +1097,8 @@ function resolvers.loadnewconfig()
if blob then
local data = blob()
if data then
- if trace_verbose then
- logs.report("fileio","loading configuration file %s",filename)
+ if trace_locating then
+ logs.report("fileio","loading configuration file '%s'",filename)
end
if true then
-- flatten to variable.progname
@@ -1092,14 +1119,14 @@ function resolvers.loadnewconfig()
instance['setup'][pathname] = data
end
else
- if trace_verbose then
- logs.report("fileio","skipping configuration file %s",filename)
+ if trace_locating then
+ logs.report("fileio","skipping configuration file '%s'",filename)
end
instance['setup'][pathname] = { }
instance.loaderror = true
end
- elseif trace_verbose then
- logs.report("fileio","skipping configuration file %s",filename)
+ elseif trace_locating then
+ logs.report("fileio","skipping configuration file '%s'",filename)
end
instance.order[#instance.order+1] = instance.setup[pathname]
if instance.loaderror then break end
@@ -1365,9 +1392,9 @@ function resolvers.isreadable.file(name)
local readable = lfs.isfile(name) -- brrr
if trace_detail then
if readable then
- logs.report("fileio","+ readable: %s",name)
+ logs.report("fileio","file '%s' is readable",name)
else
- logs.report("fileio","- readable: %s", name)
+ logs.report("fileio","file '%s' is not readable", name)
end
end
return readable
@@ -1383,7 +1410,7 @@ local function collect_files(names)
for k=1,#names do
local fname = names[k]
if trace_detail then
- logs.report("fileio","? blobpath asked: %s",fname)
+ logs.report("fileio","using blobpath '%s'",fname)
end
local bname = file.basename(fname)
local dname = file.dirname(fname)
@@ -1399,7 +1426,7 @@ local function collect_files(names)
local files = blobpath and instance.files[blobpath]
if files then
if trace_detail then
- logs.report("fileio",'? blobpath do: %s (%s)',blobpath,bname)
+ logs.report("fileio","processing blobpath '%s' (%s)",blobpath,bname)
end
local blobfile = files[bname]
if not blobfile then
@@ -1433,7 +1460,7 @@ local function collect_files(names)
end
end
elseif trace_locating then
- logs.report("fileio",'! blobpath no: %s (%s)',blobpath,bname)
+ logs.report("fileio","no blobpath '%s' (%s)",blobpath,bname)
end
end
end
@@ -1490,7 +1517,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
stamp = filename .. "--" .. instance.engine .. "--" .. instance.progname .. "--" .. instance.format
if instance.found[stamp] then
if trace_locating then
- logs.report("fileio",'! remembered: %s',filename)
+ logs.report("fileio","remembering file '%s'",filename)
end
return instance.found[stamp]
end
@@ -1498,7 +1525,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
if not dangerous[instance.format or "?"] then
if resolvers.isreadable.file(filename) then
if trace_detail then
- logs.report("fileio",'= found directly: %s',filename)
+ logs.report("fileio","file '%s' found directly",filename)
end
instance.found[stamp] = { filename }
return { filename }
@@ -1506,13 +1533,13 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
end
if find(filename,'%*') then
if trace_locating then
- logs.report("fileio",'! wildcard: %s', filename)
+ logs.report("fileio","checking wildcard '%s'", filename)
end
result = resolvers.find_wildcard_files(filename)
elseif file.is_qualified_path(filename) then
if resolvers.isreadable.file(filename) then
if trace_locating then
- logs.report("fileio",'! qualified: %s', filename)
+ logs.report("fileio","qualified name '%s'", filename)
end
result = { filename }
else
@@ -1522,7 +1549,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
forcedname = filename .. ".tex"
if resolvers.isreadable.file(forcedname) then
if trace_locating then
- logs.report("fileio",'! no suffix, forcing standard filetype: tex')
+ logs.report("fileio","no suffix, forcing standard filetype 'tex'")
end
result, ok = { forcedname }, true
end
@@ -1532,7 +1559,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
forcedname = filename .. "." .. s
if resolvers.isreadable.file(forcedname) then
if trace_locating then
- logs.report("fileio",'! no suffix, forcing format filetype: %s', s)
+ logs.report("fileio","no suffix, forcing format filetype '%s'", s)
end
result, ok = { forcedname }, true
break
@@ -1582,7 +1609,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
-- end
end
if not ok and trace_locating then
- logs.report("fileio",'? qualified: %s', filename)
+ logs.report("fileio","qualified name '%s'", filename)
end
end
else
@@ -1601,12 +1628,12 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
wantedfiles[#wantedfiles+1] = forcedname
filetype = resolvers.format_of_suffix(forcedname)
if trace_locating then
- logs.report("fileio",'! forcing filetype: %s',filetype)
+ logs.report("fileio","forcing filetype '%s'",filetype)
end
else
filetype = resolvers.format_of_suffix(filename)
if trace_locating then
- logs.report("fileio",'! using suffix based filetype: %s',filetype)
+ logs.report("fileio","using suffix based filetype '%s'",filetype)
end
end
else
@@ -1618,7 +1645,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
end
filetype = instance.format
if trace_locating then
- logs.report("fileio",'! using given filetype: %s',filetype)
+ logs.report("fileio","using given filetype '%s'",filetype)
end
end
local typespec = resolvers.variable_of_format(filetype)
@@ -1626,9 +1653,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
if not pathlist or #pathlist == 0 then
-- no pathlist, access check only / todo == wildcard
if trace_detail then
- logs.report("fileio",'? filename: %s',filename)
- logs.report("fileio",'? filetype: %s',filetype or '?')
- logs.report("fileio",'? wanted files: %s',concat(wantedfiles," | "))
+ logs.report("fileio","checking filename '%s', filetype '%s', wanted files '%s'",filename, filetype or '?',concat(wantedfiles," | "))
end
for k=1,#wantedfiles do
local fname = wantedfiles[k]
@@ -1651,7 +1676,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
local filelist = collect_files(wantedfiles)
local doscan, recurse
if trace_detail then
- logs.report("fileio",'? filename: %s',filename)
+ logs.report("fileio","checking filename '%s'",filename)
end
-- a bit messy ... esp the doscan setting here
for k=1,#pathlist do
@@ -1672,7 +1697,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
local f = fl[2]
if find(f,expr) then
if trace_detail then
- logs.report("fileio",'= found in hash: %s',f)
+ logs.report("fileio","file '%s' found in hash",f)
end
--- todo, test for readable
result[#result+1] = fl[3]
@@ -1694,7 +1719,7 @@ local function collect_instance_files(filename,collected) -- todo : plugin (scan
local fname = file.join(ppname,w)
if resolvers.isreadable.file(fname) then
if trace_detail then
- logs.report("fileio",'= found by scanning: %s',fname)
+ logs.report("fileio","found '%s' by scanning",fname)
end
result[#result+1] = fname
done = true
@@ -1867,9 +1892,9 @@ function resolvers.load(option)
statistics.starttiming(instance)
resolvers.resetconfig()
resolvers.identify_cnf()
- resolvers.load_lua()
+ resolvers.load_lua() -- will become the new method
resolvers.expand_variables()
- resolvers.load_cnf()
+ resolvers.load_cnf() -- will be skipped when we have a lua file
resolvers.expand_variables()
if option ~= "nofiles" then
resolvers.load_hash()
@@ -1881,14 +1906,14 @@ end
function resolvers.for_files(command, files, filetype, mustexist)
if files and #files > 0 then
local function report(str)
- if trace_verbose then
+ if trace_locating then
logs.report("fileio",str) -- has already verbose
else
print(str)
end
end
- if trace_verbose then
- report('')
+ if trace_locating then
+ report('') -- ?
end
for _, file in ipairs(files) do
local result = command(file,filetype,mustexist)
@@ -1954,7 +1979,7 @@ function resolvers.methodhandler(what, filename, filetype) -- ...
local scheme = specification.scheme
if resolvers[what][scheme] then
if trace_locating then
- logs.report("fileio",'= handler: %s -> %s -> %s',specification.original,what,table.sequenced(specification))
+ logs.report("fileio","handler '%s' -> '%s' -> '%s'",specification.original,what,table.sequenced(specification))
end
return resolvers[what][scheme](filename,filetype) -- todo: specification
else
diff --git a/tex/context/base/data-tex.lua b/tex/context/base/data-tex.lua
index 6407fea49..e0f6c8019 100644
--- a/tex/context/base/data-tex.lua
+++ b/tex/context/base/data-tex.lua
@@ -21,12 +21,12 @@ function finders.generic(tag,filename,filetype)
local foundname = resolvers.find_file(filename,filetype)
if foundname and foundname ~= "" then
if trace_locating then
- logs.report("fileio",'+ finder: %s, file: %s', tag,filename)
+ logs.report("fileio","%s finder: file '%s' found",tag,filename)
end
return foundname
else
if trace_locating then
- logs.report("fileio",'- finder: %s, file: %s', tag,filename)
+ logs.report("fileio","%s finder: unknown file '%s'",tag,filename)
end
return unpack(finders.notfound)
end
@@ -47,7 +47,7 @@ function openers.text_opener(filename,file_handle,tag)
local t = { }
if u > 0 then
if trace_locating then
- logs.report("fileio",'+ opener: %s (%s), file: %s',tag,unicode.utfname[u],filename)
+ logs.report("fileio","%s opener, file '%s' opened using method '%s'",tag,filename,unicode.utfname[u])
end
local l
if u > 2 then
@@ -64,7 +64,7 @@ function openers.text_opener(filename,file_handle,tag)
noflines = #l,
close = function()
if trace_locating then
- logs.report("fileio",'= closer: %s (%s), file: %s',tag,unicode.utfname[u],filename)
+ logs.report("fileio","%s closer, file '%s' closed",tag,filename)
end
logs.show_close(filename)
t = nil
@@ -99,7 +99,7 @@ function openers.text_opener(filename,file_handle,tag)
}
else
if trace_locating then
- logs.report("fileio",'+ opener: %s, file: %s',tag,filename)
+ logs.report("fileio","%s opener, file '%s' opened",tag,filename)
end
-- todo: file;name -> freeze / eerste regel scannen -> freeze
--~ local data = getlines:match(file_handle:read("*a"))
@@ -129,12 +129,12 @@ function openers.text_opener(filename,file_handle,tag)
end,
close = function()
if trace_locating then
- logs.report("fileio",'= closer: %s, file: %s',tag,filename)
+ logs.report("fileio","%s closer, file '%s' closed",tag,filename)
end
logs.show_close(filename)
file_handle:close()
t = nil
-collectgarbage("step")
+ collectgarbage("step") -- saves some memory
end,
handle = function()
return file_handle
@@ -152,12 +152,15 @@ function openers.generic(tag,filename)
if filename and filename ~= "" then
local f = io.open(filename,"r")
if f then
- logs.show_open(filename)
+ logs.show_open(filename) -- todo
+ if trace_locating then
+ logs.report("fileio","%s opener, file '%s' opened",tag,filename)
+ end
return openers.text_opener(filename,f,tag)
end
end
if trace_locating then
- logs.report("fileio",'- opener: %s, file: %s',tag,filename)
+ logs.report("fileio","%s opener, file '%s' not found",tag,filename)
end
return unpack(openers.notfound)
end
@@ -168,7 +171,7 @@ function loaders.generic(tag,filename)
if f then
logs.show_load(filename)
if trace_locating then
- logs.report("fileio",'+ loader: %s, file: %s',tag,filename)
+ logs.report("fileio","%s loader, file '%s' loaded",tag,filename)
end
local s = f:read("*a")
if garbagecollector and garbagecollector.check then garbagecollector.check(#s) end
@@ -179,7 +182,7 @@ function loaders.generic(tag,filename)
end
end
if trace_locating then
- logs.report("fileio",'- loader: %s, file: %s',tag,filename)
+ logs.report("fileio","%s loader, file '%s' not found",tag,filename)
end
return unpack(loaders.notfound)
end
diff --git a/tex/context/base/data-use.lua b/tex/context/base/data-use.lua
index a88f55c18..4e5aa553c 100644
--- a/tex/context/base/data-use.lua
+++ b/tex/context/base/data-use.lua
@@ -8,8 +8,7 @@ if not modules then modules = { } end modules ['data-use'] = {
local format, lower, gsub = string.format, string.lower, string.gsub
-local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
-- since we want to use the cache instead of the tree, we will now
-- reimplement the saver.
diff --git a/tex/context/base/data-zip.lua b/tex/context/base/data-zip.lua
index 97022c7d8..16d56ce8b 100644
--- a/tex/context/base/data-zip.lua
+++ b/tex/context/base/data-zip.lua
@@ -8,10 +8,13 @@ if not modules then modules = { } end modules ['data-zip'] = {
local format, find = string.format, string.find
-local trace_locating, trace_verbose = false, false
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
-trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-trackers.register("resolvers.locating", function(v) trace_locating = v trace_verbose = v end)
+-- zip:///oeps.zip?name=bla/bla.tex
+-- zip:///oeps.zip?tree=tex/texmf-local
+-- zip:///texmf.zip?tree=/tex/texmf
+-- zip:///texmf.zip?tree=/tex/texmf-local
+-- zip:///texmf-mine.zip?tree=/tex/texmf-projects
zip = zip or { }
zip.archives = zip.archives or { }
@@ -22,9 +25,6 @@ local locators, hashers, concatinators = resolvers.locators, resolvers.hashers,
local archives = zip.archives
--- zip:///oeps.zip?name=bla/bla.tex
--- zip:///oeps.zip?tree=tex/texmf-local
-
local function validzip(str) -- todo: use url splitter
if not find(str,"^zip://") then
return "zip:///" .. str
@@ -54,26 +54,22 @@ function zip.closearchive(name)
end
end
--- zip:///texmf.zip?tree=/tex/texmf
--- zip:///texmf.zip?tree=/tex/texmf-local
--- zip:///texmf-mine.zip?tree=/tex/texmf-projects
-
function locators.zip(specification) -- where is this used? startup zips (untested)
specification = resolvers.splitmethod(specification)
local zipfile = specification.path
local zfile = zip.openarchive(name) -- tricky, could be in to be initialized tree
if trace_locating then
if zfile then
- logs.report("fileio",'! zip locator, found: %s',specification.original)
+ logs.report("fileio","zip locator, archive '%s' found",specification.original)
else
- logs.report("fileio",'? zip locator, not found: %s',specification.original)
+ logs.report("fileio","zip locator, archive '%s' not found",specification.original)
end
end
end
function hashers.zip(tag,name)
- if trace_verbose then
- logs.report("fileio","loading zip file %s as %s",name,tag)
+ if trace_locating then
+ logs.report("fileio","loading zip file '%s' as '%s'",name,tag)
end
resolvers.usezipfile(format("%s?tree=%s",tag,name))
end
@@ -98,23 +94,25 @@ function finders.zip(specification,filetype)
local zfile = zip.openarchive(specification.path)
if zfile then
if trace_locating then
- logs.report("fileio",'! zip finder, path: %s',specification.path)
+ logs.report("fileio","zip finder, archive '%s' found",specification.path)
end
local dfile = zfile:open(q.name)
if dfile then
dfile = zfile:close()
if trace_locating then
- logs.report("fileio",'+ zip finder, name: %s',q.name)
+ logs.report("fileio","zip finder, file '%s' found",q.name)
end
return specification.original
+ elseif trace_locating then
+ logs.report("fileio","zip finder, file '%s' not found",q.name)
end
elseif trace_locating then
- logs.report("fileio",'? zip finder, path %s',specification.path)
+ logs.report("fileio","zip finder, unknown archive '%s'",specification.path)
end
end
end
if trace_locating then
- logs.report("fileio",'- zip finder, name: %s',filename)
+ logs.report("fileio","zip finder, '%s' not found",filename)
end
return unpack(finders.notfound)
end
@@ -127,20 +125,25 @@ function openers.zip(specification)
local zfile = zip.openarchive(zipspecification.path)
if zfile then
if trace_locating then
- logs.report("fileio",'+ zip starter, path: %s',zipspecification.path)
+ logs.report("fileio","zip opener, archive '%s' opened",zipspecification.path)
end
local dfile = zfile:open(q.name)
if dfile then
logs.show_open(specification)
+ if trace_locating then
+ logs.report("fileio","zip opener, file '%s' found",q.name)
+ end
return openers.text_opener(specification,dfile,'zip')
+ elseif trace_locating then
+ logs.report("fileio","zip opener, file '%s' not found",q.name)
end
elseif trace_locating then
- logs.report("fileio",'- zip starter, path %s',zipspecification.path)
+ logs.report("fileio","zip opener, unknown archive '%s'",zipspecification.path)
end
end
end
if trace_locating then
- logs.report("fileio",'- zip opener, name: %s',filename)
+ logs.report("fileio","zip opener, '%s' not found",filename)
end
return unpack(openers.notfound)
end
@@ -153,25 +156,27 @@ function loaders.zip(specification)
local zfile = zip.openarchive(specification.path)
if zfile then
if trace_locating then
- logs.report("fileio",'+ zip starter, path: %s',specification.path)
+ logs.report("fileio","zip loader, archive '%s' opened",specification.path)
end
local dfile = zfile:open(q.name)
if dfile then
logs.show_load(filename)
if trace_locating then
- logs.report("fileio",'+ zip loader, name: %s',filename)
+ logs.report("fileio","zip loader, file '%s' loaded",filename)
end
local s = dfile:read("*all")
dfile:close()
return true, s, #s
+ elseif trace_locating then
+ logs.report("fileio","zip loader, file '%s' not found",q.name)
end
elseif trace_locating then
- logs.report("fileio",'- zip starter, path: %s',specification.path)
+ logs.report("fileio","zip loader, unknown archive '%s'",specification.path)
end
end
end
if trace_locating then
- logs.report("fileio",'- zip loader, name: %s',filename)
+ logs.report("fileio","zip loader, '%s' not found",filename)
end
return unpack(openers.notfound)
end
@@ -181,21 +186,15 @@ end
function resolvers.usezipfile(zipname)
zipname = validzip(zipname)
- if trace_locating then
- logs.report("fileio",'! zip use, file: %s',zipname)
- end
local specification = resolvers.splitmethod(zipname)
local zipfile = specification.path
if zipfile and not zip.registeredfiles[zipname] then
local tree = url.query(specification.query).tree or ""
- if trace_locating then
- logs.report("fileio",'! zip register, file: %s',zipname)
- end
local z = zip.openarchive(zipfile)
if z then
local instance = resolvers.instance
if trace_locating then
- logs.report("fileio","= zipfile, registering: %s",zipname)
+ logs.report("fileio","zip registering, registering archive '%s'",zipname)
end
statistics.starttiming(instance)
resolvers.prepend_hash('zip',zipname,zipfile)
@@ -204,10 +203,10 @@ function resolvers.usezipfile(zipname)
instance.files[zipname] = resolvers.register_zip_file(z,tree or "")
statistics.stoptiming(instance)
elseif trace_locating then
- logs.report("fileio","? zipfile, unknown: %s",zipname)
+ logs.report("fileio","zip registering, unknown archive '%s'",zipname)
end
elseif trace_locating then
- logs.report("fileio",'! zip register, no file: %s',zipname)
+ logs.report("fileio","zip registering, '%s' not found",zipname)
end
end
@@ -219,7 +218,7 @@ function resolvers.register_zip_file(z,tree)
filter = format("^%s/(.+)/(.-)$",tree)
end
if trace_locating then
- logs.report("fileio",'= zip filter: %s',filter)
+ logs.report("fileio","zip registering, using filter '%s'",filter)
end
local register, n = resolvers.register_file, 0
for i in z:files() do
@@ -236,6 +235,6 @@ function resolvers.register_zip_file(z,tree)
n = n + 1
end
end
- logs.report("fileio",'= zip entries: %s',n)
+ logs.report("fileio","zip registering, %s files registered",n)
return files
end
diff --git a/tex/context/base/font-ext.lua b/tex/context/base/font-ext.lua
index c6168e030..66d3b8e78 100644
--- a/tex/context/base/font-ext.lua
+++ b/tex/context/base/font-ext.lua
@@ -9,6 +9,9 @@ if not modules then modules = { } end modules ['font-ext'] = {
local next, type, byte = next, type, string.byte
local gmatch = string.gmatch
+local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end)
+local trace_expansion = false trackers.register("fonts.expansion" , function(v) trace_expansion = v end)
+
--[[ldx--
<p>When we implement functions that deal with features, most of them
will depend of the font format. Here we define the few that are kind
@@ -237,12 +240,11 @@ function initializers.common.expansion(tfmdata,value)
if class then
local vector = vectors[class.vector]
if vector then
- tfmdata.stretch = (class.stretch or 0) * 10
- tfmdata.shrink = (class.shrink or 0) * 10
- tfmdata.step = (class.step or 0) * 10
- local factor = class.factor or 1
---~ logs.report("fonts","define expansion %s, vector: %s, stretch: %s, shrink: %s, step: %s, factor: %s",value,class.vector,tfmdata.stretch,tfmdata.shrink,tfmdata.step,factor)
- tfmdata.auto_expand = true
+ local stretch, shrink, step, factor = class.stretch or 0, class.shrink or 0, class.step or 0, class.factor or 1
+ if trace_expansion then
+ logs.report("fonts","set expansion class %s, vector: %s, factor: %s, stretch: %s, shrink: %s, step: %s",value,class.vector,factor,stretch,shrink,step)
+ end
+ tfmdata.stretch, tfmdata.shrink, tfmdata.step, tfmdata.auto_expand = stretch * 10, shrink * 10, step * 10, true
local data = characters.data
for i, chr in next, tfmdata.characters do
local v = vector[i]
@@ -265,7 +267,11 @@ function initializers.common.expansion(tfmdata,value)
chr.expansion_factor = factor
end
end
+ elseif trace_expansion then
+ logs.report("fonts","unknown expansion vector '%s' in class '%s",class.vector,value)
end
+ elseif trace_expansion then
+ logs.report("fonts","unknown expansion class '%s'",value)
end
end
end
@@ -399,13 +405,15 @@ vectors['quality'] = table.merge( {},
function initializers.common.protrusion(tfmdata,value)
if value then
local class = classes[value]
---~ logs.report("fonts","define protrusion %s",table.serialize(class))
if class then
local vector = vectors[class.vector]
if vector then
local factor = class.factor or 1
local left = class.left or 1
local right = class.right or 1
+ if trace_protrusion then
+ logs.report("fonts","set protrusion class %s, vector: %s, factor: %s, left: %s, right: %s",value,class.vector,factor.left,right)
+ end
local data = characters.data
local emwidth = tfmdata.parameters.quad
tfmdata.auto_protrude = true
@@ -434,7 +442,11 @@ function initializers.common.protrusion(tfmdata,value)
if pl and pl ~= 0 then chr.left_protruding = left *pl*factor end
if pr and pr ~= 0 then chr.right_protruding = right*pr*factor end
end
+ elseif trace_protrusion then
+ logs.report("fonts","unknown protrusion vector '%s' in class '%s",class.vector,value)
end
+ elseif trace_protrusion then
+ logs.report("fonts","unknown protrusion class '%s'",value)
end
end
end
diff --git a/tex/context/base/luat-env.lua b/tex/context/base/luat-env.lua
index 9f395e862..43e3c272e 100644
--- a/tex/context/base/luat-env.lua
+++ b/tex/context/base/luat-env.lua
@@ -12,8 +12,7 @@ if not modules then modules = { } end modules ['luat-env'] = {
-- evolved before bytecode arrays were available and so a lot of
-- code has disappeared already.
-local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local format = string.format
@@ -204,12 +203,12 @@ function environment.luafilechunk(filename) -- used for loading lua bytecode in
filename = file.replacesuffix(filename, "lua")
local fullname = environment.luafile(filename)
if fullname and fullname ~= "" then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","loading file %s", fullname)
end
return environment.loadedluacode(fullname)
else
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","unknown file %s", filename)
end
return nil
@@ -229,7 +228,7 @@ function environment.loadluafile(filename, version)
-- when not overloaded by explicit suffix we look for a luc file first
local fullname = (lucname and environment.luafile(lucname)) or ""
if fullname ~= "" then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","loading %s", fullname)
end
chunk = loadfile(fullname) -- this way we don't need a file exists check
@@ -247,7 +246,7 @@ function environment.loadluafile(filename, version)
if v == version then
return true
else
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","version mismatch for %s: lua=%s, luc=%s", filename, v, version)
end
environment.loadluafile(filename)
@@ -258,12 +257,12 @@ function environment.loadluafile(filename, version)
end
fullname = (luaname and environment.luafile(luaname)) or ""
if fullname ~= "" then
- if trace_verbose then
+ if trace_locating then
logs.report("fileio","loading %s", fullname)
end
chunk = loadfile(fullname) -- this way we don't need a file exists check
if not chunk then
- if verbose then
+ if trace_locating then
logs.report("fileio","unknown file %s", filename)
end
else
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 8600fd8f3..9105ce00a 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -610,6 +610,7 @@
\definesystemvariable {ui} % UItvoer
\definesystemvariable {ur} % URl
\definesystemvariable {up} % Utility Program
+\definesystemvariable {va} % VspAce
\definesystemvariable {ve} % VErsie
\definesystemvariable {vn} % VoetNoten
\definesystemvariable {vs} % VSpacing
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index 5aca501be..b6594476a 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -1731,7 +1731,41 @@
\let\defineblank \definevspacing
\let\defineblankmethod\definevspacingamount
-% moved from page-lin
+%D The following command is for Wolfgang. It has to be used with
+%D care as it does {\em not} work in tandem with the other spacing
+%D commands.
+
+\def\definevspace
+ {\dotripleempty\dodefinevspace}
+
+\def\dodefinevspace[#1][#2][#3]%
+ {\ifthirdargument
+ \setvalue{\??va#1:#2}{#3}%
+ \else
+ \setvalue{\??va:#1}{#2}%
+ \fi}
+
+\unexpanded\def\vspace
+ {\dodoubleempty\dovspace}
+
+\def\dovspace[#1][#2]%
+ {\ifsecondargument
+ \dodovspace[#1][#2]%
+ \else\iffirstargument
+ \vspace[][#1]%
+ \else
+ \vspace[][\s!default]%
+ \fi\fi}
+
+\def\dodovspace[#1][#2]%
+ {\par
+ \ifvmode
+ \removelastskip
+ \vskip\vspaceamount{#1}{#2}\relax
+ \fi}
+
+\def\vspaceamount#1#2%
+ {\executeifdefined{\??va#1:#2}{\executeifdefined{\??va:#2}\zeropoint}}
%D When spacing is active we need to handle commands in
%D a special way:
diff --git a/tex/context/base/trac-log.lua b/tex/context/base/trac-log.lua
index ddcea55ef..2db6278ec 100644
--- a/tex/context/base/trac-log.lua
+++ b/tex/context/base/trac-log.lua
@@ -207,7 +207,7 @@ end
function logs.setprogram(_name_,_banner_,_verbose_)
name, banner = _name_, _banner_
if _verbose_ then
- trackers.enable("resolvers.verbose")
+ trackers.enable("resolvers.locating")
end
logs.set_method("tex")
logs.report = report -- also used in libraries
@@ -220,9 +220,9 @@ end
function logs.setverbose(what)
if what then
- trackers.enable("resolvers.verbose")
+ trackers.enable("resolvers.locating")
else
- trackers.disable("resolvers.verbose")
+ trackers.disable("resolvers.locating")
end
logs.verbose = what or false
end
diff --git a/tex/context/base/trac-tra.lua b/tex/context/base/trac-tra.lua
index 3a8f14074..e4cbd1e01 100644
--- a/tex/context/base/trac-tra.lua
+++ b/tex/context/base/trac-tra.lua
@@ -288,89 +288,3 @@ function directives.disable(...)
commands.writestatus("directives","disabling: %s",concat({...}," "))
d(...)
end
-
---~ -- old code:
---
---~ trackers = trackers or { }
---~ local data, done = { }, { }
---~ local function set(what,value)
---~ if type(what) == "string" then
---~ what = aux.settings_to_array(what) -- inefficient but ok
---~ end
---~ for i=1,#what do
---~ local w = what[i]
---~ for d, f in next, data do
---~ if done[d] then
---~ -- prevent recursion due to wildcards
---~ elseif find(d,w) then
---~ done[d] = true
---~ for i=1,#f do
---~ f[i](value)
---~ end
---~ end
---~ end
---~ end
---~ end
---~ local function reset()
---~ for d, f in next, data do
---~ for i=1,#f do
---~ f[i](false)
---~ end
---~ end
---~ end
---~ local function enable(what)
---~ set(what,true)
---~ end
---~ local function disable(what)
---~ if not what or what == "" then
---~ done = { }
---~ reset()
---~ else
---~ set(what,false)
---~ end
---~ end
---~ function trackers.register(what,...)
---~ what = lower(what)
---~ local w = data[what]
---~ if not w then
---~ w = { }
---~ data[what] = w
---~ end
---~ for _, fnc in next, { ... } do
---~ local typ = type(fnc)
---~ if typ == "function" then
---~ w[#w+1] = fnc
---~ elseif typ == "string" then
---~ w[#w+1] = function(value) set(fnc,value,nesting) end
---~ end
---~ end
---~ end
---~ function trackers.enable(what)
---~ local e = trackers.enable
---~ trackers.enable, done = enable, { }
---~ enable(string.simpleesc(what))
---~ trackers.enable, done = e, { }
---~ end
---~ function trackers.disable(what)
---~ local e = trackers.disable
---~ trackers.disable, done = disable, { }
---~ disable(string.simpleesc(what))
---~ trackers.disable, done = e, { }
---~ end
---~ function trackers.reset()
---~ done = { }
---~ reset()
---~ end
---~ function trackers.list() -- pattern
---~ local list = table.sortedkeys(data)
---~ local user, system = { }, { }
---~ for l=1,#list do
---~ local what = list[l]
---~ if find(what,"^%*") then
---~ system[#system+1] = what
---~ else
---~ user[#user+1] = what
---~ end
---~ end
---~ return user, system
---~ end
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index f18b9f83d..d982247eb 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 : 11/21/09 11:50:03
+-- merge date : 11/23/09 11:55:47
do -- begin closure to overcome local limits and interference
@@ -1948,8 +1948,6 @@ local format, lower, gsub = string.format, string.lower, string.gsub
local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
local trace_containers = false trackers.register("resolvers.containers", function(v) trace_containers = v end)
local trace_storage = false trackers.register("resolvers.storage", function(v) trace_storage = v end)
-local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
-local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
--[[ldx--
<p>Once we found ourselves defining similar cache constructs