mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-12 01:15:09 +00:00
config: foreach
now returns variable values too
This commit is contained in:
parent
7376ad9927
commit
cfef5fb779
@ -48,7 +48,7 @@ struct git_config_file {
|
|||||||
int (*open)(struct git_config_file *);
|
int (*open)(struct git_config_file *);
|
||||||
int (*get)(struct git_config_file *, const char *key, const char **value);
|
int (*get)(struct git_config_file *, const char *key, const char **value);
|
||||||
int (*set)(struct git_config_file *, const char *key, const char *value);
|
int (*set)(struct git_config_file *, const char *key, const char *value);
|
||||||
int (*foreach)(struct git_config_file *, int (*fn)(const char *, void *), void *data);
|
int (*foreach)(struct git_config_file *, int (*fn)(const char *, const char *, void *), void *data);
|
||||||
void (*free)(struct git_config_file *);
|
void (*free)(struct git_config_file *);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -254,19 +254,22 @@ GIT_EXTERN(int) git_config_set_bool(git_config *cfg, const char *name, int value
|
|||||||
GIT_EXTERN(int) git_config_set_string(git_config *cfg, const char *name, const char *value);
|
GIT_EXTERN(int) git_config_set_string(git_config *cfg, const char *name, const char *value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform an operation on each config variable.
|
* Perform an operation on each config variable
|
||||||
*
|
*
|
||||||
* The callback is passed a pointer to a config variable name and the
|
* The callback receives the normalized name and value of each variable
|
||||||
* data pointer passed to this function. As soon as one of the
|
* in the config backend, and the data pointer passed to this function.
|
||||||
* callback functions returns something other than 0, this function
|
* As soon as one of the callback functions returns something other than 0,
|
||||||
* returns that value.
|
* this function returns that value.
|
||||||
*
|
*
|
||||||
* @param cfg where to get the variables from
|
* @param cfg where to get the variables from
|
||||||
* @param callback the function to call on each variable
|
* @param callback the function to call on each variable
|
||||||
* @param data the data to pass to the callback
|
* @param data the data to pass to the callback
|
||||||
* @return GIT_SUCCESS or the return value of the callback which didn't return 0
|
* @return GIT_SUCCESS or the return value of the callback which didn't return 0
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_config_foreach(git_config *cfg, int (*callback)(const char *, void *data), void *data);
|
GIT_EXTERN(int) git_config_foreach(
|
||||||
|
git_config *cfg,
|
||||||
|
int (*callback)(const char *var_name, const char *value, void *payload),
|
||||||
|
void *payload);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
GIT_END_DECL
|
GIT_END_DECL
|
||||||
|
@ -151,7 +151,7 @@ int git_config_add_file(git_config *cfg, git_config_file *file, int priority)
|
|||||||
* Loop over all the variables
|
* Loop over all the variables
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int git_config_foreach(git_config *cfg, int (*fn)(const char *, void *), void *data)
|
int git_config_foreach(git_config *cfg, int (*fn)(const char *, const char *, void *), void *data)
|
||||||
{
|
{
|
||||||
int ret = GIT_SUCCESS;
|
int ret = GIT_SUCCESS;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -310,7 +310,7 @@ static void backend_free(git_config_file *_backend)
|
|||||||
free(backend);
|
free(backend);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int file_foreach(git_config_file *backend, int (*fn)(const char *, void *), void *data)
|
static int file_foreach(git_config_file *backend, int (*fn)(const char *, const char *, void *), void *data)
|
||||||
{
|
{
|
||||||
int ret = GIT_SUCCESS;
|
int ret = GIT_SUCCESS;
|
||||||
cvar_t *var;
|
cvar_t *var;
|
||||||
@ -323,7 +323,7 @@ static int file_foreach(git_config_file *backend, int (*fn)(const char *, void *
|
|||||||
if (ret < GIT_SUCCESS)
|
if (ret < GIT_SUCCESS)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = fn(normalized, data);
|
ret = fn(normalized, var->value, data);
|
||||||
free(normalized);
|
free(normalized);
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user