diff options
Diffstat (limited to 'include/git2/config.h')
| -rw-r--r-- | include/git2/config.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/git2/config.h b/include/git2/config.h index afa661fc5..8a0f58937 100644 --- a/include/git2/config.h +++ b/include/git2/config.h @@ -29,7 +29,9 @@ struct git_config_file { /* Open means open the file/database and parse if necessary */ int (*open)(struct git_config_file *); int (*get)(struct git_config_file *, const char *key, const char **value); + int (*get_multivar)(struct git_config_file *, const char *key, const char *regexp, int (*fn)(const char *, void *), void *data); int (*set)(struct git_config_file *, const char *key, const char *value); + int (*set_multivar)(git_config_file *cfg, const char *name, const char *regexp, const char *value); int (*del)(struct git_config_file *, const char *key); int (*foreach)(struct git_config_file *, int (*fn)(const char *, const char *, void *), void *data); void (*free)(struct git_config_file *); @@ -206,6 +208,20 @@ GIT_EXTERN(int) git_config_get_bool(git_config *cfg, const char *name, int *out) GIT_EXTERN(int) git_config_get_string(git_config *cfg, const char *name, const char **out); /** + * Get each value of a multivar. + * + * The callback will be called on each variable found + * + * @param cfg where to look for the variable + * @param name the variable's name + * @param regexp regular expression to filter which variables we're + * interested in. Use NULL to indicate all + * @param fn the function to be called on each value of the variable + * @param data opaque pointer to pass to the callback + */ +GIT_EXTERN(int) git_config_get_multivar(git_config *cfg, const char *name, const char *regexp, int (*fn)(const char *, void *), void *data); + +/** * Set the value of an integer config variable. * * @param cfg where to look for the variable @@ -248,6 +264,17 @@ 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); + +/** + * Set a multivar + * + * @param cfg where to look for the variable + * @param name the variable's name + * @param regexp a regular expression to indicate which values to replace + * @param value the new value. + */ +GIT_EXTERN(int) git_config_set_multivar(git_config *cfg, const char *name, const char *regexp, const char *value); + /** * Delete a config variable * |
