From 12e504fa42b43e031d070ca37395882a276ddbb0 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Fri, 20 Jan 2017 23:24:39 +0100 Subject: mpick: add msglist from address support Fixes #9 --- mpick.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'mpick.c') diff --git a/mpick.c b/mpick.c index 25c797e..7850a74 100644 --- a/mpick.c +++ b/mpick.c @@ -721,7 +721,27 @@ parse_msglist(char *s) return e1; } else { - expr = chain(parse_expr("from.addr == 's'"), EXPR_AND, expr); + char *disp, *addr; + + d = blaze822_addr(s, &disp, &addr); + if (!disp && !addr) + parse_error("invalid address at '%.15s'", pos); + + d = strdup((disp) ? disp : addr); + + e1 = mkexpr(EXPR_REGEXI); + e1->a.prop = PROP_FROM; + e1->b.regex = malloc(sizeof (regex_t)); + e1->extra = (disp) ? 0 : 1; + + r = regcomp(e1->b.regex, d, REG_EXTENDED | REG_NOSUB | REG_ICASE); + if (r != 0) { + char msg[256]; + regerror(r, e1->b.regex, msg, sizeof msg); + parse_error("invalid regex '%s': %s", d, msg); + } + + return e1; } } return 0; -- cgit 1.4.1