Config page should work
This commit is contained in:
21
go/totp.go
21
go/totp.go
@@ -156,8 +156,8 @@ func getConfigNames() (**C.char, C.int) {
|
||||
return (**C.char)(cArray), C.int(configsLen)
|
||||
}
|
||||
|
||||
//export getConfig
|
||||
func getConfig(configName string) *C.char {
|
||||
//export getConfigLines
|
||||
func getConfigLines(configName string) (**C.char, C.int) {
|
||||
files, err := os.ReadDir(homeDir + "/.totp")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@@ -170,18 +170,21 @@ func getConfig(configName string) *C.char {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fileStr := string(fileBytes)
|
||||
confLines := strings.Split(fileStr, "\n")
|
||||
lines := len(confLines)
|
||||
cArray := C.malloc(C.size_t(lines) * C.size_t(unsafe.Sizeof(uintptr(0))))
|
||||
|
||||
err = os.WriteFile("output.txt", []byte(fileStr), 777)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
ar := unsafe.Slice((**C.char)(cArray), lines)
|
||||
i := 0
|
||||
for _, confLine := range confLines {
|
||||
ar[i] = C.CString(confLine)
|
||||
i++
|
||||
}
|
||||
|
||||
cStr := C.CString(fileStr)
|
||||
runtime.KeepAlive(fileStr)
|
||||
return cStr
|
||||
return (**C.char)(cArray), C.int(lines)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
//export getCode
|
||||
|
||||
Reference in New Issue
Block a user