mirror of
https://github.com/git/git.git
synced 2026-03-14 18:59:04 +01:00
Introduce git_etc_gitconfig() that encapsulates access of ETC_GITCONFIG.
In a subsequent patch the path to the system-wide config file will be computed. This is a preparation for that change. It turns all accesses of ETC_GITCONFIG into function calls. There is no change in behavior. As a consequence, config.c is the only file that needs the definition of ETC_GITCONFIG. Hence, -DETC_GITCONFIG is removed from the CFLAGS and a special build rule for config.c is introduced. As a side-effect, changing the defintion of ETC_GITCONFIG (e.g. in config.mak) does not trigger a complete rebuild anymore. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
This commit is contained in:
5
Makefile
5
Makefile
@@ -731,7 +731,7 @@ TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
|
||||
LIBS = $(GITLIBS) $(EXTLIBS)
|
||||
|
||||
BASIC_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' \
|
||||
-DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' $(COMPAT_CFLAGS)
|
||||
$(COMPAT_CFLAGS)
|
||||
LIB_OBJS += $(COMPAT_OBJS)
|
||||
|
||||
ALL_CFLAGS += $(BASIC_CFLAGS)
|
||||
@@ -878,6 +878,9 @@ exec_cmd.o: exec_cmd.c GIT-CFLAGS
|
||||
builtin-init-db.o: builtin-init-db.c GIT-CFLAGS
|
||||
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $<
|
||||
|
||||
config.o: config.c GIT-CFLAGS
|
||||
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' $<
|
||||
|
||||
http.o: http.c GIT-CFLAGS
|
||||
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $<
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ static int get_value(const char* key_, const char* regex_)
|
||||
local = repo_config = xstrdup(git_path("config"));
|
||||
if (home)
|
||||
global = xstrdup(mkpath("%s/.gitconfig", home));
|
||||
system_wide = ETC_GITCONFIG;
|
||||
system_wide = git_etc_gitconfig();
|
||||
}
|
||||
|
||||
key = xstrdup(key_);
|
||||
@@ -154,7 +154,7 @@ int cmd_config(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
}
|
||||
else if (!strcmp(argv[1], "--system"))
|
||||
setenv("GIT_CONFIG", ETC_GITCONFIG, 1);
|
||||
setenv("GIT_CONFIG", git_etc_gitconfig(), 1);
|
||||
else if (!strcmp(argv[1], "--rename-section")) {
|
||||
int ret;
|
||||
if (argc != 4)
|
||||
|
||||
1
cache.h
1
cache.h
@@ -507,6 +507,7 @@ extern int git_config_bool(const char *, const char *);
|
||||
extern int git_config_set(const char *, const char *);
|
||||
extern int git_config_set_multivar(const char *, const char *, const char *, int);
|
||||
extern int git_config_rename_section(const char *, const char *);
|
||||
extern const char *git_etc_gitconfig(void);
|
||||
extern int check_repository_format_version(const char *var, const char *value);
|
||||
|
||||
#define MAX_GITNAME (1000)
|
||||
|
||||
10
config.c
10
config.c
@@ -6,6 +6,7 @@
|
||||
*
|
||||
*/
|
||||
#include "cache.h"
|
||||
#include "exec_cmd.h"
|
||||
|
||||
#define MAXNAME (256)
|
||||
|
||||
@@ -392,6 +393,11 @@ int git_config_from_file(config_fn_t fn, const char *filename)
|
||||
return ret;
|
||||
}
|
||||
|
||||
const char *git_etc_gitconfig(void)
|
||||
{
|
||||
return ETC_GITCONFIG;
|
||||
}
|
||||
|
||||
int git_config(config_fn_t fn)
|
||||
{
|
||||
int ret = 0;
|
||||
@@ -404,8 +410,8 @@ int git_config(config_fn_t fn)
|
||||
* config file otherwise. */
|
||||
filename = getenv(CONFIG_ENVIRONMENT);
|
||||
if (!filename) {
|
||||
if (!access(ETC_GITCONFIG, R_OK))
|
||||
ret += git_config_from_file(fn, ETC_GITCONFIG);
|
||||
if (!access(git_etc_gitconfig(), R_OK))
|
||||
ret += git_config_from_file(fn, git_etc_gitconfig());
|
||||
home = getenv("HOME");
|
||||
filename = getenv(CONFIG_LOCAL_ENVIRONMENT);
|
||||
if (!filename)
|
||||
|
||||
Reference in New Issue
Block a user