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] = { ...@@ -627,6 +627,20 @@ static git_futils_dirs_guess_cb git_futils__dir_guess[GIT_FUTILS_DIR__MAX] = {
git_futils_guess_xdg_dirs, 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) static int git_futils_check_selector(git_futils_dir_t which)
{ {
if (which < GIT_FUTILS_DIR__MAX) if (which < GIT_FUTILS_DIR__MAX)
......
...@@ -310,6 +310,13 @@ typedef enum { ...@@ -310,6 +310,13 @@ typedef enum {
} git_futils_dir_t; } 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 * Get the search path for global/system/xdg files
* *
* @param out pointer to git_buf containing search path * @param out pointer to git_buf containing search path
......
...@@ -65,10 +65,8 @@ int git_threads_init(void) ...@@ -65,10 +65,8 @@ int git_threads_init(void)
return -1; return -1;
/* Initialize any other subsystems that have global state */ /* Initialize any other subsystems that have global state */
if ((error = git_hash_global_init()) >= 0) if ((error = git_hash_global_init()) >= 0 &&
_tls_init = 1; (error = git_futils_dirs_global_init()) >= 0)
if (error == 0)
_tls_init = 1; _tls_init = 1;
GIT_MEMORY_BARRIER; GIT_MEMORY_BARRIER;
...@@ -127,7 +125,8 @@ int git_threads_init(void) ...@@ -127,7 +125,8 @@ int git_threads_init(void)
pthread_key_create(&_tls_key, &cb__free_status); pthread_key_create(&_tls_key, &cb__free_status);
/* Initialize any other subsystems that have global state */ /* 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; _tls_init = 1;
GIT_MEMORY_BARRIER; 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