summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-new.mkiv13
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-otf.lua7
-rw-r--r--tex/context/base/luat-inp.lua227
-rw-r--r--tex/context/base/luat-tmp.lua5
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-fr.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
13 files changed, 71 insertions, 199 deletions
diff --git a/tex/context/base/colo-new.mkiv b/tex/context/base/colo-new.mkiv
index 38cbd7339..296ddad3a 100644
--- a/tex/context/base/colo-new.mkiv
+++ b/tex/context/base/colo-new.mkiv
@@ -108,10 +108,17 @@
\let\normaldoactivatecolor\doactivatecolor
+% if it becomes a bottleneck we can set up a more complex system with one shared
+% attribute for colorspace, color and transparency
+
\def\doactivatecolor
- {\ctxlua{colors.enabled=true}%
- \let\doactivatecolor\normaldoactivatecolor
- \doactivatecolor}
+ {\ifproductionrun
+ \ctxlua{colors.enabled=true transparencies.enabled=true}% not that efficient but at least robust
+ \let\doactivatecolor\normaldoactivatecolor
+ \expandafter\doactivatecolor
+ \else
+ \expandafter\normaldoactivatecolor
+ \fi}
\def\deactivatecolor
{\doresetattribute\s!color
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 1136aee54..5cc33d0f2 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{2007.12.17 14:54}
+\newcontextversion{2007.12.18 19:11}
%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 4992ab981..938eb9801 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -42,7 +42,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2007.12.17 14:54}
+\edef\contextversion{2007.12.18 19:11}
%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 26932109d..8e0f47624 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -1037,13 +1037,14 @@ function fonts.otf.cidmap(registry,ordering,supplement)
local template = "%s-%s-%s.cidmap"
local filename = string.format(template,registry,ordering,supplement)
local supplement = tonumber(supplement)
- if not fonts.otf.cidmaps[filename] then
+ local cidmap = fonts.otf.cidmaps[filename]
+ if not cidmap then
for i=supplement,0,-1 do
logs.report("load otf",string.format("checking cidmap, registry: %s, ordering: %s, supplement: %s",registry,ordering,i))
filename = string.format(template,registry,ordering,i)
local fullname = input.find_file(texmf.instance,filename,'cid') or ""
if fullname ~= "" then
- local cidmap = fonts.otf.load_cidmap(fullname)
+ cidmap = fonts.otf.load_cidmap(fullname)
if cidmap then
logs.report("load otf",string.format("using cidmap file %s",filename))
fonts.otf.cidmaps[filename] = cidmap
@@ -1058,7 +1059,7 @@ function fonts.otf.cidmap(registry,ordering,supplement)
end
end
end
- return nil
+ return cidmap
end
--~ ["cidinfo"]={
diff --git a/tex/context/base/luat-inp.lua b/tex/context/base/luat-inp.lua
index ec8d04976..167ec145f 100644
--- a/tex/context/base/luat-inp.lua
+++ b/tex/context/base/luat-inp.lua
@@ -328,6 +328,7 @@ end
function input.identify_cnf(instance)
if #instance.cnffiles == 0 then
if instance.treepath ~= "" then
+ -- this is a special purpose branch, not really used
if instance.rootpath ~= "" then
local t = instance.treepath:splitchr(',')
for k,v in ipairs(t) do
@@ -340,6 +341,7 @@ function input.identify_cnf(instance)
instance.environment['TEXMFCNF'] = file.join(t[1] or '.','texmf/web2c')
end
if instance.rootpath ~= "" then
+ -- this assumes a single path, maybe do an expanded split here too
instance.environment['TEXMFCNF'] = file.join(instance.rootpath,'texmf/web2c')
instance.environment['SELFAUTOPARENT'] = instance.rootpath
end
@@ -367,9 +369,9 @@ function input.load_cnf(instance)
else
instance.rootpath = instance.cnffiles[1]
for k,fname in ipairs(instance.cnffiles) do
- instance.cnffiles[k] = fname:gsub("\\",'/')
+ instance.cnffiles[k] = fname:gsub("\\",'/') -- needed?
end
- for i = 1, 3 do
+ for i=1,3 do
instance.rootpath = file.dirname(instance.rootpath)
end
if instance.lsrmode then
@@ -547,22 +549,33 @@ function input.locatedatabase(instance,specification)
return input.methodhandler('locators', instance, specification)
end
+--~ poor mans solution, from before we had lfs.isdir
+--~
+--~ function input.locators.tex(instance,specification)
+--~ if specification and specification ~= '' then
+--~ local files = {
+--~ file.join(specification,'files'..input.lucsuffix),
+--~ file.join(specification,'files'..input.luasuffix),
+--~ file.join(specification,input.lsrname)
+--~ }
+--~ for _, filename in pairs(files) do
+--~ local f = io.open(filename)
+--~ if f then
+--~ input.logger('! tex locator', specification..' found')
+--~ input.aux.append_hash(instance,'file',specification,filename)
+--~ f:close()
+--~ return
+--~ end
+--~ end
+--~ input.logger('? tex locator', specification..' not found')
+--~ end
+--~ end
+
function input.locators.tex(instance,specification)
- if specification and specification ~= '' then
- local files = {
- file.join(specification,'files'..input.lucsuffix),
- file.join(specification,'files'..input.luasuffix),
- file.join(specification,input.lsrname)
- }
- for _, filename in pairs(files) do
- local f = io.open(filename)
- if f then
- input.logger('! tex locator', specification..' found')
- input.aux.append_hash(instance,'file',specification,filename)
- f:close()
- return
- end
- end
+ if specification and specification ~= '' and lfs.isdir(specification) then
+ input.logger('! tex locator', specification..' found')
+ input.aux.append_hash(instance,'file',specification,filename)
+ else
input.logger('? tex locator', specification..' not found')
end
end
@@ -749,14 +762,14 @@ function input.join_path(str)
return str
end
end
-function input.splitexpansions(instance)
- for k,v in pairs(instance.expansions) do
- local t = file.split_path(v)
- if #t > 1 then
- instance.expansions[k] = t
- end
- end
-end
+--~ function input.splitexpansions(instance)
+--~ for k,v in pairs(instance.expansions) do
+--~ local t = file.split_path(v)
+--~ if #t > 1 then
+--~ instance.expansions[k] = t
+--~ end
+--~ end
+--~ end
function input.splitexpansions(instance)
for k,v in pairs(instance.expansions) do
local t, h = { }, { }
@@ -916,7 +929,8 @@ function input.expand_variables(instance)
for k,v in pairs(instance.expansions) do
instance.expansions[k] = v:gsub("\\", '/')
end
- input.splitexpansions(instance)
+ -- ##########
+ --~ input.splitexpansions(instance) -- better not, fuzzy
end
function input.aux.expand_vars(instance,lst) -- simple vars
@@ -1136,80 +1150,6 @@ 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
---~ function input.aux.splitpathexpr(str, t, validate)
---~ -- no need for optimization, only called a few times, we can use lpeg for the sub
---~ t = t or { }
---~ while true do
---~ local done = false
---~ while true do
---~ ok = false
---~ str = str:gsub("([^{},]+){([^{}]-)}", function(a,b)
---~ local t = { }
---~ for s in b:gmatch("([^,]+)") do
---~ t[#t+1] = a .. s
---~ end
---~ ok, done = true, true
---~ return "{" .. table.concat(t,",") .. "}"
---~ end)
---~ if not ok then break end
---~ end
---~ while true do
---~ ok = false
---~ str = str:gsub("{([^{}]-)}([^{},]+)", function(a,b)
---~ local t = { }
---~ for s in a:gmatch("([^,]+)") do
---~ t[#t+1] = s .. b
---~ end
---~ ok, done = true, true
---~ return "{" .. table.concat(t,",") .. "}"
---~ end)
---~ if not ok then break end
---~ end
---~ while true do
---~ ok = false
---~ str = str:gsub("([,{]){([^{}]+)}([,}])", function(a,b,c)
---~ ok, done = true, true
---~ return a .. b .. c
---~ end)
---~ if not ok then break end
---~ end
---~ if not done then break end
---~ end
---~ while true do
---~ ok = false
---~ str = str:gsub("{([^{}]-)}{([^{}]-)}", function(a,b)
---~ local t = { }
---~ for sa in a:gmatch("([^,]+)") do
---~ for sb in b:gmatch("([^,]+)") do
---~ t[#t+1] = sa .. sb
---~ end
---~ end
---~ ok = true
---~ return "{" .. table.concat(t,",") .. "}"
---~ end)
---~ if not ok then break end
---~ end
---~ while true do
---~ ok = false
---~ str = str:gsub("{([^{}]-)}", function(a)
---~ ok = true
---~ return a
---~ end)
---~ if not ok then break end
---~ end
---~ if validate then
---~ for s in str:gmatch("([^,]+)") do
---~ s = validate(s)
---~ if s then t[#t+1] = s end
---~ end
---~ else
---~ for s in str:gmatch("([^,]+)") do
---~ t[#t+1] = s
---~ end
---~ end
---~ return t
---~ end
-
function input.aux.splitpathexpr(str, t, validate)
-- no need for optimization, only called a few times, we can use lpeg for the sub
t = t or { }
@@ -1281,7 +1221,7 @@ function input.aux.splitpathexpr(str, t, validate)
return t
end
-function input.aux.expanded_path(instance,pathlist)
+function input.aux.expanded_path(instance,pathlist) -- maybe not a list, just a path
-- a previous version fed back into pathlist
local newlist, ok = { }, false
for _,v in ipairs(pathlist) do
@@ -1308,87 +1248,6 @@ function input.aux.expanded_path(instance,pathlist)
return newlist
end
---~ old one, imperfect and not that efficient
---~
---~ function input.aux.expanded_path(instance,pathlist)
---~ -- a previous version fed back into pathlist
---~ local i, n, oldlist, newlist, ok = 0, 0, { }, { }, false
---~ for _,v in ipairs(pathlist) do
---~ if v:find("[{}]") then
---~ ok = true
---~ break
---~ end
---~ end
---~ if ok then
---~ for _,v in ipairs(pathlist) do
---~ oldlist[#oldlist+1] = (v:gsub("([\{\}])", function(p)
---~ if p == "{" then
---~ i = i + 1
---~ if i > n then n = i end
---~ return "<" .. (i-1) .. ">"
---~ else
---~ i = i - 1
---~ return "</" .. i .. ">"
---~ end
---~ end))
---~ end
---~ for i=1,n do
---~ while true do
---~ local more = false
---~ local pattern = "^(.-)<"..(n-i)..">(.-)</"..(n-i)..">(.-)$"
---~ local t = { }
---~ for _,v in ipairs(oldlist) do
---~ local pre, mid, post = v:match(pattern)
---~ if pre and mid and post then
---~ more = true
---~ for vv in string.gmatch(mid..',',"(.-),") do -- (mid, "([^,]+)")
---~ if vv == '.' then
---~ t[#t+1] = pre..post
---~ else
---~ t[#t+1] = pre..vv..post
---~ end
---~ end
---~ else
---~ t[#t+1] = v
---~ end
---~ end
---~ oldlist = t
---~ if not more then break end
---~ end
---~ end
---~ if true then
---~ -- many dups are possible due to messy resolve / order can be messed up too, brr !
---~ local ok = { }
---~ for _,o in ipairs(oldlist) do
---~ for v in o:gmatch("([^,]+)") do
---~ if not ok[v] then
---~ ok[v] = true
---~ v = file.collapse_path(v)
---~ if v ~= "" and not v:find(instance.dummy_path_expr) then newlist[#newlist+1] = v end
---~ end
---~ end
---~ end
---~ else
---~ for _,v in ipairs(oldlist) do
---~ v = file.collapse_path(v)
---~ if v ~= "" and not v:find(instance.dummy_path_expr) then newlist[#newlist+1] = v end
---~ end
---~ end
---~ else
---~ for _,v in ipairs(pathlist) do
---~ for vv in string.gmatch(v..',',"(.-),") do
---~ vv = file.collapse_path(v)
---~ if vv ~= "" then newlist[#newlist+1] = vv end
---~ end
---~ end
---~ end
---~ return newlist
---~ end
-
---~ function input.is_readable(name) -- brrr, get rid of this
---~ return name:find("^zip##") or file.is_readable(name)
---~ end
-
input.is_readable = { }
function input.aux.is_readable(readable, name)
@@ -2166,3 +2025,7 @@ function input.update_script(instance,oldname,newname) -- oldname -> own.name, n
end
end
end
+
+
+--~ print(table.serialize(input.aux.splitpathexpr("/usr/share/texmf-{texlive,tetex}", {})))
+
diff --git a/tex/context/base/luat-tmp.lua b/tex/context/base/luat-tmp.lua
index 611e1f37a..438378b41 100644
--- a/tex/context/base/luat-tmp.lua
+++ b/tex/context/base/luat-tmp.lua
@@ -52,7 +52,8 @@ elseif lfs.attributes(caches.temp,"mode") ~= "directory" then
end
function caches.configpath(instance)
- return input.expand_var(instance,"TEXMFCNF")
+ return table.concat(instance.cnffiles,";")
+--~ return input.expand_var(instance,"TEXMFCNF")
end
function caches.treehash(instance)
@@ -67,7 +68,7 @@ end
function caches.setpath(instance,...)
if not caches.path then
if lfs and instance then
- for _,v in pairs(caches.paths) do
+ for _,v in pairs(caches.paths) do
for _,vv in pairs(input.expanded_path_list(instance,v)) do
if lfs.isdir(vv) then
caches.path = vv
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index f5254e44e..a426bac95 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index a68dcc203..108de8230 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index f015b51eb..9462d5205 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index ec8bef3ca..c2b1fa2eb 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 246bfddbf..cc225ca1e 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 729027cc5..9ceaa0b23 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index c9fa172e5..18ee23dbe 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2007.12.17 14:54">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2007.12.18 19:11">
<cd:variables>
<cd:variable name="lesshyphenation" value="lesshyphenation"/>