Hi Philipp,
Glad to be of some use!
This one avoids an extra call (please test):
local cachepaths = kpse.expand_var('$TEXMFCACHE')
if cachepaths == "$TEXMFCACHE" then
cachepaths = kpse.expand_var('$TEXMFVAR')
end
if cachepaths == "$TEXMFVAR" then
cachepaths = kpse.expand_var('$VARTEXMF')
end
Thanks for bringing that to my attention; I?ve forwarded your bug
report to Hans.
I think I?ll upload a fixed version to CTAN this week.
I've tested the latest code and it's working fine. But shouldn't it also
have
if cachepaths == "$VARTEXMF" then
cachepaths = "."
end
at the end, to maintain the old behaviour, or do you think the
precautionary behaviour should be changed?
Evan,
Is this normal behaviour, or a 'bug' for MikTeX installs? Or something
else altogether?
As I said, things are working fine, but it puzzles me why $TEXMFCACHE is
being generated for each working directory where I have .tex files I'm
compiling with lualatex.
There isn't supposed to be a directory *called* $TEXMFCACHE. $TEXMFCACHE
is a kpathsea variable whose value is the path where the database should
be created. But this variable is not defined under MiKTeX, and upon
seeing that it's not defined, luaotfload is supposed to put the database
in a folder with the path given by the value of the variable $TEXMFVAR
(the default value in MiKTeX on Win 7 is
C:\Users\<USERNAME>\AppData\MiKTeX\2.9 and you can test the value on
your system by typing kpsewhich --expand-var=$TEXMFVAR in the Command
Prompt, or by looking in the Roots panel of the MiKTeX settings
application). The bug we've been discussing keeps luaotfload from doing
that, which is why your database ends up where it does (and the problem
doesn't apply to TeX Live, because the $TEXMFCACHE variable is defined
in that setup).
Best,
Jura