diff options
author | Hans Hagen <pragma@wxs.nl> | 2009-12-22 13:15:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2009-12-22 13:15:00 +0100 |
commit | 608f6a9dca87c2073c2a74c7eb961ec3077f9f76 (patch) | |
tree | a31b00d3cdd021407c4731c23cff31ebfa6fb4e7 /tex/context/base/core-job.lua | |
parent | fde411dd869e9b19c98ef73c38fea591a468262f (diff) | |
download | context-608f6a9dca87c2073c2a74c7eb961ec3077f9f76.tar.gz |
beta 2009.12.22 13:15
Diffstat (limited to 'tex/context/base/core-job.lua')
-rw-r--r-- | tex/context/base/core-job.lua | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/tex/context/base/core-job.lua b/tex/context/base/core-job.lua index a2ce27ef7..df334573a 100644 --- a/tex/context/base/core-job.lua +++ b/tex/context/base/core-job.lua @@ -6,25 +6,30 @@ if not modules then modules = { } end modules ['core-job'] = { license = "see context related readme files" } -local texsprint, texprint = tex.sprint, tex.print +local texsprint, texprint, texwrite = tex.sprint, tex.print, tex.write local ctxcatcodes, texcatcodes = tex.ctxcatcodes, tex.texcatcodes local lower, format, find, gmatch = string.lower, string.format, string.find, string.gmatch local concat = table.concat -- main code -function resolvers.findctxfile(name,maxreadlevel) - local function exists(n) +resolvers.maxreadlevel = 3 + +directives.register("resolvers.maxreadlevel", function(v) resolvers.maxreadlevel = tonumber(v) or resolvers.maxreadlevel end) + +local function exists(n) + if io.exists(n) then + return n + else + n = file.addsuffix(n,'tex') if io.exists(n) then return n - else - n = file.addsuffix(n,'tex') - if io.exists(n) then - return n - end end - return nil end + return nil +end + +function resolvers.findctxfile(name,maxreadlevel) if file.is_qualified_path(name) then return name else @@ -34,7 +39,7 @@ function resolvers.findctxfile(name,maxreadlevel) if found then return found else - for i=1,maxreadlevel or 0 do + for i=1,maxreadlevel or resolvers.maxreadlevel or 0 do n = "../" .. n found = exists(n) if found then @@ -46,6 +51,10 @@ function resolvers.findctxfile(name,maxreadlevel) end end +function commands.maxreadlevel() + texwrite(resolvers.maxreadlevel) +end + function commands.processfile(name,maxreadlevel) name = resolvers.findctxfile(name,maxreadlevel) if name ~= "" then |