summaryrefslogtreecommitdiff
path: root/attr.c
diff options
context:
space:
mode:
authorBrandon Williams <bmwill@google.com>2017-03-13 11:23:21 -0700
committerJunio C Hamano <gitster@pobox.com>2017-03-13 15:28:54 -0700
commitb0db70465246bb8309d3d12c9bc34ac3f0c1e203 (patch)
treea82cfca2e400ddd21f22cec61e2d664462e4a38f /attr.c
parent625568cd8813bf32b2172eaf59e45e9da5978ce3 (diff)
downloadgit-b0db70465246bb8309d3d12c9bc34ac3f0c1e203.tar.gz
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 <sbeller@google.com> Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.c')
-rw-r--r--attr.c17
1 files changed, 17 insertions, 0 deletions
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)
{