summaryrefslogtreecommitdiff
path: root/metapost/context/base/mpxl/mp-luas.mpxl
diff options
context:
space:
mode:
Diffstat (limited to 'metapost/context/base/mpxl/mp-luas.mpxl')
-rw-r--r--metapost/context/base/mpxl/mp-luas.mpxl69
1 files changed, 48 insertions, 21 deletions
diff --git a/metapost/context/base/mpxl/mp-luas.mpxl b/metapost/context/base/mpxl/mp-luas.mpxl
index 00e7876a8..24a2fc8fe 100644
--- a/metapost/context/base/mpxl/mp-luas.mpxl
+++ b/metapost/context/base/mpxl/mp-luas.mpxl
@@ -138,18 +138,30 @@ permanent resolvedcolor ;
% Modes:
-vardef texmode (expr s) = lua.mp("mode", s) enddef ;
-vardef systemmode(expr s) = lua.mp("systemmode",s) enddef ;
+newscriptindex mfid_mode ; mfid_mode := scriptindex "mode" ;
+newscriptindex mfid_systemmode ; mfid_systemmode := scriptindex "systemmode" ;
+
+vardef texmode (expr s) = runscript mfid_mode s enddef ;
+vardef systemmode (expr s) = runscript mfid_systemmode s enddef ;
+
+% let processingmode = systemmode ;
permanent texmode, systemmode ;
% A few helpers
-vardef isarray suffix a = lua.mp.isarray (str a) enddef ;
-vardef prefix suffix a = lua.mp.prefix (str a) enddef ;
-vardef dimension suffix a = lua.mp.dimension(str a) enddef ;
+newscriptindex mfid_isarray ; mfid_isarray := scriptindex "isarray" ;
+newscriptindex mfid_prefix ; mfid_prefix := scriptindex "prefix" ;
+newscriptindex mfid_dimension ; mfid_dimension := scriptindex "dimension" ;
+newscriptindex mfid_isobject ; mfid_isobject := scriptindex "isobject" ;
+
+vardef isarray suffix a = runscript mfid_isarray (str a) enddef ;
+vardef prefix suffix a = runscript mfid_prefix (str a) enddef ;
+vardef dimension suffix a = runscript mfid_dimension(str a) enddef ;
-permanent isarray, prefix, dimension ;
+vardef isobject expr p = if picture p : runscript mfid_isobject prescriptpart p else : false fi enddef ;
+
+permanent isarray, prefix, dimension, isobject ;
% More access
@@ -175,17 +187,31 @@ permanent
setmacro, setdimen, setcount, settoks,
setglobalmacro, setglobaldimen, setglobalcount, setglobaltoks ;
-% todo: mfid_
-
-vardef positionpath (expr name) = lua.mp.positionpath (name) enddef ;
-vardef positioncurve (expr name) = lua.mp.positioncurve (name) enddef ;
-vardef positionxy (expr name) = lua.mp.positionxy (name) enddef ;
-vardef positionpxy (expr name) = lua.mp.positionpxy (name) enddef ;
-vardef positionwhd (expr name) = lua.mp.positionwhd (name) enddef ;
-vardef positionpage (expr name) = lua.mp.positionpage (name) enddef ;
-vardef positionregion(expr name) = lua.mp.positionregion(name) enddef ;
-vardef positionbox (expr name) = lua.mp.positionbox (name) enddef ;
-vardef positionanchor = lua.mp.positionanchor() enddef ;
+newscriptindex mfid_positionpath ; mfid_positionpath := scriptindex("positionpath") ;
+newscriptindex mfid_positioncurve ; mfid_positioncurve := scriptindex("positioncurve") ;
+newscriptindex mfid_positionxy ; mfid_positionxy := scriptindex("positionxy") ;
+newscriptindex mfid_positionx ; mfid_positionx := scriptindex("positionx") ;
+newscriptindex mfid_positiony ; mfid_positiony := scriptindex("positiony") ;
+newscriptindex mfid_positionpar ; mfid_positionpar := scriptindex("positionpar") ;
+newscriptindex mfid_positionwhd ; mfid_positionwhd := scriptindex("positionwhd") ;
+newscriptindex mfid_positionpage ; mfid_positionpage := scriptindex("positionpage") ;
+newscriptindex mfid_positionregion ; mfid_positionregion := scriptindex("positionregion") ;
+newscriptindex mfid_positionbox ; mfid_positionbox := scriptindex("positionbox") ;
+newscriptindex mfid_positionanchor ; mfid_positionanchor := scriptindex("positionanchor") ;
+
+vardef positionpath (expr name) = runscript mfid_positionpath name enddef ;
+vardef positioncurve (expr name) = runscript mfid_positioncurve name enddef ;
+vardef positionxy (expr name) = runscript mfid_positionxy name enddef ;
+vardef positionx (expr name) = runscript mfid_positionx name enddef ;
+vardef positiony (expr name) = runscript mfid_positiony name enddef ;
+vardef positionpar (expr name) = runscript mfid_positionpar name enddef ;
+vardef positionwhd (expr name) = runscript mfid_positionwhd name enddef ;
+vardef positionpage (expr name) = runscript mfid_positionpage name enddef ;
+vardef positioncolumn (expr name) = runscript mfid_positioncolumn name enddef ;
+vardef positionparagraph(expr name) = runscript mfid_positionparagraph name enddef ;
+vardef positionregion (expr name) = runscript mfid_positionregion name enddef ;
+vardef positionbox (expr name) = runscript mfid_positionbox name enddef ;
+vardef positionanchor = runscript mfid_positionanchor enddef ;
vardef positioninregion =
currentpicture := currentpicture shifted - positionxy(positionanchor) ;
@@ -195,8 +221,9 @@ vardef positionatanchor(expr name) =
currentpicture := currentpicture shifted - positionxy(name) ;
enddef ;
-permanent positionpath, positioncurve, positionxy, positionpxy, positionwhd, positionpage,
- positionregion, positionbox, positionanchor, positioninregion, positionatanchor ;
+permanent positionpath, positioncurve, positionxy, positionwhd,
+ positionpage, positionregion, positioncolumn, positionparagraph,
+ positionbox, positionanchor, positioninregion, positionatanchor ;
let wdpart = redpart ;
let htpart = greenpart ;
@@ -204,8 +231,8 @@ let dppart = bluepart ;
permanent wdpart, htpart, dppart;
-vardef texvar(expr name) = lua.mp.texvar(name) enddef ;
-vardef texstr(expr name) = lua.mp.texstr(name) enddef ;
+newscriptindex mfid_texvar ; mfid_texvar := scriptindex "texvar" ; vardef texvar(expr s) = runscript mfid_texvar s enddef ;
+newscriptindex mfid_texstr ; mfid_texstr := scriptindex "texstr" ; vardef texstr(expr s) = runscript mfid_texstr s enddef ;
newscriptindex mfid_path_lengthof ; mfid_path_lengthof := scriptindex "pathlengthof" ;
newscriptindex mfid_path_pointof ; mfid_path_pointof := scriptindex "pathpointof" ;