From 482fb532c1a6b9608bb1ee1ec5ea3dcd7ebc9612 Mon Sep 17 00:00:00 2001 From: Per Hedbor <ph@opera.com> Date: Fri, 12 Mar 1999 23:22:55 +0100 Subject: [PATCH] Added support for nil |= mapping Rev: src/operators.c:1.51 --- src/operators.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/operators.c b/src/operators.c index 4641bb88b4..c4479bdeae 100644 --- a/src/operators.c +++ b/src/operators.c @@ -5,7 +5,7 @@ \*/ #include "global.h" #include <math.h> -RCSID("$Id: operators.c,v 1.50 1999/03/05 02:15:01 hubbe Exp $"); +RCSID("$Id: operators.c,v 1.51 1999/03/12 22:22:55 per Exp $"); #include "interpret.h" #include "svalue.h" #include "multiset.h" @@ -72,7 +72,6 @@ COMPARISON(f_ge,"`>=",!is_lt) sp[-2]=sp[-1]; \ sp--; - void f_add(INT32 args) { INT_TYPE e,size; @@ -271,7 +270,7 @@ void f_add(INT32 args) break; } - case BIT_FLOAT | BIT_INT: + case BIT_FLOAT|BIT_INT: { FLOAT_TYPE sum; sum=0.0; @@ -300,7 +299,7 @@ void f_add(INT32 args) for(e=1;e<args;e++) if(sp[e-args].type != T_ARRAY) error("`+: trying to add integers and arrays.\n"); - + a=add_arrays(sp-args+1,args-1); pop_n_elems(args); push_array(a); @@ -318,6 +317,25 @@ void f_add(INT32 args) break; } + case BIT_MAPPING|BIT_INT: + { + if(IS_UNDEFINED(sp-args)) + { + int e; + struct mapping *a; + + for(e=1;e<args;e++) + if(sp[e-args].type != T_MAPPING) + error("`+: trying to add integers and mappings.\n"); + + a=add_mappings(sp-args+1,args-1); + pop_n_elems(args); + push_mapping(a); + return; + } + error("`+: trying to add integers and mappings.\n"); + } + case BIT_MAPPING: { struct mapping *m; -- GitLab