aboutsummaryrefslogtreecommitdiff
path: root/attr.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-12-13 07:33:41 -0800
committerJunio C Hamano <gitster@pobox.com>2024-12-13 07:33:42 -0800
commitcd0a222f088992fc42cdd9bc0df4aa25474f0639 (patch)
treeaeb0b48bca35dafc3619a2918470a767edeb1455 /attr.c
parente56c283c158a517650d770bcc8fd58bdeb8510b8 (diff)
parent751d063f27a1d3c77ef092d4737524c55c65d972 (diff)
downloadgit-cd0a222f088992fc42cdd9bc0df4aa25474f0639.tar.xz
Merge branch 'es/oss-fuzz'
Backport oss-fuzz tests for us to our codebase. * es/oss-fuzz: fuzz: port fuzz-url-decode-mem from OSS-Fuzz fuzz: port fuzz-parse-attr-line from OSS-Fuzz fuzz: port fuzz-credential-from-url-gently from OSS-Fuzz
Diffstat (limited to 'attr.c')
-rw-r--r--attr.c40
1 files changed, 2 insertions, 38 deletions
diff --git a/attr.c b/attr.c
index c605d2c170..192936c4bc 100644
--- a/attr.c
+++ b/attr.c
@@ -259,42 +259,6 @@ 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 {
- const struct git_attr *attr;
- const char *setto;
-};
-
-struct pattern {
- const char *pattern;
- int patternlen;
- int nowildcardlen;
- unsigned flags; /* PATTERN_FLAG_* */
-};
-
-/*
- * One rule, as from a .gitattributes file.
- *
- * If is_macro is true, then u.attr is a pointer to the git_attr being
- * defined.
- *
- * If is_macro is false, then u.pat is the filename pattern to which the
- * rule applies.
- *
- * In either case, num_attr is the number of attributes affected by
- * this rule, and state is an array listing them. The attributes are
- * listed as they appear in the file (macros unexpanded).
- */
-struct match_attr {
- union {
- struct pattern pat;
- const struct git_attr *attr;
- } u;
- char is_macro;
- size_t num_attr;
- struct attr_state state[FLEX_ARRAY];
-};
-
static const char blank[] = " \t\r\n";
/* Flags usable in read_attr() and parse_attr_line() family of functions. */
@@ -353,8 +317,8 @@ static const char *parse_attr(const char *src, int lineno, const char *cp,
return ep + strspn(ep, blank);
}
-static struct match_attr *parse_attr_line(const char *line, const char *src,
- int lineno, unsigned flags)
+struct match_attr *parse_attr_line(const char *line, const char *src,
+ int lineno, unsigned flags)
{
size_t namelen, num_attr, i;
const char *cp, *name, *states;