attr: tighten const correctness with git_attr and match_attr
Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
60a12722ac
commit
e810e06357
12
attr.c
12
attr.c
@ -220,7 +220,7 @@ static void report_invalid_attr(const char *name, size_t len,
|
||||
* dictionary. If no entry is found, create a new attribute and store it in
|
||||
* the dictionary.
|
||||
*/
|
||||
static struct git_attr *git_attr_internal(const char *name, int namelen)
|
||||
static const struct git_attr *git_attr_internal(const char *name, int namelen)
|
||||
{
|
||||
struct git_attr *a;
|
||||
|
||||
@ -244,14 +244,14 @@ static struct git_attr *git_attr_internal(const char *name, int namelen)
|
||||
return a;
|
||||
}
|
||||
|
||||
struct git_attr *git_attr(const char *name)
|
||||
const struct git_attr *git_attr(const char *name)
|
||||
{
|
||||
return git_attr_internal(name, strlen(name));
|
||||
}
|
||||
|
||||
/* What does a matched pattern decide? */
|
||||
struct attr_state {
|
||||
struct git_attr *attr;
|
||||
const struct git_attr *attr;
|
||||
const char *setto;
|
||||
};
|
||||
|
||||
@ -278,7 +278,7 @@ struct pattern {
|
||||
struct match_attr {
|
||||
union {
|
||||
struct pattern pat;
|
||||
struct git_attr *attr;
|
||||
const struct git_attr *attr;
|
||||
} u;
|
||||
char is_macro;
|
||||
unsigned num_attr;
|
||||
@ -898,7 +898,7 @@ static int fill_one(const char *what, struct all_attrs_item *all_attrs,
|
||||
int i;
|
||||
|
||||
for (i = a->num_attr - 1; rem > 0 && i >= 0; i--) {
|
||||
struct git_attr *attr = a->state[i].attr;
|
||||
const struct git_attr *attr = a->state[i].attr;
|
||||
const char **n = &(all_attrs[attr->attr_nr].value);
|
||||
const char *v = a->state[i].setto;
|
||||
|
||||
@ -922,7 +922,7 @@ static int fill(const char *path, int pathlen, int basename_offset,
|
||||
const char *base = stk->origin ? stk->origin : "";
|
||||
|
||||
for (i = stk->num_matches - 1; 0 < rem && 0 <= i; i--) {
|
||||
struct match_attr *a = stk->attrs[i];
|
||||
const struct match_attr *a = stk->attrs[i];
|
||||
if (a->is_macro)
|
||||
continue;
|
||||
if (path_matches(path, pathlen, basename_offset,
|
||||
|
2
attr.h
2
attr.h
@ -11,7 +11,7 @@ struct all_attrs_item;
|
||||
* Given a string, return the gitattribute object that
|
||||
* corresponds to it.
|
||||
*/
|
||||
struct git_attr *git_attr(const char *);
|
||||
const struct git_attr *git_attr(const char *);
|
||||
|
||||
/* Internal use */
|
||||
extern const char git_attr__true[];
|
||||
|
@ -166,7 +166,8 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
|
||||
check = attr_check_alloc();
|
||||
if (!all_attrs) {
|
||||
for (i = 0; i < cnt; i++) {
|
||||
struct git_attr *a = git_attr(argv[i]);
|
||||
const struct git_attr *a = git_attr(argv[i]);
|
||||
|
||||
if (!a)
|
||||
return error("%s: not a valid attribute name",
|
||||
argv[i]);
|
||||
|
Loading…
Reference in New Issue
Block a user