1if not modules then modules = { } end modules ['mlib-lmp'] = {
2 version = 1.001,
3 comment = "companion to mlib-ctx.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
10
11local type = type
12
13local aux = mp.aux
14local mpnumeric = aux.numeric
15local mppair = aux.pair
16
17local p = nil
18local n = 0
19
20local function mf_path_reset()
21 p = nil
22 n = 0
23end
24
25local get = mp.get
26local mpgetpath = get.path
27
28local function mf_path_length(name)
29 p = mpgetpath(name)
30 n = p and #p or 0
31 mpnumeric(n)
32end
33
34local function mf_path_point(i)
35 if i > 0 and i <= n then
36 local pi = p[i]
37 mppair(pi[1],pi[2])
38 end
39end
40
41local function mf_path_left(i)
42 if i > 0 and i <= n then
43 local pi = p[i]
44 mppair(pi[5],pi[6])
45 end
46end
47
48local function mf_path_right(i)
49 if i > 0 and i <= n then
50 local pn
51 if i == 1 then
52 pn = p[2] or p[1]
53 else
54 pn = p[i+1] or p[1]
55 end
56 mppair(pn[3],pn[4])
57 end
58end
59
60mp.mf_path_length = mf_path_length mp.pathlength = mf_path_length
61mp.mf_path_point = mf_path_point mp.pathpoint = mf_path_point
62mp.mf_path_left = mf_path_left mp.pathleft = mf_path_left
63mp.mf_path_right = mf_path_right mp.pathright = mf_path_right
64mp.mf_path_reset = mf_path_reset mp.pathreset = mf_path_reset
65
66 |