From b0db70465246bb8309d3d12c9bc34ac3f0c1e203 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Mon, 13 Mar 2017 11:23:21 -0700 Subject: pathspec: allow querying for attributes The pathspec mechanism is extended via the new ":(attr:eol=input)pattern/to/match" syntax to filter paths so that it requires paths to not just match the given pattern but also have the specified attrs attached for them to be chosen. Based on a patch by Stefan Beller Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano --- attr.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'attr.c') diff --git a/attr.c b/attr.c index 5493bff224..7e2134471c 100644 --- a/attr.c +++ b/attr.c @@ -603,6 +603,23 @@ struct attr_check *attr_check_initl(const char *one, ...) return check; } +struct attr_check *attr_check_dup(const struct attr_check *check) +{ + struct attr_check *ret; + + if (!check) + return NULL; + + ret = attr_check_alloc(); + + ret->nr = check->nr; + ret->alloc = check->alloc; + ALLOC_ARRAY(ret->items, ret->nr); + COPY_ARRAY(ret->items, check->items, ret->nr); + + return ret; +} + struct attr_check_item *attr_check_append(struct attr_check *check, const struct git_attr *attr) { -- cgit v1.2.3