summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorFate <fate-tmw@googlemail.com>2008-11-29 12:26:36 -0700
committerFate <fate-tmw@googlemail.com>2008-11-29 12:26:36 -0700
commitc41894ef2fd51dcc17e030536272fbf03f17f1a8 (patch)
tree2c6c12e6a3062d4bd089b5d3b26d06e20d611be3 /src/map
parent481c74df8cfd2b63376b29158cc8f3c5d11addef (diff)
downloadtmwa-c41894ef2fd51dcc17e030536272fbf03f17f1a8.tar.gz
tmwa-c41894ef2fd51dcc17e030536272fbf03f17f1a8.tar.bz2
tmwa-c41894ef2fd51dcc17e030536272fbf03f17f1a8.tar.xz
tmwa-c41894ef2fd51dcc17e030536272fbf03f17f1a8.zip
Added bitwise negation operator `neg'
Diffstat (limited to 'src/map')
-rw-r--r--src/map/magic-expr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/map/magic-expr.c b/src/map/magic-expr.c
index 04e5e60..d22e596 100644
--- a/src/map/magic-expr.c
+++ b/src/map/magic-expr.c
@@ -312,6 +312,13 @@ fun_not(env_t *env, int args_nr, val_t *result, val_t *args)
}
static int
+fun_neg(env_t *env, int args_nr, val_t *result, val_t *args)
+{
+ RESULTINT = ~ARGINT(0);
+ return 0;
+}
+
+static int
fun_gte(env_t *env, int args_nr, val_t *result, val_t *args)
{
if (TY(0) == TY_STRING || TY(1) == TY_STRING) {
@@ -1028,6 +1035,7 @@ static fun_t functions[] = {
{ "<<", "ii", 'i', fun_bitshl },
{ ">>", "ii", 'i', fun_bitshr },
{ "not", "i", 'i', fun_not },
+ { "neg", "i", 'i', fun_neg },
{ "max", "ii", 'i', fun_max },
{ "min", "ii", 'i', fun_min },
{ "is_in", "la", 'i', fun_is_in },