summaryrefslogtreecommitdiff
path: root/tex/context/base/core-job.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2009-12-22 13:15:00 +0100
committerHans Hagen <pragma@wxs.nl>2009-12-22 13:15:00 +0100
commit608f6a9dca87c2073c2a74c7eb961ec3077f9f76 (patch)
treea31b00d3cdd021407c4731c23cff31ebfa6fb4e7 /tex/context/base/core-job.lua
parentfde411dd869e9b19c98ef73c38fea591a468262f (diff)
downloadcontext-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.lua29
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