summaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
authorDamian Gryski <damian@gryski.com>2012-10-23 17:01:39 +0200
committerDamian Gryski <damian@gryski.com>2012-10-23 17:01:39 +0200
commit553de39b2a9c45110ed25a714fb249bd6037f874 (patch)
tree6a54a2da8d510b182bcf17b59481b1ef4b2c2913 /builtin.c
parentb193bca563f377f97b9a6efcf5b054bd70fb1f46 (diff)
Implement 'not equal' (!=) as a binop
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/builtin.c b/builtin.c
index f184ff7f..3d726854 100644
--- a/builtin.c
+++ b/builtin.c
@@ -120,6 +120,11 @@ static void f_equal(jv input[], jv output[]) {
output[0] = jv_bool(jv_equal(input[2], input[1]));
}
+static void f_notequal(jv input[], jv output[]) {
+ jv_free(input[0]);
+ output[0] = jv_bool(jv_equal(input[2], input[1]) == 0);
+}
+
static void order_cmp(jv input[], jv output[], int op) {
jv_free(input[0]);
jv a = input[2];
@@ -284,6 +289,7 @@ static struct cfunction function_list[] = {
{f_tostring, "tostring", CALL_BUILTIN_1_1},
{f_keys, "keys", CALL_BUILTIN_1_1},
{f_equal, "_equal", CALL_BUILTIN_3_1},
+ {f_notequal, "_notequal", CALL_BUILTIN_3_1},
{f_less, "_less", CALL_BUILTIN_3_1},
{f_greater, "_greater", CALL_BUILTIN_3_1},
{f_lesseq, "_lesseq", CALL_BUILTIN_3_1},