Re: [PATCH v2 10/12] attr: convert git_all_attrs() to use "struct git_attr_check"
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 17, 2016, 21:08 UTC
- Message-ID
- <xmqq7fesv1d6.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqeg90y5yz.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 5 quoted lines
> Given that one of the two expected callers, namely, "check-attr" and > Stefan's pathspec label magic, of this "alloc and then append" side > of the API wants to have an access to git_attr(name), I think > the function signature for this one should be updated to take not > "const char *name" but instead take "struct git_attr *attr", i.e.
Perhaps this can be squashed into 12/12 to update the tutorial part to cover this less often used form.
Documentation/technical/api-gitattributes.txt | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/Documentation/technical/api-gitattributes.txt b/Documentation/technical/api-gitattributes.txt index 6f13f94..92fc32a 100644 --- a/Documentation/technical/api-gitattributes.txt +++ b/Documentation/technical/api-gitattributes.txt @@ -55,7 +55,11 @@ Querying Specific Attributes * Prepare `struct git_attr_check` using git_attr_check_initl() function, enumerating the names of attributes whose values you are - interested in, terminated with a NULL pointer. + interested in, terminated with a NULL pointer. Alternatively, an + empty `struct git_attr_check` can be prepared by calling + `git_attr_check_alloc()` function and then attributes you want to + ask about can be added to it with `git_attr_check_append()` + function. * Call `git_check_attr()` to check the attributes for the path. @@ -112,6 +116,22 @@ static void setup_check(void) } ------------ +To see how attributes in argv[] are set for different paths, only +the first step in the above would be different. + +------------ +static struct git_attr_check *check; +static void setup_check(const char **argv) +{ + check = git_attr_check_alloc(); + while (*argv) { + struct git_attr *attr = git_attr(*argv); + git_attr_check_append(check, attr); + argv++; + } +} +------------ + Querying All Attributes -----------------------