diff options
| author | Jakob Pfender <jpfender@elegosoft.com> | 2011-05-17 15:31:05 +0200 |
|---|---|---|
| committer | Jakob Pfender <jpfender@elegosoft.com> | 2011-05-17 15:31:05 +0200 |
| commit | 050e8877dda969b62f47a180b865a4447785e9c7 (patch) | |
| tree | 42ba240edc5f0c0f49e7effe7f8881df2fdca775 /include/git2/config_backend.h | |
| parent | e3c7786b22b385d7ec5049c5315c74bd37182e8c (diff) | |
| parent | c9662061f25ea51f39018a278b98c9a9b4410e84 (diff) | |
| download | libgit2-050e8877dda969b62f47a180b865a4447785e9c7.tar.gz | |
Merge branch 'development' into unmerged
Diffstat (limited to 'include/git2/config_backend.h')
| -rw-r--r-- | include/git2/config_backend.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/include/git2/config_backend.h b/include/git2/config_backend.h new file mode 100644 index 000000000..427cd95dd --- /dev/null +++ b/include/git2/config_backend.h @@ -0,0 +1,57 @@ +/* + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, + * as published by the Free Software Foundation. + * + * In addition to the permissions in the GNU General Public License, + * the authors give you unlimited permission to link the compiled + * version of this file into combinations with other programs, + * and to distribute those combinations without any restriction + * coming from the use of this file. (The General Public License + * restrictions do apply in other respects; for example, they cover + * modification of the file, and distribution when not linked into + * a combined executable.) + * + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef INCLUDE_git_config_backend_h__ +#define INCLUDE_git_config_backend_h__ + +#include "common.h" +#include "types.h" +#include "config.h" + +GIT_BEGIN_DECL + +struct git_config; + +struct git_config_backend { + struct git_config *cfg; + /* Open means open the file/database and parse if necessary */ + int (*open)(struct git_config_backend *); + int (* get)(struct git_config_backend *, const char *key, const char **value); + int (* set)(struct git_config_backend *, const char *key, const char *value); + int (*foreach)(struct git_config_backend *, int (*fn)(const char *, void *), void *data); + void (*free)(struct git_config_backend *); +}; + +/** + * Create a file-backed configuration backend + * + * @param out the new backend + * @path where the config file is located + */ +GIT_EXTERN(int) git_config_backend_file(struct git_config_backend **out, const char *path); + +GIT_END_DECL + +#endif |
