diff options
author | Patrick Steinhardt <ps@pks.im> | 2017-11-11 15:30:43 +0000 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2017-11-11 17:06:20 +0000 |
commit | ef1395f315ba137be64744a3a6b9d784db44fded (patch) | |
tree | a4cb6e7f04fbfeeeddec26f5ace6e368bad3e455 /src/diff_parse.c | |
parent | 0393ecc6f8bb19e4ba55fd45e7bbde6596f9b334 (diff) | |
download | libgit2-ef1395f315ba137be64744a3a6b9d784db44fded.tar.gz |
parse: extract parse module
The `git_patch_parse_ctx` encapsulates both parser state as well as
options specific to patch parsing. To advance this state and keep it
consistent, we provide a few functions which handle advancing the
current position and accessing bytes of the patch contents. In fact,
these functions are quite generic and not related to patch-parsing by
themselves. Seeing that we have similar logic inside of other modules,
it becomes quite enticing to extract this functionality into its own
parser module.
To do so, we create a new module `parse` with a central struct called
`git_parse_ctx`. It encapsulates both the content that is to be parsed
as well as its lengths and the current position. `git_patch_parse_ctx`
now only contains this `parse_ctx` only, which is then accessed whenever
we need to touch the current parser. This is the first step towards
re-using this functionality across other modules which require parsing
functionality and remove code-duplication.
Diffstat (limited to 'src/diff_parse.c')
-rw-r--r-- | src/diff_parse.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/diff_parse.c b/src/diff_parse.c index 78da3b675..2838314a2 100644 --- a/src/diff_parse.c +++ b/src/diff_parse.c @@ -83,7 +83,7 @@ int git_diff_from_buffer( ctx = git_patch_parse_ctx_init(content, content_len, NULL); GITERR_CHECK_ALLOC(ctx); - while (ctx->remain_len) { + while (ctx->parse_ctx.remain_len) { if ((error = git_patch_parse(&patch, ctx)) < 0) break; |