summaryrefslogtreecommitdiff
path: root/src/config_parse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/config_parse.h')
-rw-r--r--src/config_parse.h24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/config_parse.h b/src/config_parse.h
index 4db31bd1f..0129ee309 100644
--- a/src/config_parse.h
+++ b/src/config_parse.h
@@ -17,24 +17,19 @@
extern const char *git_config_escapes;
extern const char *git_config_escaped;
-typedef struct config_file {
- git_futils_filestamp stamp;
- git_oid checksum;
- char *path;
- git_array_t(struct config_file) includes;
-} git_config_file;
-
typedef struct {
- git_config_file *file;
+ const char *path;
git_parse_ctx ctx;
} git_config_parser;
+#define GIT_CONFIG_PARSER_INIT { NULL, GIT_PARSE_CTX_INIT }
+
typedef int (*git_config_parser_section_cb)(
git_config_parser *parser,
const char *current_section,
const char *line,
size_t line_len,
- void *data);
+ void *payload);
typedef int (*git_config_parser_variable_cb)(
git_config_parser *parser,
@@ -43,18 +38,21 @@ typedef int (*git_config_parser_variable_cb)(
const char *var_value,
const char *line,
size_t line_len,
- void *data);
+ void *payload);
typedef int (*git_config_parser_comment_cb)(
git_config_parser *parser,
const char *line,
size_t line_len,
- void *data);
+ void *payload);
typedef int (*git_config_parser_eof_cb)(
git_config_parser *parser,
const char *current_section,
- void *data);
+ void *payload);
+
+int git_config_parser_init(git_config_parser *out, const char *path, const char *data, size_t datalen);
+void git_config_parser_dispose(git_config_parser *parser);
int git_config_parse(
git_config_parser *parser,
@@ -62,6 +60,6 @@ int git_config_parse(
git_config_parser_variable_cb on_variable,
git_config_parser_comment_cb on_comment,
git_config_parser_eof_cb on_eof,
- void *data);
+ void *payload);
#endif