From c306db980b59c03875acebf8a948efe7b7d51b98 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Thu, 28 Apr 2016 22:49:58 +0200 Subject: =?UTF-8?q?[resolvers,conf]=20allow=20=E2=80=9Cmy:=E2=80=9D=20look?= =?UTF-8?q?ups=20in=20anon=20sequences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows to domesticate packages that quite disrespectfully only use “anon:” lookups. Example from the test repo: \documentclass{scrartcl} \usepackage{fontspec} \directlua{ config.luaotfload = config.actions.apply (config.luaotfload, { run = { anon_sequence = { "my" } } }) } \directlua{ luatexbase.add_to_callback( "luaotfload.resolve_font", function (spec) spec.name = "comic.ttf" end, "user.openbsd_style") } \setmainfont{Adobe Premier Deluxe Overpriced} \begin{document} There is no escape. \end{document} --- src/luaotfload-configuration.lua | 2 +- src/luaotfload-resolvers.lua | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/luaotfload-configuration.lua b/src/luaotfload-configuration.lua index 17aee85..8cdebe0 100644 --- a/src/luaotfload-configuration.lua +++ b/src/luaotfload-configuration.lua @@ -97,7 +97,7 @@ local default_anon_sequence = { } local valid_resolvers = tabletohash { - "tex", "path", "name", "file" + "tex", "path", "name", "file", "my" } local feature_presets = { diff --git a/src/luaotfload-resolvers.lua b/src/luaotfload-resolvers.lua index 6fc6ffe..a1e702b 100644 --- a/src/luaotfload-resolvers.lua +++ b/src/luaotfload-resolvers.lua @@ -196,11 +196,20 @@ local resolve_path_if_exists = function (specification) return false end +--[[doc-- + Custom file resolvers via callback. +--doc]]-- + +local resolve_my = function (specification) + luatexbase.call_callback ("luaotfload.resolve_font", specification) +end + local resolve_methods = { tex = resolve_tex_format, path = resolve_path_if_exists, name = resolve_name, file = resolve_file, + my = resolve_my, } local resolve_sequence = function (seq, specification) @@ -273,16 +282,6 @@ resolve_kpse = function (specification) return false end ---[[doc-- - - Also {\bfseries EXPERIMENTAL}: custom file resolvers via callback. - ---doc]]-- - -local resolve_my = function (specification) - luatexbase.call_callback ("luaotfload.resolve_font", specification) -end - return { init = function ( ) if luatexbase and luatexbase.create_callback then -- cgit v1.2.3