summaryrefslogtreecommitdiff
path: root/reference.go
diff options
context:
space:
mode:
authorlhchavez <[email protected]>2021-09-03 06:40:31 -0700
committerlhchavez <[email protected]>2021-09-05 18:52:01 -0700
commit018647fd481a7eb4af97d5f61afc0fddfe76fc24 (patch)
tree06f4af28f0298ffe4bd93d2061f7eb8c52518bc2 /reference.go
parentb78bde3d74b1617d5b635723552aaec0583eb054 (diff)
libgit2 v1.2.0 #major
This commit introduces libgit2 v1.2.0 to git2go, which brings a large number of [bugfixes and features](https://github.com/libgit2/libgit2/releases/tag/v1.2.0). This also marks the start of the v32 release.
Diffstat (limited to 'reference.go')
-rw-r--r--reference.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/reference.go b/reference.go
index ae49c21..46e9b48 100644
--- a/reference.go
+++ b/reference.go
@@ -476,7 +476,7 @@ func (v *ReferenceIterator) Free() {
C.git_reference_iterator_free(v.ptr)
}
-// ReferenceIsValidName returns whether the reference name is well-formed.
+// ReferenceNameIsValid returns whether the reference name is well-formed.
//
// Valid reference names must follow one of two patterns:
//
@@ -486,11 +486,19 @@ func (v *ReferenceIterator) Free() {
// 2. Names prefixed with "refs/" can be almost anything. You must avoid
// the characters '~', '^', ':', ' \ ', '?', '[', and '*', and the sequences
// ".." and " @ {" which have special meaning to revparse.
-func ReferenceIsValidName(name string) bool {
+func ReferenceNameIsValid(name string) (bool, error) {
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
- return C.git_reference_is_valid_name(cname) == 1
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ var valid C.int
+ ret := C.git_reference_name_is_valid(&valid, cname)
+ if ret < 0 {
+ return false, MakeGitError(ret)
+ }
+ return valid == 1, nil
}
const (