Extract a function collect_all_attrs()
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty committed
Aug 4, 2011 at 06:36 UTC
2d72174492b926dffd15d5fd8f4239060fb12247
1 file changed
+14
-3
attr.c
+14
-3
@@ -713,20 +713,31 @@ static int macroexpand_one(int attr_nr, int rem)
713
return rem;
714
}
715
716
-int git_checkattr(const char *path, int num, struct git_attr_check *check)
716
+/*
717
+ * Collect all attributes for path into the array pointed to by
718
+ * check_all_attr.
719
+ */
720
+static void collect_all_attrs(const char *path)
721
{
722
struct attr_stack *stk;
719
- int pathlen, i, rem;
723
+ int i, pathlen, rem;
724
725
bootstrap_attr_stack();
726
+ prepare_attr_stack(path);
727
for (i = 0; i < attr_nr; i++)
728
check_all_attr[i].value = ATTR__UNKNOWN;
729
730
pathlen = strlen(path);
726
- prepare_attr_stack(path);
731
rem = attr_nr;
732
for (stk = attr_stack; 0 < rem && stk; stk = stk->prev)
733
rem = fill(path, pathlen, stk, rem);
734
+}
735
+
736
+int git_checkattr(const char *path, int num, struct git_attr_check *check)
737
+{
738
+ int i;
739
+
740
+ collect_all_attrs(path);
741
742
for (i = 0; i < num; i++) {
743
const char *value = check_all_attr[check[i].attr->attr_nr].value;