diff options
Diffstat (limited to 'setup.c')
| -rw-r--r-- | setup.c | 17 | 
1 files changed, 12 insertions, 5 deletions
@@ -229,14 +229,21 @@ void verify_non_filename(const char *prefix, const char *arg)  int get_common_dir(struct strbuf *sb, const char *gitdir)  { +	const char *git_env_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT); +	if (git_env_common_dir) { +		strbuf_addstr(sb, git_env_common_dir); +		return 1; +	} else { +		return get_common_dir_noenv(sb, gitdir); +	} +} + +int get_common_dir_noenv(struct strbuf *sb, const char *gitdir) +{  	struct strbuf data = STRBUF_INIT;  	struct strbuf path = STRBUF_INIT; -	const char *git_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT);  	int ret = 0; -	if (git_common_dir) { -		strbuf_addstr(sb, git_common_dir); -		return 1; -	} +  	strbuf_addf(&path, "%s/commondir", gitdir);  	if (file_exists(path.buf)) {  		if (strbuf_read_file(&data, path.buf, 0) <= 0)  | 
