diff options
author | David Calavera <david.calavera@gmail.com> | 2015-01-06 13:49:39 -0800 |
---|---|---|
committer | Edward Thomson <ethomson@microsoft.com> | 2015-01-07 09:04:49 -0600 |
commit | c868981f0eb1af20d62c1287dad3f8c94addf999 (patch) | |
tree | 8cff80cde401ffe4fff1e75c544d39be3ec2779c | |
parent | 6a6c24e01638df91d9104e07d6ff5deaa7cb1574 (diff) | |
download | libgit2-c868981f0eb1af20d62c1287dad3f8c94addf999.tar.gz |
Add extern function to initialize submodule update options.
-rw-r--r-- | include/git2/submodule.h | 21 | ||||
-rw-r--r-- | src/submodule.c | 7 | ||||
-rw-r--r-- | tests/structinit/structinit.c | 5 |
3 files changed, 30 insertions, 3 deletions
diff --git a/include/git2/submodule.h b/include/git2/submodule.h index 31c68e3b9..f03ea2da8 100644 --- a/include/git2/submodule.h +++ b/include/git2/submodule.h @@ -110,9 +110,10 @@ typedef enum { /** * Submodule update options structure * - * Use the GIT_SUBMODULE_UPDATE_OPTIONS_INIT to get the default settings, like this: + * Use the GIT_SUBMODULE_UPDATE_OPTIONS_INIT to get the default settings, + * like this: * - * git_submodule_update_options opts = GIT_SUBMODULE_UPDATE_OPTIONS_INIT; + * git_submodule_update_options opts = GIT_SUBMODULE_UPDATE_OPTIONS_INIT; */ typedef struct git_submodule_update_options { unsigned int version; @@ -149,7 +150,21 @@ typedef struct git_submodule_update_options { } git_submodule_update_options; #define GIT_SUBMODULE_UPDATE_OPTIONS_VERSION 1 -#define GIT_SUBMODULE_UPDATE_OPTIONS_INIT {GIT_CHECKOUT_OPTIONS_VERSION, {GIT_CHECKOUT_OPTIONS_VERSION, GIT_CHECKOUT_SAFE}, GIT_REMOTE_CALLBACKS_INIT, GIT_CHECKOUT_SAFE_CREATE} +#define GIT_SUBMODULE_UPDATE_OPTIONS_INIT \ + { GIT_CHECKOUT_OPTIONS_VERSION, \ + { GIT_CHECKOUT_OPTIONS_VERSION, GIT_CHECKOUT_SAFE}, \ + GIT_REMOTE_CALLBACKS_INIT, GIT_CHECKOUT_SAFE_CREATE } + +/** + * Initializes a `git_submodule_update_options` with default values. + * Equivalent to creating an instance with GIT_SUBMODULE_UPDATE_OPTIONS_INIT. + * + * @param opts The `git_submodule_update_options` instance to initialize. + * @param version Version of struct; pass `GIT_SUBMODULE_UPDATE_OPTIONS_VERSION` + * @return Zero on success; -1 on failure. + */ +GIT_EXTERN(int) git_submodule_update_init_options( + git_submodule_update_options *opts, unsigned int version); /** * Update a submodule. This will clone a missing submodule and diff --git a/src/submodule.c b/src/submodule.c index a7bdebeb8..03714b43b 100644 --- a/src/submodule.c +++ b/src/submodule.c @@ -898,6 +898,13 @@ static int git_submodule_update_repo_init_cb( return submodule_repo_create(out, sm->repo, path); } +int git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version) +{ + GIT_INIT_STRUCTURE_FROM_TEMPLATE( + opts, version, git_submodule_update_options, GIT_SUBMODULE_UPDATE_OPTIONS_INIT); + return 0; +} + int git_submodule_update(git_submodule *sm, int init, git_submodule_update_options *_update_options) { int error; diff --git a/tests/structinit/structinit.c b/tests/structinit/structinit.c index def9fefc0..0e00ab5a0 100644 --- a/tests/structinit/structinit.c +++ b/tests/structinit/structinit.c @@ -125,4 +125,9 @@ void test_structinit_structinit__compare(void) CHECK_MACRO_FUNC_INIT_EQUAL( \ git_refdb_backend, GIT_REFDB_BACKEND_VERSION, \ GIT_REFDB_BACKEND_INIT, git_refdb_init_backend); + + /* submodule update */ + CHECK_MACRO_FUNC_INIT_EQUAL( \ + git_submodule_update_options, GIT_SUBMODULE_UPDATE_OPTIONS_VERSION, \ + GIT_SUBMODULE_UPDATE_OPTIONS_INIT, git_submodule_update_init_options); } |