Allow for platform-specific core.* config settings

In the Git for Windows project, we have ample precendent for config
settings that apply to Windows, and to Windows only.

Let's formalize this concept by introducing a platform_core_config()
function that can be #define'd in a platform-specific manner.

This will allow us to contain platform-specific code better, as the
corresponding variables no longer need to be exported so that they can
be defined in environment.c and be set in config.c

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2016-11-17 17:24:10 +01:00
parent 88e77ae01e
commit 9367eb7e16
4 changed files with 17 additions and 1 deletions

View File

@@ -202,6 +202,11 @@ static int ask_yes_no_if_possible(const char *format, ...)
}
}
int mingw_core_config(const char *var, const char *value)
{
return 0;
}
int mingw_unlink(const char *pathname)
{
int ret, tries = 0;

View File

@@ -11,6 +11,9 @@ typedef _sigset_t sigset_t;
#undef _POSIX_THREAD_SAFE_FUNCTIONS
#endif
extern int mingw_core_config(const char *var, const char *value);
#define platform_core_config mingw_core_config
/*
* things that are not available in header files
*/

View File

@@ -1114,7 +1114,7 @@ static int git_default_core_config(const char *var, const char *value)
}
/* Add other config variables here and to Documentation/config.txt. */
return 0;
return platform_core_config(var, value);
}
static int git_default_i18n_config(const char *var, const char *value)

View File

@@ -330,6 +330,14 @@ extern char *gitdirname(char *);
#define _PATH_DEFPATH "/usr/local/bin:/usr/bin:/bin"
#endif
#ifndef platform_core_config
static inline int noop_core_config(const char *var, const char *value)
{
return 0;
}
#define platform_core_config noop_core_config
#endif
#ifndef has_dos_drive_prefix
static inline int git_has_dos_drive_prefix(const char *path)
{