From 6e0a3b1bf597516a1d90398071a04d804f893467 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 14 May 2013 12:22:47 +0200 Subject: load filesystem libs prior to handling the cache directories --- luaotfload.dtx | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/luaotfload.dtx b/luaotfload.dtx index 16f7bf6..1438e8e 100644 --- a/luaotfload.dtx +++ b/luaotfload.dtx @@ -1498,6 +1498,34 @@ if tex.luatexversion < luatex_version then luatex_version /100) end +% \end{macrocode} +% \subsection{Module loading} +% We load the files imported from \CONTEXT with this function. +% It automatically prepends the prefix \fileent{luaotfload-} to its +% argument, so we can refer to the files with their actual \CONTEXT name. +% +% \begin{macrocode} + +local fl_prefix = "luaotfload" -- “luatex” for luatex-plain +local loadmodule = function (name) + require(fl_prefix .."-"..name) +end + +% \end{macrocode} +% The font loader expects the \TEX Live cache directories to be in +% place and due to some quirk in \fileent{data-con.lua} they are +% fixed during the run. It follows that we have to ensure their +% presence before we can initialize the fontloader. +% The most reliable way to do so is by using the +% \luafunction{mkdirs()} function from \CONTEXT’s +% \fileent{l-dir.lua}. +% Unfortunately, for this to work we need to to preload substantial +% parts of the \LUA libraries. +% +% \begin{macrocode} + +loadmodule"filesystem-merged.lua" + % \end{macrocode} % Prepare directories: the cache function in Luatex-Fonts checks for a % writable directory only once during startup. If there is no @@ -1507,7 +1535,9 @@ end % % \begin{macrocode} + local cachepath = kpse.expand_var"$TEXMFVAR" + if not lfs.isdir(cachepath) then dir.mkdirs(cachepath) if not lfs.isdir(cachepath) then @@ -1515,19 +1545,6 @@ if not lfs.isdir(cachepath) then end end -% \end{macrocode} -% \subsection{Module loading} -% We load the files imported from \CONTEXT with this function. -% It automatically prepends the prefix \fileent{luaotfload-} to its -% argument, so we can refer to the files with their actual \CONTEXT name. -% -% \begin{macrocode} - -local fl_prefix = "luaotfload" -- “luatex” for luatex-plain -local loadmodule = function (name) - require(fl_prefix .."-"..name) -end - % \end{macrocode} % Before \TeX Live 2013 version, \LUATEX had a bug that made ofm fonts fail % when called with their extension. There was a side-effect making ofm @@ -1779,7 +1796,6 @@ add_to_callback("hpack_filter", add_to_callback("find_vf_file", find_vf_file, "luaotfload.find_vf_file") -loadmodule"lib-dir.lua" --- required by luaofload-database.lua loadmodule"override.lua" --- “luat-ovr” logs.set_loglevel(config.luaotfload.loglevel) -- cgit v1.2.3