On 08/02/2011 05:34 PM, Junio C Hamano wrote: > Michael Haggerty <mhagger@xxxxxxxxxxxx> writes: > >> Add a function, git_allattrs(), that reports on all attributes that >> are set on a path. >> >> Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> >> --- >> Documentation/technical/api-gitattributes.txt | 45 +++++++++++++++++------- >> attr.c | 43 +++++++++++++++++++++++ >> attr.h | 9 +++++ >> 3 files changed, 84 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/technical/api-gitattributes.txt b/Documentation/technical/api-gitattributes.txt >> index ab3a84d..640240e 100644 >> --- a/Documentation/technical/api-gitattributes.txt >> +++ b/Documentation/technical/api-gitattributes.txt >> @@ -22,19 +22,6 @@ Data Structure >> ... >> (JC) > > The last line, I think, can now be dropped. This was a marker saying "we > lack documentation for this API; bug this person for necessary information > and write one". OK; I will drop the line in the re-roll. >> diff --git a/attr.c b/attr.c >> index bfa1f43..9c2fca8 100644 >> --- a/attr.c >> +++ b/attr.c >> @@ -737,6 +737,49 @@ int git_checkattr(const char *path, int num, struct git_attr_check *check) >> return 0; >> } >> >> +int git_allattrs(const char *path, int *num, struct git_attr_check **check) >> +{ >> + struct attr_stack *stk; >> + const char *cp; >> + int dirlen, pathlen, i, rem, count, j; >> + >> + bootstrap_attr_stack(); >> + for (i = 0; i < attr_nr; i++) >> + check_all_attr[i].value = ATTR__UNKNOWN; >> + >> + pathlen = strlen(path); >> + cp = strrchr(path, '/'); >> + if (!cp) >> + dirlen = 0; >> + else >> + dirlen = cp - path; >> + prepare_attr_stack(path, dirlen); >> + rem = attr_nr; >> + for (stk = attr_stack; 0 < rem && stk; stk = stk->prev) >> + rem = fill(path, pathlen, stk, rem); > > Shouldn't the above part at least should be refactored instead of copied > and pasted from git_checkattr()? Quite right. Will be fixed in re-roll. Michael -- Michael Haggerty mhagger@xxxxxxxxxxxx http://softwareswirl.blogspot.com/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html