summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Gehring <[email protected]>2016-01-04 14:47:02 +0100
committerMichael Gehring <[email protected]>2016-01-15 22:31:21 +0100
commit1bc7cf60bd05958ad619c22373183afffb913a0c (patch)
tree65b00d27cca02e18670d28f8dd40ef74aaf80344
parent105573ac7a37a3a270f17d59f0e9916edc98f7ab (diff)
Add missing RepositoryOpenExtended arguments
Fixes #277
-rw-r--r--repository.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/repository.go b/repository.go
index d8e398b..398f91a 100644
--- a/repository.go
+++ b/repository.go
@@ -62,15 +62,29 @@ func OpenRepository(path string) (*Repository, error) {
return newRepositoryFromC(ptr), nil
}
-func OpenRepositoryExtended(path string) (*Repository, error) {
+type RepositoryOpenFlag int
+
+const (
+ RepositoryOpenNoSearch RepositoryOpenFlag = C.GIT_REPOSITORY_OPEN_NO_SEARCH
+ RepositoryOpenCrossFs RepositoryOpenFlag = C.GIT_REPOSITORY_OPEN_CROSS_FS
+ RepositoryOpenBare RepositoryOpenFlag = C.GIT_REPOSITORY_OPEN_BARE
+)
+
+func OpenRepositoryExtended(path string, flags RepositoryOpenFlag, ceiling string) (*Repository, error) {
cpath := C.CString(path)
defer C.free(unsafe.Pointer(cpath))
+ var cceiling *C.char = nil
+ if len(ceiling) > 0 {
+ cceiling = C.CString(ceiling)
+ defer C.free(unsafe.Pointer(cceiling))
+ }
+
runtime.LockOSThread()
defer runtime.UnlockOSThread()
var ptr *C.git_repository
- ret := C.git_repository_open_ext(&ptr, cpath, 0, nil)
+ ret := C.git_repository_open_ext(&ptr, cpath, C.uint(flags), cceiling)
if ret < 0 {
return nil, MakeGitError(ret)
}