attr.c: clarify the logic to pop attr_stack
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
909ca7b9ac
commit
c432ef996e
11
attr.c
11
attr.c
@ -567,7 +567,9 @@ static void prepare_attr_stack(const char *path, int dirlen)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Pop the ones from directories that are not the prefix of
|
* Pop the ones from directories that are not the prefix of
|
||||||
* the path we are checking.
|
* the path we are checking. Break out of the loop when we see
|
||||||
|
* the root one (whose origin is an empty string "") or the builtin
|
||||||
|
* one (whose origin is NULL) without popping it.
|
||||||
*/
|
*/
|
||||||
while (attr_stack->origin) {
|
while (attr_stack->origin) {
|
||||||
int namelen = strlen(attr_stack->origin);
|
int namelen = strlen(attr_stack->origin);
|
||||||
@ -587,6 +589,13 @@ static void prepare_attr_stack(const char *path, int dirlen)
|
|||||||
* Read from parent directories and push them down
|
* Read from parent directories and push them down
|
||||||
*/
|
*/
|
||||||
if (!is_bare_repository() || direction == GIT_ATTR_INDEX) {
|
if (!is_bare_repository() || direction == GIT_ATTR_INDEX) {
|
||||||
|
/*
|
||||||
|
* bootstrap_attr_stack() should have added, and the
|
||||||
|
* above loop should have stopped before popping, the
|
||||||
|
* root element whose attr_stack->origin is set to an
|
||||||
|
* empty string.
|
||||||
|
*/
|
||||||
|
assert(attr_stack->origin);
|
||||||
while (1) {
|
while (1) {
|
||||||
char *cp;
|
char *cp;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user