diff --git a/config.go b/config.go index 7260089..062df05 100644 --- a/config.go +++ b/config.go @@ -450,3 +450,17 @@ func ConfigFindProgramdata() (string, error) { return C.GoString(buf.ptr), nil } + +// OpenDefault opens the default config according to git rules +func OpenDefault() (*Config, error) { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + config := new(Config) + + if ret := C.git_config_open_default(&config.ptr); ret < 0 { + return nil, MakeGitError(ret) + } + + return config, nil +} diff --git a/config_test.go b/config_test.go index 398236e..f942dcb 100644 --- a/config_test.go +++ b/config_test.go @@ -107,3 +107,13 @@ func TestConfigLookups(t *testing.T) { test(c, t) } } + +func TestOpenDefault(t *testing.T) { + + c, err := OpenDefault() + if err != nil { + t.Errorf("OpenDefault error: '%v'. Expected none\n", err) + return + } + defer c.Free() +}