diff --git a/config.c b/config.c
index cee2d26d0ce19a085fd5de275f8b295b0865c9a6..ed96213c44265289c26d46edaaf740cebd0b4c86 100644 (file)
--- a/config.c
+++ b/config.c
*
*/
#include "cache.h"
+#include "exec_cmd.h"
#define MAXNAME (256)
const char *git_etc_gitconfig(void)
{
- return ETC_GITCONFIG;
+ static const char *system_wide;
+ if (!system_wide) {
+ system_wide = ETC_GITCONFIG;
+ if (!is_absolute_path(system_wide)) {
+ /* interpret path relative to exec-dir */
+ const char *exec_path = git_exec_path();
+ system_wide = prefix_path(exec_path, strlen(exec_path),
+ system_wide);
+ }
+ }
+ return system_wide;
}
int git_config(config_fn_t fn)