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;