Increment num_attr in parse_attr_line(), not parse_attr()
num_attr is incremented iff parse_attr() returns non-NULL. So do the counting in parse_attr_line() instead of within parse_attr(). This allows an integer rather than a pointer to an integer to be passed to parse_attr(). Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
ba845b7550
commit
4c7517c9cc
8
attr.c
8
attr.c
|
|
@ -140,7 +140,7 @@ struct match_attr {
|
||||||
static const char blank[] = " \t\r\n";
|
static const char blank[] = " \t\r\n";
|
||||||
|
|
||||||
static const char *parse_attr(const char *src, int lineno, const char *cp,
|
static const char *parse_attr(const char *src, int lineno, const char *cp,
|
||||||
int *num_attr, struct match_attr *res)
|
int num_attr, struct match_attr *res)
|
||||||
{
|
{
|
||||||
const char *ep, *equals;
|
const char *ep, *equals;
|
||||||
int len;
|
int len;
|
||||||
|
|
@ -167,7 +167,7 @@ static const char *parse_attr(const char *src, int lineno, const char *cp,
|
||||||
} else {
|
} else {
|
||||||
struct attr_state *e;
|
struct attr_state *e;
|
||||||
|
|
||||||
e = &(res->state[*num_attr]);
|
e = &(res->state[num_attr]);
|
||||||
if (*cp == '-' || *cp == '!') {
|
if (*cp == '-' || *cp == '!') {
|
||||||
e->setto = (*cp == '-') ? ATTR__FALSE : ATTR__UNSET;
|
e->setto = (*cp == '-') ? ATTR__FALSE : ATTR__UNSET;
|
||||||
cp++;
|
cp++;
|
||||||
|
|
@ -180,7 +180,6 @@ static const char *parse_attr(const char *src, int lineno, const char *cp,
|
||||||
}
|
}
|
||||||
e->attr = git_attr_internal(cp, len);
|
e->attr = git_attr_internal(cp, len);
|
||||||
}
|
}
|
||||||
(*num_attr)++;
|
|
||||||
return ep + strspn(ep, blank);
|
return ep + strspn(ep, blank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -226,9 +225,10 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
|
||||||
cp = name + namelen;
|
cp = name + namelen;
|
||||||
cp = cp + strspn(cp, blank);
|
cp = cp + strspn(cp, blank);
|
||||||
while (*cp) {
|
while (*cp) {
|
||||||
cp = parse_attr(src, lineno, cp, &num_attr, res);
|
cp = parse_attr(src, lineno, cp, num_attr, res);
|
||||||
if (!cp)
|
if (!cp)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
num_attr++;
|
||||||
}
|
}
|
||||||
if (pass)
|
if (pass)
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue