diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2021-01-05 14:29:58 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2021-01-05 14:29:58 +0000 |
commit | d9c1538775ff77e08427d82872ac28b42f7f81ba (patch) | |
tree | c4625b354c512f62608528c0120f81e2e35f1ff4 | |
parent | f1151fb31ef0069cad1520739dd54eae0eca2652 (diff) | |
download | libgit2-d9c1538775ff77e08427d82872ac28b42f7f81ba.tar.gz |
blob: add git_blob_filter_options_init
The `git_blob_filter_options_init` function should be included, to allow
callers in FFI environments to let us initialize an options structure
for them.
-rw-r--r-- | include/git2/blob.h | 12 | ||||
-rw-r--r-- | src/blob.c | 9 | ||||
-rw-r--r-- | tests/core/structinit.c | 5 |
3 files changed, 26 insertions, 0 deletions
diff --git a/include/git2/blob.h b/include/git2/blob.h index 0c6372c64..c2a968c93 100644 --- a/include/git2/blob.h +++ b/include/git2/blob.h @@ -133,6 +133,18 @@ typedef struct { #define GIT_BLOB_FILTER_OPTIONS_INIT {GIT_BLOB_FILTER_OPTIONS_VERSION, GIT_BLOB_FILTER_CHECK_FOR_BINARY} /** + * Initialize git_blob_filter_options structure + * + * Initializes a `git_blob_filter_options` with default values. Equivalent + * to creating an instance with `GIT_BLOB_FILTER_OPTIONS_INIT`. + * + * @param opts The `git_blob_filter_options` struct to initialize. + * @param version The struct version; pass `GIT_BLOB_FILTER_OPTIONS_VERSION`. + * @return Zero on success; -1 on failure. + */ +GIT_EXTERN(int) git_blob_filter_options_init(git_blob_filter_options *opts, unsigned int version); + +/** * Get a buffer with the filtered content of a blob. * * This applies filters as if the blob was being checked out to the diff --git a/src/blob.c b/src/blob.c index 97069645c..545c10eb8 100644 --- a/src/blob.c +++ b/src/blob.c @@ -408,6 +408,15 @@ int git_blob_is_binary(const git_blob *blob) return git_buf_text_is_binary(&content); } +int git_blob_filter_options_init( + git_blob_filter_options *opts, + unsigned int version) +{ + GIT_INIT_STRUCTURE_FROM_TEMPLATE(opts, version, + git_blob_filter_options, GIT_BLOB_FILTER_OPTIONS_INIT); + return 0; +} + int git_blob_filter( git_buf *out, git_blob *blob, diff --git a/tests/core/structinit.c b/tests/core/structinit.c index 192096be3..b6377bdde 100644 --- a/tests/core/structinit.c +++ b/tests/core/structinit.c @@ -82,6 +82,11 @@ void test_core_structinit__compare(void) git_blame_options, GIT_BLAME_OPTIONS_VERSION, \ GIT_BLAME_OPTIONS_INIT, git_blame_options_init); + /* blob_filter_options */ + CHECK_MACRO_FUNC_INIT_EQUAL( \ + git_blob_filter_options, GIT_BLOB_FILTER_OPTIONS_VERSION, \ + GIT_BLOB_FILTER_OPTIONS_INIT, git_blob_filter_options_init); + /* checkout */ CHECK_MACRO_FUNC_INIT_EQUAL( \ git_checkout_options, GIT_CHECKOUT_OPTIONS_VERSION, \ |