diff options
author | Hans Hagen <pragma@wxs.nl> | 2020-04-19 20:29:51 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2020-04-19 20:29:51 +0200 |
commit | 3c25716e01b7251f0f7504481692421a729e4b53 (patch) | |
tree | f35478a7500c113744dd3875f3f8ab486a21c595 /tex/context/base/mkiv/mlib-lua.lua | |
parent | 9a1b9756939e12e328dea3633d9fe3cbde8f154b (diff) | |
download | context-3c25716e01b7251f0f7504481692421a729e4b53.tar.gz |
2020-04-19 19:24:00
Diffstat (limited to 'tex/context/base/mkiv/mlib-lua.lua')
-rw-r--r-- | tex/context/base/mkiv/mlib-lua.lua | 63 |
1 files changed, 40 insertions, 23 deletions
diff --git a/tex/context/base/mkiv/mlib-lua.lua b/tex/context/base/mkiv/mlib-lua.lua index 31a9b845b..9b4ec44dd 100644 --- a/tex/context/base/mkiv/mlib-lua.lua +++ b/tex/context/base/mkiv/mlib-lua.lua @@ -1118,9 +1118,9 @@ end do - local mprint = mp.print - local fprint = mp.fprint - local qprint = mp.quoted + local mpprint = mp.print + local mpfprint = mp.fprint + local mpquoted = mp.quoted local jobpositions = job.positions local getwhd = jobpositions.whd local getxy = jobpositions.xy @@ -1132,72 +1132,72 @@ do function mp.positionpath(name) local w, h, d = getwhd(name) if w then - fprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",0,-d,w,-d,w,h,0,h) + mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",0,-d,w,-d,w,h,0,h) else - mprint("(origin--cycle)") + mpprint("(origin--cycle)") end end function mp.positioncurve(name) local w, h, d = getwhd(name) if w then - fprint("((%p,%p)..(%p,%p)..(%p,%p)..(%p,%p)..cycle)",0,-d,w,-d,w,h,0,h) + mpfprint("((%p,%p)..(%p,%p)..(%p,%p)..(%p,%p)..cycle)",0,-d,w,-d,w,h,0,h) else - mprint("(origin--cycle)") + mpprint("(origin--cycle)") end end function mp.positionbox(name) local p, x, y, w, h, d = getposition(name) if p then - fprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h) + mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h) else - mprint("(%p,%p)",x,y) + mpprint("(%p,%p)",x,y) end end function mp.positionxy(name) local x, y = getxy(name) if x then - fprint("(%p,%p)",x,y) + mpfprint("(%p,%p)",x,y) else - mprint("origin") + mpprint("origin") end end function mp.positionpage(name) - fprint("%i",getpage(name) or 0) + mpfprint("%i",getpage(name) or 0) end function mp.positionregion(name) local r = getregion(name) if r then - qprint(r) + mpquoted(r) else - qprint("unknown") + mpquoted("unknown") end end function mp.positionwhd(name) local w, h, d = getwhd(name) if w then - fprint("(%p,%p,%p)",w,h,d) + mpfprint("(%p,%p,%p)",w,h,d) else - mprint("(0,0,0)") + mpprint("(0,0,0)") end end function mp.positionpxy(name) local p, x, y = getposition(name) if p then - fprint("(%p,%p,%p)",p,x,y) + mpfprint("(%p,%p,%p)",p,x,y) else - mprint("(0,0,0)") + mpprint("(0,0,0)") end end function mp.positionanchor() - qprint(getmacro("MPanchorid")) + mpquoted(getmacro("MPanchorid")) end end @@ -1219,16 +1219,16 @@ end do - local mprint = mp.print - local qprint = mp.quoted + local mpprint = mp.print + local mpquoted = mp.quoted local getmacro = tokens.getters.macro function mp.texvar(name) - mprint(getmacro(metapost.namespace .. name)) + mpprint(getmacro(metapost.namespace .. name)) end function mp.texstr(name) - qprint(getmacro(metapost.namespace .. name)) + mpquoted(getmacro(metapost.namespace .. name)) end end @@ -1385,3 +1385,20 @@ function mp.flatten(t) end +do + + -- if needed we can optimize the sub (cache last split) + + local utflen = utf.len + local utfsub = utf.sub + + function mp.utflen(s) + mpnumeric(utflen(s)) + end + + function mp.utfsub(s,f,t) + mpquoted(utfsub(s,f,t or f)) + end + +end + |