core-lmt.lmt /size: 2106 b    last modification: 2021-10-28 13:51
1if not modules then modules = { } end modules ['core-lmt'] = {
2    version   = 1.001,
3    comment   = "companion to core-lmt.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
9-- Kind of obsolete ... old school directions.
10
11local implement   = interfaces.implement
12local scankeyword = tokens.scanners.keyword
13local scaninteger = tokens.scanners.integer
14
15local settextdir  = tex.settextdir
16local setlinedir  = tex.setlinedir
17local setpardir   = tex.setpardir
18local setboxdir   = tex.setboxdir
19
20local gettextdir  = tex.gettextdir
21local getlinedir  = tex.getlinedir
22local getpardir   = tex.getpardir
23local getboxdir   = tex.getboxdir
24
25local none_code   = tokens.values.none
26
27local context     = context
28
29local function scandir()
30    if scankeyword("tlt") then
31        return 0
32    elseif scankeyword("trt") then
33        return 1
34    else
35        return 0
36    end
37end
38
39local function showdir(d)
40    context(d == 1 and "TRT" or "LTL")
41    return none_code
42end
43
44implement {
45    name    = "textdir",
46    public  = true,
47    usage   = "value",
48    actions = function(what)
49        if what == "value" then
50            showdir(gettextdir())
51        else
52            settextdir(scandir())
53        end
54    end
55}
56
57implement {
58    name    = "linedir",
59    public  = true,
60    usage   = "value",
61    actions = function(what)
62        if what == "value" then
63            return showdir(getlinedir())
64        else
65            setlinedir(scandir())
66        end
67    end
68}
69
70implement {
71    name    = "pardir",
72    public  = true,
73    usage   = "value",
74    actions = function(what)
75        if what == "value" then
76            return showdir(getpardir())
77        else
78            setpardir(scandir())
79        end
80    end
81}
82
83implement {
84    name    = "boxdir",
85    public  = true,
86    usage   = "value",
87    actions = function(what)
88        local n = scaninteger()
89        if what == "value" then
90            return showdir(getboxdir(n))
91        else
92            setboxdir(n,scandir())
93        end
94    end
95}
96