diff options
Diffstat (limited to 'tex')
-rw-r--r-- | tex/context/base/colo-new.mkiv | 13 | ||||
-rw-r--r-- | tex/context/base/cont-new.tex | 2 | ||||
-rw-r--r-- | tex/context/base/context.tex | 2 | ||||
-rw-r--r-- | tex/context/base/font-otf.lua | 7 | ||||
-rw-r--r-- | tex/context/base/luat-inp.lua | 227 | ||||
-rw-r--r-- | tex/context/base/luat-tmp.lua | 5 | ||||
-rw-r--r-- | tex/context/interface/keys-cz.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-de.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-en.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-fr.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-it.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-nl.xml | 2 | ||||
-rw-r--r-- | tex/context/interface/keys-ro.xml | 2 |
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"/> |