diff options
Diffstat (limited to 'src/config_parse.h')
-rw-r--r-- | src/config_parse.h | 24 |
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 |