summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2021-01-06 11:49:00 +0000
committerGitHub <noreply@github.com>2021-01-06 11:49:00 +0000
commit27e34f9b9843f7bcc33a4ccfe3e395fe303cba63 (patch)
tree0f2bbf08b7def90fdf7f6785936f8632ae1e151a
parentf0d7922c9bafff38e12978625f467aafebe75145 (diff)
parentddafbafef54677c3466260e52b135d5dff832624 (diff)
downloadlibgit2-master.tar.gz
Merge pull request #5759 from JoshuaS3/mastermaster
Add documentation for git_blob_filter_options.version
-rw-r--r--include/git2/blob.h16
-rw-r--r--src/blob.c9
-rw-r--r--tests/core/structinit.c5
3 files changed, 30 insertions, 0 deletions
diff --git a/include/git2/blob.h b/include/git2/blob.h
index 8e977267d..741b28f4c 100644
--- a/include/git2/blob.h
+++ b/include/git2/blob.h
@@ -118,6 +118,10 @@ typedef enum {
/**
* The options used when applying filter options to a file.
+ *
+ * Initialize with `GIT_BLOB_FILTER_OPTIONS_INIT`. Alternatively, you can
+ * use `git_blob_filter_options_init`.
+ *
*/
typedef struct {
int version;
@@ -130,6 +134,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, \