summaryrefslogtreecommitdiff
path: root/src/config.h
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-03-15 16:39:00 -0700
committerRussell Belfer <rb@github.com>2013-03-15 16:39:00 -0700
commit5540d9477ed143707435324e785336d254b12e47 (patch)
tree4ffaba1990a82cc51ee5169d7d2913ecceef4df2 /src/config.h
parenta5f6138407efb6d8866fe8de5aac13454aefcd82 (diff)
downloadlibgit2-5540d9477ed143707435324e785336d254b12e47.tar.gz
Implement global/system file search paths
The goal of this work is to expose the search logic for "global", "system", and "xdg" files through the git_libgit2_opts() interface. Behind the scenes, I changed the logic for finding files to have a notion of a git_strarray that represents a search path and to store a separate search path for each of the three tiers of config file. For each tier, I implemented a function to initialize it to default values (generally based on environment variables), and then general interfaces to get it, set it, reset it, and prepend new directories to it. Next, I exposed these interfaces through the git_libgit2_opts interface, reusing the GIT_CONFIG_LEVEL_SYSTEM, etc., constants for the user to control which search path they were modifying. There are alternative designs for the opts interface / argument ordering, so I'm putting this phase out for discussion. Additionally, I ended up doing a little bit of clean up regarding attr.h and attr_file.h, adding a new attrcache.h so the other two files wouldn't have to be included in so many places.
Diffstat (limited to 'src/config.h')
-rw-r--r--src/config.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/config.h b/src/config.h
index db5ebb3b7..c43e47e82 100644
--- a/src/config.h
+++ b/src/config.h
@@ -12,10 +12,11 @@
#include "vector.h"
#include "repository.h"
-#define GIT_CONFIG_FILENAME ".gitconfig"
-#define GIT_CONFIG_FILENAME_ALT ".config/git/config"
-#define GIT_CONFIG_FILENAME_INREPO "config"
#define GIT_CONFIG_FILENAME_SYSTEM "gitconfig"
+#define GIT_CONFIG_FILENAME_GLOBAL ".gitconfig"
+#define GIT_CONFIG_FILENAME_XDG "config"
+
+#define GIT_CONFIG_FILENAME_INREPO "config"
#define GIT_CONFIG_FILE_MODE 0666
struct git_config {