diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-05-27 15:10:21 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-05-27 15:10:21 +0200 | 
| commit | 1ef6591eecdbb9cd047b80992dc71beb287fa3e6 (patch) | |
| tree | ff5fb7052c6ca9238e1d0cae7e4d0fedafa090a6 | |
| parent | cdc347c5136e1c6e330fb81af0912103361b0f3e (diff) | |
| download | luaotfload-1ef6591eecdbb9cd047b80992dc71beb287fa3e6.tar.gz | |
implement kpse-only font resolver
| -rw-r--r-- | luaotfload.dtx | 29 | 
1 files changed, 28 insertions, 1 deletions
diff --git a/luaotfload.dtx b/luaotfload.dtx index b4b7940..83885a0 100644 --- a/luaotfload.dtx +++ b/luaotfload.dtx @@ -1797,7 +1797,7 @@ loadmodule"colors.lua"     --- “font-clr”  %    \begin{macrocode}  local request_resolvers   = fonts.definers.resolvers -local formats             = fonts.formats +local formats             = fonts.formats -- nice table; does lowercasing ...  formats.ofm               = "type1"  %    \end{macrocode} @@ -1917,6 +1917,33 @@ request_resolvers.path = function (specification)  end  %    \end{macrocode} +% {\bfseries EXPERIMENTAL} +% \identifier{kpse}-only resolver, for those who can do without system +% fonts. +% +%    \begin{macrocode} + +request_resolvers.kpse = function (specification) +    local name       = specification.name +    local suffix     = file.suffix(name) +    if suffix and formats[suffix] then +        name = file.removesuffix(name) +        if resolvers.findfile(name, suffix) then +            specification.forced = suffix +            specification.name   = name +            return +        end +    end +    for t, format in next, formats do --- brute force +        if kpse.find_file (name, format) then +            specification.forced = t +            specification.name   = name +            return +        end +    end +end + +%    \end{macrocode}  % We create a callback for patching fonts on the fly, to be used by other  % packages.  % It initially contains the empty function that we are going to override  | 
