Re: [PATCH v2 09/19] Allow querying all attributes on a file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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".

> 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()?
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]