Allow ETC_GITCONFIG to be a relative path.

If ETC_GITCONFIG is not an absolute path, interpret it relative to
--exec-dir. This makes the installed binaries relocatable because the
prefix is not compiled-in.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Sixt 2007-11-13 21:05:06 +01:00 коммит произвёл Junio C Hamano
Родитель 506b17b136
Коммит 7f0e39faa2
1 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -6,6 +6,7 @@
*
*/
#include "cache.h"
#include "exec_cmd.h"
#define MAXNAME (256)
@ -461,7 +462,17 @@ int git_config_from_file(config_fn_t fn, const char *filename)
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)