Skip to content

Commit

Permalink
attr.c: clarify the logic to pop attr_stack
Browse files Browse the repository at this point in the history
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jan 10, 2012
1 parent 909ca7b commit c432ef9
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion attr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
* 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) {
int namelen = strlen(attr_stack->origin);
Expand All @@ -587,6 +589,13 @@ static void prepare_attr_stack(const char *path, int dirlen)
* Read from parent directories and push them down
*/
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) {
char *cp;

Expand Down

0 comments on commit c432ef9

Please sign in to comment.