if !(scope ~ [ SCOPE_HOST, SCOPE_SITE ]) then {
print "Failed in test";
quitbird;
}
| pair { $$.type = T_PAIR; $$.val.i = $1; }
| fipa { $$ = $1; }
| fprefix { $$ = $1; }
+ | ENUM { $$.type = $1 >> 16; $$.val.i = $1 & 0xffff; }
;
set_item:
if (res != CMP_ERROR)
return res;
-
- if (((v1.type == T_INT) || ((v1.type == T_IP) || (v1.type == T_PREFIX)) && (v2.type == T_SET))) {
- struct f_tree *n;
- n = find_tree(v2.val.t, v1);
- if (!n)
- return 0;
- return !! (val_simple_in_range(v1, n->from)); /* We turn CMP_ERROR into compared ok, and that's fine */
- }
+
+ if (v2.type == T_SET)
+ switch (v1.type) {
+ case T_ENUM:
+ case T_INT:
+ case T_IP:
+ case T_PREFIX:
+ {
+ struct f_tree *n;
+ n = find_tree(v2.val.t, v1);
+ if (!n)
+ return 0;
+ return !! (val_simple_in_range(v1, n->from)); /* We turn CMP_ERROR into compared ok, and that's fine */
+ }
+ }
return CMP_ERROR;
}
print scope;
scope = SCOPE_HOST;
print scope;
+ if !(scope ~ [ SCOPE_HOST, SCOPE_SITE ]) then {
+ print "Failed in test";
+ quitbird;
+ }
preference = 15;
print preference;