Re: [PATCH v2 09/19] Allow querying all attributes on a file
On 08/02/2011 05:34 PM, Junio C Hamano wrote:
Show 23 quoted lines
> Michael Haggerty <mhagger@alum.mit.edu> writes:
>
>> Add a function, git_allattrs(), that reports on all attributes that
>> are set on a path.
>>
>> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
>> ---
>> 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.
Show 31 quoted lines
>> 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@alum.mit.edu
http://softwareswirl.blogspot.com/