Commit c868981f by David Calavera Committed by Edward Thomson

Add extern function to initialize submodule update options.

parent 6a6c24e0
...@@ -110,9 +110,10 @@ typedef enum { ...@@ -110,9 +110,10 @@ typedef enum {
/** /**
* Submodule update options structure * 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 { typedef struct git_submodule_update_options {
unsigned int version; unsigned int version;
...@@ -149,7 +150,21 @@ typedef struct git_submodule_update_options { ...@@ -149,7 +150,21 @@ typedef struct git_submodule_update_options {
} git_submodule_update_options; } git_submodule_update_options;
#define GIT_SUBMODULE_UPDATE_OPTIONS_VERSION 1 #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 * Update a submodule. This will clone a missing submodule and
......
...@@ -898,6 +898,13 @@ static int git_submodule_update_repo_init_cb( ...@@ -898,6 +898,13 @@ static int git_submodule_update_repo_init_cb(
return submodule_repo_create(out, sm->repo, path); 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 git_submodule_update(git_submodule *sm, int init, git_submodule_update_options *_update_options)
{ {
int error; int error;
......
...@@ -125,4 +125,9 @@ void test_structinit_structinit__compare(void) ...@@ -125,4 +125,9 @@ void test_structinit_structinit__compare(void)
CHECK_MACRO_FUNC_INIT_EQUAL( \ CHECK_MACRO_FUNC_INIT_EQUAL( \
git_refdb_backend, GIT_REFDB_BACKEND_VERSION, \ git_refdb_backend, GIT_REFDB_BACKEND_VERSION, \
GIT_REFDB_BACKEND_INIT, git_refdb_init_backend); 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);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment