Commit 0a1c8f55 by Edward Thomson

preload configuration paths

parent f2de67d5
......@@ -627,6 +627,20 @@ static git_futils_dirs_guess_cb git_futils__dir_guess[GIT_FUTILS_DIR__MAX] = {
git_futils_guess_xdg_dirs,
};
int git_futils_dirs_global_init(void)
{
git_futils_dir_t i;
git_buf *path;
int error = 0;
for (i = 0; i < GIT_FUTILS_DIR__MAX; i++) {
if ((error = git_futils_dirs_get(&path, i)) < 0)
break;
}
return error;
}
static int git_futils_check_selector(git_futils_dir_t which)
{
if (which < GIT_FUTILS_DIR__MAX)
......
......@@ -310,6 +310,13 @@ typedef enum {
} git_futils_dir_t;
/**
* Configures global data for configuration file search paths.
*
* @return 0 on success, <0 on failure
*/
extern int git_futils_dirs_global_init(void);
/**
* Get the search path for global/system/xdg files
*
* @param out pointer to git_buf containing search path
......
......@@ -65,10 +65,8 @@ int git_threads_init(void)
return -1;
/* Initialize any other subsystems that have global state */
if ((error = git_hash_global_init()) >= 0)
_tls_init = 1;
if (error == 0)
if ((error = git_hash_global_init()) >= 0 &&
(error = git_futils_dirs_global_init()) >= 0)
_tls_init = 1;
GIT_MEMORY_BARRIER;
......@@ -127,7 +125,8 @@ int git_threads_init(void)
pthread_key_create(&_tls_key, &cb__free_status);
/* Initialize any other subsystems that have global state */
if ((error = git_hash_global_init()) >= 0)
if ((error = git_hash_global_init()) >= 0 &&
(error = git_futils_dirs_global_init()) >= 0)
_tls_init = 1;
GIT_MEMORY_BARRIER;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment