diff options
author | Pavel Tvrdik <pawel.tvrdik@gmail.com> | 2016-11-16 12:15:43 +0100 |
---|---|---|
committer | Pavel Tvrdik <pawel.tvrdik@gmail.com> | 2016-11-16 12:22:01 +0100 |
commit | 4b135d095860cf861ff47c24a10169faa41fe35a (patch) | |
tree | daea4e0621ee77caa43efecfbe63dd542389f7ad /filter/filter.c | |
parent | bb721f0d6d00bc2d7944640bfaf1cb266060d972 (diff) |
Birdtest: Add function format in grammar for stringify expression
Diffstat (limited to 'filter/filter.c')
-rw-r--r-- | filter/filter.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/filter/filter.c b/filter/filter.c index 88d138a0..145ff4b3 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -563,6 +563,14 @@ f_rta_cow(void) (*f_rte)->attrs = rta_do_cow((*f_rte)->attrs, f_pool); } +static char * +val_format_str(struct f_val v) { + buffer b; + LOG_BUFFER_INIT(b); + val_format(v, &b); + return lp_strdup(f_pool, b.start); +} + static struct tbf rl_runtime_err = TBF_DEFAULT_LOG_LIMITS; #define runtime(fmt, ...) do { \ @@ -1477,6 +1485,13 @@ interpret(struct f_inst *what) break; + case P('f','m'): /* Format */ + ONEARG; + + res.type = T_STRING; + res.val.s = val_format_str(v1); + break; + case P('a','s'): /* Birdtest Assert */ ONEARG; |