summaryrefslogtreecommitdiffstats
path: root/filter/filter.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-06-08 18:57:41 +0200
committerPavel Machek <pavel@ucw.cz>2000-06-08 18:57:41 +0200
commit4bb18dd2daa1e13ab4f9aaff2ddc4875c4776559 (patch)
tree46677d61b9151ee6d5e2a946f7669abd7d7ecd1d /filter/filter.c
parent89e7de98e455071c5ff3796765fb6fd6860a63c6 (diff)
downloadbird-4bb18dd2daa1e13ab4f9aaff2ddc4875c4776559.tar
bird-4bb18dd2daa1e13ab4f9aaff2ddc4875c4776559.zip
Fix i_same for 'c' instruction.
Diffstat (limited to 'filter/filter.c')
-rw-r--r--filter/filter.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/filter/filter.c b/filter/filter.c
index a7a17bd..25711c5 100644
--- a/filter/filter.c
+++ b/filter/filter.c
@@ -748,7 +748,21 @@ i_same(struct f_inst *f1, struct f_inst *f2)
}
break;
- case 'c': A2_SAME; break;
+ case 'c':
+ if (f1->aux & T_SET) {
+ if (!same_tree(f1->a2.p, f2->a2.p))
+ return 0;
+ break;
+ }
+ switch (f1->aux) {
+ case T_STRING:
+ if (strcmp(f1->a2.p, f2->a2.p))
+ return 0;
+ break;
+ default:
+ A2_SAME;
+ }
+ break;
case 'C':
if (val_compare(* (struct f_val *) f1->a1.p, * (struct f_val *) f2->a1.p))
return 0;