Config page should work
This commit is contained in:
parent
93cee5a60a
commit
3988615687
17
c/src/p2fa.c
17
c/src/p2fa.c
@ -101,22 +101,23 @@ void code(UWORD *blackImage, char* confName) {
|
||||
|
||||
void config(UWORD *blackImage, char* configName) {
|
||||
GoString goConfName = { configName, strlen(configName) };
|
||||
const char *config = getConfig(goConfName);
|
||||
if (config == NULL) {
|
||||
struct getConfigLines_return configLinesReturn = getConfigLines(goConfName);
|
||||
int length = configLinesReturn.r1;
|
||||
char** configLines = configLinesReturn.r0;
|
||||
if (configLines == NULL || length == -1) {
|
||||
DebugLine(10, 0, "Config not found\n");
|
||||
return;
|
||||
}
|
||||
|
||||
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
|
||||
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE);
|
||||
EPD_2in13_V4_Init();
|
||||
Paint_SelectImage(blackImage);
|
||||
Paint_Clear(WHITE);
|
||||
|
||||
DebugLine(14, 10, "MADE IT TO HERE --------------------------------------");
|
||||
char* str = "key: JBSWY3DPEHPK3PXP NO n digits: 4";
|
||||
DebugLine(13, 0, "String width: %d\n", computeWidth(str, &Font12));
|
||||
Paint_DrawString(5, 5, str, &Font12, WHITE, BLACK);
|
||||
//Paint_DrawString(5, 5, getConfigReturn.r0, &Font12, WHITE, BLACK);
|
||||
for (int i = 0; i < length; i++) {
|
||||
Paint_DrawString(5, 5 + (i * 16), configLines[i], &Font12, WHITE, BLACK);
|
||||
}
|
||||
|
||||
EPD_2in13_V4_Display(blackImage);
|
||||
|
||||
int ch = getch();
|
||||
|
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
|
||||
|
Loading…
Reference in New Issue
Block a user