diff options
-rw-r--r-- | filter/config.Y | 2 | ||||
-rw-r--r-- | filter/filter.c | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/filter/config.Y b/filter/config.Y index d9f72fb..a0881ae 100644 --- a/filter/config.Y +++ b/filter/config.Y @@ -11,6 +11,8 @@ FIXME: create community lists FIXME: access to dynamic attributes FIXME: local namespace for functions + FIXME: enumerational types + FIXME: defined() keyword */ CF_HDR diff --git a/filter/filter.c b/filter/filter.c index e913bf6..99d47bc 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -305,7 +305,19 @@ interpret(struct f_inst *what) } break; case 'ea': /* Access to extended attributes [hmm, but we need it read/write, do we?] */ - bug( "Implement me" ); + { + eattr *e = ea_find( (*f_rte)->attrs->eattrs, what->a2.i ); + if (!e) { + res.type = T_VOID; + break; + } + res.type = what->a1.i; + switch (what->a1.i) { + case T_INT: + res.val.i = e->u.data; + break; + } + } break; case 'cp': /* Convert prefix to ... */ ONEARG; |