(name, regexp string)
| 158 | } |
| 159 | |
| 160 | func (c *Config) NewMultivarIterator(name, regexp string) (*ConfigIterator, error) { |
| 161 | cname := C.CString(name) |
| 162 | defer C.free(unsafe.Pointer(cname)) |
| 163 | |
| 164 | var cregexp *C.char |
| 165 | if regexp == "" { |
| 166 | cregexp = nil |
| 167 | } else { |
| 168 | cregexp = C.CString(regexp) |
| 169 | defer C.free(unsafe.Pointer(cregexp)) |
| 170 | } |
| 171 | |
| 172 | iter := &ConfigIterator{cfg: c} |
| 173 | |
| 174 | runtime.LockOSThread() |
| 175 | defer runtime.UnlockOSThread() |
| 176 | |
| 177 | ret := C.git_config_multivar_iterator_new(&iter.ptr, c.ptr, cname, cregexp) |
| 178 | if ret < 0 { |
| 179 | return nil, MakeGitError(ret) |
| 180 | } |
| 181 | |
| 182 | runtime.SetFinalizer(iter, (*ConfigIterator).Free) |
| 183 | return iter, nil |
| 184 | } |
| 185 | |
| 186 | // NewIterator creates an iterator over each entry in the |
| 187 | // configuration |
nothing calls this directly
no test coverage detected