From: Junio C Hamano Date: Tue, 13 Dec 2022 12:23:36 +0000 (+0900) Subject: Sync with Git 2.37.5 X-Git-Tag: v2.39.1~1^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fea9f607a88dc43e479c7c9105663f28b8a0deb9;p=thirdparty%2Fgit.git Sync with Git 2.37.5 --- fea9f607a88dc43e479c7c9105663f28b8a0deb9 diff --cc attr.c index 42ad6de8c7,c83f203aa8..b43e93ee96 --- a/attr.c +++ b/attr.c @@@ -23,8 -23,12 +23,8 @@@ static const char git_attr__unknown[] #define ATTR__UNSET NULL #define ATTR__UNKNOWN git_attr__unknown -#ifndef DEBUG_ATTR -#define DEBUG_ATTR 0 -#endif - struct git_attr { - int attr_nr; /* unique attribute number */ + unsigned int attr_nr; /* unique attribute number */ char name[FLEX_ARRAY]; /* attribute name */ }; @@@ -996,17 -1049,20 +1017,17 @@@ static int path_matches(const char *pat static int macroexpand_one(struct all_attrs_item *all_attrs, int nr, int rem); -static int fill_one(const char *what, struct all_attrs_item *all_attrs, +static int fill_one(struct all_attrs_item *all_attrs, const struct match_attr *a, int rem) { - int i; + size_t i; - for (i = a->num_attr - 1; rem > 0 && i >= 0; i--) { - const struct git_attr *attr = a->state[i].attr; + for (i = a->num_attr; rem > 0 && i > 0; i--) { + const struct git_attr *attr = a->state[i - 1].attr; const char **n = &(all_attrs[attr->attr_nr].value); - const char *v = a->state[i].setto; + const char *v = a->state[i - 1].setto; if (*n == ATTR__UNKNOWN) { - debug_set(what, - a->is_macro ? a->u.attr->name : a->u.pat.pattern, - attr, v); *n = v; rem--; rem = macroexpand_one(all_attrs, attr->attr_nr, rem);