summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-08-17 02:05:49 +0300
committerAndrei Karas <akaras@inbox.ru>2016-08-17 02:05:49 +0300
commitf63584457f44a32e7e62587ac4802a6d31bb8408 (patch)
tree32d63bfc506c27424cb9d912d7caef59ef9315ed
parent30fc330b4b7fcdca0328744055f82def2a3a7c0f (diff)
downloadevol-hercules-f63584457f44a32e7e62587ac4802a6d31bb8408.tar.gz
evol-hercules-f63584457f44a32e7e62587ac4802a6d31bb8408.tar.bz2
evol-hercules-f63584457f44a32e7e62587ac4802a6d31bb8408.tar.xz
evol-hercules-f63584457f44a32e7e62587ac4802a6d31bb8408.zip
Add function for convert label to int and int to label.
New functions: getlabel - get label and return int tolabel - get int and return label
-rw-r--r--src/emap/init.c2
-rw-r--r--src/emap/script_buildins.c12
-rw-r--r--src/emap/script_buildins.h2
-rw-r--r--src/emap/scriptdefines.h3
4 files changed, 19 insertions, 0 deletions
diff --git a/src/emap/init.c b/src/emap/init.c
index cd2c5bf..8f8c986 100644
--- a/src/emap/init.c
+++ b/src/emap/init.c
@@ -179,6 +179,8 @@ HPExport void plugin_init (void)
addScriptCommand("hticheck", "i", htiCheck);
addScriptCommand("htidelete", "i", htiDelete);
addScriptCommand("setfakecells", "iii??", setFakeCells);
+ addScriptCommand("getlabel", "l", getLabel);
+ addScriptCommand("tolabel", "i", toLabel);
do_init_langs();
diff --git a/src/emap/script_buildins.c b/src/emap/script_buildins.c
index 3c7dbc3..2ada5ca 100644
--- a/src/emap/script_buildins.c
+++ b/src/emap/script_buildins.c
@@ -2088,3 +2088,15 @@ BUILDIN(htiDelete)
}
#undef checkHtIteratorExists
+
+BUILDIN(getLabel)
+{
+ script_pushint(st, script_getnum(st, 2));
+ return true;
+}
+
+BUILDIN(toLabel)
+{
+ script_pushlabel(st, script_getnum(st, 2));
+ return true;
+}
diff --git a/src/emap/script_buildins.h b/src/emap/script_buildins.h
index b38f8de..107ac28 100644
--- a/src/emap/script_buildins.h
+++ b/src/emap/script_buildins.h
@@ -84,5 +84,7 @@ BUILDIN(htiNextKey);
BUILDIN(htiCheck);
BUILDIN(htiDelete);
BUILDIN(setFakeCells);
+BUILDIN(getLabel);
+BUILDIN(toLabel);
#endif // EVOL_MAP_SCRIPT_BUILDINS
diff --git a/src/emap/scriptdefines.h b/src/emap/scriptdefines.h
index 274f8f4..69c69b0 100644
--- a/src/emap/scriptdefines.h
+++ b/src/emap/scriptdefines.h
@@ -123,4 +123,7 @@
if (!nd) \
return def; \
+#define script_pushlabel(st, val) \
+ (script->push_val((st)->stack, C_POS, (val),NULL))
+
#endif // EVOL_MAP_SCRIPTDEFINES