revert(3p/git): Revert merge of git upstream at v2.26.2
This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
This commit is contained in:
parent
6f8fbf4aa4
commit
93ba78d6f4
1006 changed files with 60537 additions and 148724 deletions
37
third_party/git/attr.c
vendored
37
third_party/git/attr.c
vendored
|
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Handle git attributes. See gitattributes(5) for a description of
|
||||
* the file syntax, and attr.h for a description of the API.
|
||||
* the file syntax, and Documentation/technical/api-gitattributes.txt
|
||||
* for a description of the API.
|
||||
*
|
||||
* One basic design decision here is that we are not going to support
|
||||
* an insanely large number of attributes.
|
||||
|
|
@ -61,7 +62,7 @@ static struct attr_hashmap g_attr_hashmap;
|
|||
|
||||
/* The container for objects stored in "struct attr_hashmap" */
|
||||
struct attr_hash_entry {
|
||||
struct hashmap_entry ent;
|
||||
struct hashmap_entry ent; /* must be the first member! */
|
||||
const char *key; /* the key; memory should be owned by value */
|
||||
size_t keylen; /* length of the key */
|
||||
void *value; /* the stored value */
|
||||
|
|
@ -69,14 +70,12 @@ struct attr_hash_entry {
|
|||
|
||||
/* attr_hashmap comparison function */
|
||||
static int attr_hash_entry_cmp(const void *unused_cmp_data,
|
||||
const struct hashmap_entry *eptr,
|
||||
const struct hashmap_entry *entry_or_key,
|
||||
const void *entry,
|
||||
const void *entry_or_key,
|
||||
const void *unused_keydata)
|
||||
{
|
||||
const struct attr_hash_entry *a, *b;
|
||||
|
||||
a = container_of(eptr, const struct attr_hash_entry, ent);
|
||||
b = container_of(entry_or_key, const struct attr_hash_entry, ent);
|
||||
const struct attr_hash_entry *a = entry;
|
||||
const struct attr_hash_entry *b = entry_or_key;
|
||||
return (a->keylen != b->keylen) || strncmp(a->key, b->key, a->keylen);
|
||||
}
|
||||
|
||||
|
|
@ -99,10 +98,10 @@ static void *attr_hashmap_get(struct attr_hashmap *map,
|
|||
if (!map->map.tablesize)
|
||||
attr_hashmap_init(map);
|
||||
|
||||
hashmap_entry_init(&k.ent, memhash(key, keylen));
|
||||
hashmap_entry_init(&k, memhash(key, keylen));
|
||||
k.key = key;
|
||||
k.keylen = keylen;
|
||||
e = hashmap_get_entry(&map->map, &k, ent, NULL);
|
||||
e = hashmap_get(&map->map, &k, NULL);
|
||||
|
||||
return e ? e->value : NULL;
|
||||
}
|
||||
|
|
@ -118,12 +117,12 @@ static void attr_hashmap_add(struct attr_hashmap *map,
|
|||
attr_hashmap_init(map);
|
||||
|
||||
e = xmalloc(sizeof(struct attr_hash_entry));
|
||||
hashmap_entry_init(&e->ent, memhash(key, keylen));
|
||||
hashmap_entry_init(e, memhash(key, keylen));
|
||||
e->key = key;
|
||||
e->keylen = keylen;
|
||||
e->value = value;
|
||||
|
||||
hashmap_add(&map->map, &e->ent);
|
||||
hashmap_add(&map->map, e);
|
||||
}
|
||||
|
||||
struct all_attrs_item {
|
||||
|
|
@ -162,12 +161,12 @@ static void all_attrs_init(struct attr_hashmap *map, struct attr_check *check)
|
|||
if (size != check->all_attrs_nr) {
|
||||
struct attr_hash_entry *e;
|
||||
struct hashmap_iter iter;
|
||||
hashmap_iter_init(&map->map, &iter);
|
||||
|
||||
REALLOC_ARRAY(check->all_attrs, size);
|
||||
check->all_attrs_nr = size;
|
||||
|
||||
hashmap_for_each_entry(&map->map, &iter, e,
|
||||
ent /* member name */) {
|
||||
while ((e = hashmap_iter_next(&iter))) {
|
||||
const struct git_attr *a = e->value;
|
||||
check->all_attrs[a->attr_nr].attr = a;
|
||||
}
|
||||
|
|
@ -260,7 +259,7 @@ struct pattern {
|
|||
const char *pattern;
|
||||
int patternlen;
|
||||
int nowildcardlen;
|
||||
unsigned flags; /* PATTERN_FLAG_* */
|
||||
unsigned flags; /* EXC_FLAG_* */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -401,11 +400,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
|
|||
char *p = (char *)&(res->state[num_attr]);
|
||||
memcpy(p, name, namelen);
|
||||
res->u.pat.pattern = p;
|
||||
parse_path_pattern(&res->u.pat.pattern,
|
||||
parse_exclude_pattern(&res->u.pat.pattern,
|
||||
&res->u.pat.patternlen,
|
||||
&res->u.pat.flags,
|
||||
&res->u.pat.nowildcardlen);
|
||||
if (res->u.pat.flags & PATTERN_FLAG_NEGATIVE) {
|
||||
if (res->u.pat.flags & EXC_FLAG_NEGATIVE) {
|
||||
warning(_("Negative patterns are ignored in git attributes\n"
|
||||
"Use '\\!' for literal leading exclamation."));
|
||||
goto fail_return;
|
||||
|
|
@ -992,10 +991,10 @@ static int path_matches(const char *pathname, int pathlen,
|
|||
int prefix = pat->nowildcardlen;
|
||||
int isdir = (pathlen && pathname[pathlen - 1] == '/');
|
||||
|
||||
if ((pat->flags & PATTERN_FLAG_MUSTBEDIR) && !isdir)
|
||||
if ((pat->flags & EXC_FLAG_MUSTBEDIR) && !isdir)
|
||||
return 0;
|
||||
|
||||
if (pat->flags & PATTERN_FLAG_NODIR) {
|
||||
if (pat->flags & EXC_FLAG_NODIR) {
|
||||
return match_basename(pathname + basename_offset,
|
||||
pathlen - basename_offset - isdir,
|
||||
pattern, prefix,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue