symb-ini.lmt /size: 1541 b    last modification: 2025-02-21 11:03
1if not modules then modules = { } end modules ['symb-ini'] = {
2    version   = 1.001,
3    comment   = "companion to symb-ini.mkiv",
4    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
5    copyright = "PRAGMA ADE / ConTeXt Development Team",
6    license   = "see context related readme files"
7}
8
9local context        = context
10
11fonts                = fonts or { } -- brrrr
12
13local symbols        = fonts.symbols or { }
14fonts.symbols        = symbols
15
16local listitem       = utilities.parsers.listitem
17local uselibrary     = resolvers.uselibrary
18
19local report_symbols = logs.reporter ("fonts","symbols")
20local status_symbols = logs.messenger("fonts","symbols")
21
22local v_reset        <const> = interfaces.variables.reset
23
24local patterns = {
25    "symb-imp-%s.mkxl",
26    "symb-imp-%s.mkiv",
27    "symb-imp-%s.tex",
28    -- obsolete:
29    "symb-%s.mkiv",
30    "symb-%s.tex"
31}
32
33local function action(name,foundname)
34    commands.loadlibrary(name,foundname,false)
35    status_symbols("library %a loaded",name)
36end
37
38local function failure(name)
39    report_symbols("library %a is unknown",name)
40end
41
42function symbols.uselibrary(name)
43    if name ~= v_reset then
44        for name in listitem(name) do
45            uselibrary {
46                name     = name,
47                patterns = patterns,
48                action   = action,
49                failure  = failure,
50                onlyonce = true,
51            }
52        end
53    end
54end
55
56interfaces.implement {
57    name      = "usesymbols",
58    actions   = symbols.uselibrary,
59    arguments = "string",
60}
61