From 482d1314048617c18cf896c62c01b47d9d303a88 Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Tue, 28 Jun 2011 10:40:12 +0300
Subject: beta 2011.06.28 09:16

---
 scripts/context/lua/mtxrun.lua         | 19 ++++++++++++++-----
 scripts/context/stubs/mswin/mtxrun.lua | 19 ++++++++++++++-----
 scripts/context/stubs/unix/mtxrun      | 19 ++++++++++++++-----
 3 files changed, 42 insertions(+), 15 deletions(-)

(limited to 'scripts')

diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 2ec73e932..bc6711e93 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -11467,7 +11467,7 @@ local     instance = resolvers.instance or nil -- the current one (fast access)
 function resolvers.setenv(key,value,raw)
     if instance then
         -- this one will be consulted first when we stay inside
-        -- the current environment
+        -- the current environment (prefixes are not resolved here)
         instance.environment[key] = value
         -- we feed back into the environment, and as this is used
         -- by other applications (via os.execute) we need to make
@@ -12988,6 +12988,8 @@ local cleanpath, findgivenfile, expansion = resolvers.cleanpath, resolvers.findg
 local getenv = resolvers.getenv -- we can probably also use resolvers.expansion
 local P, Cs, lpegmatch = lpeg.P, lpeg.Cs, lpeg.match
 
+-- getenv = function(...) return resolvers.getenv(...) end -- needs checking (definitions changes later on)
+
 prefixes.environment = function(str)
     return cleanpath(expansion(str))
 end
@@ -14255,7 +14257,13 @@ function resolvers.load_tree(tree,resolve)
         -- Beware, we need to obey the relocatable autoparent so we
         -- set TEXMFCNF to its raw value. This is somewhat tricky when
         -- we run a mkii job from within. Therefore, in mtxrun, there
-        -- is a resolve applied when we're in mkii/kpse mode.
+        -- is a resolve applied when we're in mkii/kpse mode or when
+        -- --resolve is passed to mtxrun. Maybe we should also set the
+        -- local AUTOPARENT etc. although these are alwasy set new.
+
+        if resolve then
+            resolvers.luacnfspec = resolvers.resolve(resolvers.luacnfspec)
+        end
 
         setenv('SELFAUTOPARENT', newroot)
         setenv('SELFAUTODIR',    newtree)
@@ -14263,11 +14271,12 @@ function resolvers.load_tree(tree,resolve)
         setenv('TEXROOT',        newroot)
         setenv('TEXOS',          texos)
         setenv('TEXMFOS',        texmfos)
-        setenv('TEXMFCNF',       resolvers.luacnfspec, not resolve)
-        setenv("PATH",           newpath .. io.pathseparator .. getenv("PATH"))
+        setenv('TEXMFCNF',       resolvers.luacnfspec,true) -- already resolved
+        setenv('PATH',           newpath .. io.pathseparator .. getenv('PATH'))
 
         report_tds("changing from root '%s' to '%s'",oldroot,newroot)
-        report_tds("prepending '%s' to binary path",newpath)
+        report_tds("prepending '%s' to PATH",newpath)
+        report_tds("setting TEXMFCNF to '%s'",resolvers.luacnfspec)
         report_tds()
     end
 end
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 2ec73e932..bc6711e93 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -11467,7 +11467,7 @@ local     instance = resolvers.instance or nil -- the current one (fast access)
 function resolvers.setenv(key,value,raw)
     if instance then
         -- this one will be consulted first when we stay inside
-        -- the current environment
+        -- the current environment (prefixes are not resolved here)
         instance.environment[key] = value
         -- we feed back into the environment, and as this is used
         -- by other applications (via os.execute) we need to make
@@ -12988,6 +12988,8 @@ local cleanpath, findgivenfile, expansion = resolvers.cleanpath, resolvers.findg
 local getenv = resolvers.getenv -- we can probably also use resolvers.expansion
 local P, Cs, lpegmatch = lpeg.P, lpeg.Cs, lpeg.match
 
+-- getenv = function(...) return resolvers.getenv(...) end -- needs checking (definitions changes later on)
+
 prefixes.environment = function(str)
     return cleanpath(expansion(str))
 end
@@ -14255,7 +14257,13 @@ function resolvers.load_tree(tree,resolve)
         -- Beware, we need to obey the relocatable autoparent so we
         -- set TEXMFCNF to its raw value. This is somewhat tricky when
         -- we run a mkii job from within. Therefore, in mtxrun, there
-        -- is a resolve applied when we're in mkii/kpse mode.
+        -- is a resolve applied when we're in mkii/kpse mode or when
+        -- --resolve is passed to mtxrun. Maybe we should also set the
+        -- local AUTOPARENT etc. although these are alwasy set new.
+
+        if resolve then
+            resolvers.luacnfspec = resolvers.resolve(resolvers.luacnfspec)
+        end
 
         setenv('SELFAUTOPARENT', newroot)
         setenv('SELFAUTODIR',    newtree)
@@ -14263,11 +14271,12 @@ function resolvers.load_tree(tree,resolve)
         setenv('TEXROOT',        newroot)
         setenv('TEXOS',          texos)
         setenv('TEXMFOS',        texmfos)
-        setenv('TEXMFCNF',       resolvers.luacnfspec, not resolve)
-        setenv("PATH",           newpath .. io.pathseparator .. getenv("PATH"))
+        setenv('TEXMFCNF',       resolvers.luacnfspec,true) -- already resolved
+        setenv('PATH',           newpath .. io.pathseparator .. getenv('PATH'))
 
         report_tds("changing from root '%s' to '%s'",oldroot,newroot)
-        report_tds("prepending '%s' to binary path",newpath)
+        report_tds("prepending '%s' to PATH",newpath)
+        report_tds("setting TEXMFCNF to '%s'",resolvers.luacnfspec)
         report_tds()
     end
 end
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 2ec73e932..bc6711e93 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -11467,7 +11467,7 @@ local     instance = resolvers.instance or nil -- the current one (fast access)
 function resolvers.setenv(key,value,raw)
     if instance then
         -- this one will be consulted first when we stay inside
-        -- the current environment
+        -- the current environment (prefixes are not resolved here)
         instance.environment[key] = value
         -- we feed back into the environment, and as this is used
         -- by other applications (via os.execute) we need to make
@@ -12988,6 +12988,8 @@ local cleanpath, findgivenfile, expansion = resolvers.cleanpath, resolvers.findg
 local getenv = resolvers.getenv -- we can probably also use resolvers.expansion
 local P, Cs, lpegmatch = lpeg.P, lpeg.Cs, lpeg.match
 
+-- getenv = function(...) return resolvers.getenv(...) end -- needs checking (definitions changes later on)
+
 prefixes.environment = function(str)
     return cleanpath(expansion(str))
 end
@@ -14255,7 +14257,13 @@ function resolvers.load_tree(tree,resolve)
         -- Beware, we need to obey the relocatable autoparent so we
         -- set TEXMFCNF to its raw value. This is somewhat tricky when
         -- we run a mkii job from within. Therefore, in mtxrun, there
-        -- is a resolve applied when we're in mkii/kpse mode.
+        -- is a resolve applied when we're in mkii/kpse mode or when
+        -- --resolve is passed to mtxrun. Maybe we should also set the
+        -- local AUTOPARENT etc. although these are alwasy set new.
+
+        if resolve then
+            resolvers.luacnfspec = resolvers.resolve(resolvers.luacnfspec)
+        end
 
         setenv('SELFAUTOPARENT', newroot)
         setenv('SELFAUTODIR',    newtree)
@@ -14263,11 +14271,12 @@ function resolvers.load_tree(tree,resolve)
         setenv('TEXROOT',        newroot)
         setenv('TEXOS',          texos)
         setenv('TEXMFOS',        texmfos)
-        setenv('TEXMFCNF',       resolvers.luacnfspec, not resolve)
-        setenv("PATH",           newpath .. io.pathseparator .. getenv("PATH"))
+        setenv('TEXMFCNF',       resolvers.luacnfspec,true) -- already resolved
+        setenv('PATH',           newpath .. io.pathseparator .. getenv('PATH'))
 
         report_tds("changing from root '%s' to '%s'",oldroot,newroot)
-        report_tds("prepending '%s' to binary path",newpath)
+        report_tds("prepending '%s' to PATH",newpath)
+        report_tds("setting TEXMFCNF to '%s'",resolvers.luacnfspec)
         report_tds()
     end
 end
-- 
cgit v1.2.3