diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-10-20 17:42:42 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-10-21 15:11:18 +0200 |
commit | 8c7c5fa585c6a63dc8186febd6e032880655e85e (patch) | |
tree | 4fcfb2caf1ef82127605f03b2073ac4e75a561c8 /src/sysdir.c | |
parent | 4280fabb9f79df6c4d95b1f08b97a03874b167eb (diff) | |
download | libgit2-cmn/programdata-config.tar.gz |
config: add a ProgramData levelcmn/programdata-config
This is where portable git stores the global configuration which we can
use to adhere to it even though git isn't quite installed on the system.
Diffstat (limited to 'src/sysdir.c')
-rw-r--r-- | src/sysdir.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/sysdir.c b/src/sysdir.c index 2795de491..bf53d830f 100644 --- a/src/sysdir.c +++ b/src/sysdir.c @@ -15,6 +15,16 @@ #include "win32/findfile.h" #endif +static int git_sysdir_guess_programdata_dirs(git_buf *out) +{ +#ifdef GIT_WIN32 + return git_win32__find_programdata_dirs(out); +#else + git_buf_clear(out); + return 0; +#endif +} + static int git_sysdir_guess_system_dirs(git_buf *out) { #ifdef GIT_WIN32 @@ -76,12 +86,13 @@ static int git_sysdir_guess_template_dirs(git_buf *out) typedef int (*git_sysdir_guess_cb)(git_buf *out); static git_buf git_sysdir__dirs[GIT_SYSDIR__MAX] = - { GIT_BUF_INIT, GIT_BUF_INIT, GIT_BUF_INIT, GIT_BUF_INIT }; + { GIT_BUF_INIT, GIT_BUF_INIT, GIT_BUF_INIT, GIT_BUF_INIT, GIT_BUF_INIT }; static git_sysdir_guess_cb git_sysdir__dir_guess[GIT_SYSDIR__MAX] = { git_sysdir_guess_system_dirs, git_sysdir_guess_global_dirs, git_sysdir_guess_xdg_dirs, + git_sysdir_guess_programdata_dirs, git_sysdir_guess_template_dirs, }; @@ -258,6 +269,12 @@ int git_sysdir_find_xdg_file(git_buf *path, const char *filename) path, filename, GIT_SYSDIR_XDG, "global/xdg"); } +int git_sysdir_find_programdata_file(git_buf *path, const char *filename) +{ + return git_sysdir_find_in_dirlist( + path, filename, GIT_SYSDIR_PROGRAMDATA, "ProgramData"); +} + int git_sysdir_find_template_dir(git_buf *path) { return git_sysdir_find_in_dirlist( |