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) {
|
void config(UWORD *blackImage, char* configName) {
|
||||||
GoString goConfName = { configName, strlen(configName) };
|
GoString goConfName = { configName, strlen(configName) };
|
||||||
const char *config = getConfig(goConfName);
|
struct getConfigLines_return configLinesReturn = getConfigLines(goConfName);
|
||||||
if (config == NULL) {
|
int length = configLinesReturn.r1;
|
||||||
|
char** configLines = configLinesReturn.r0;
|
||||||
|
if (configLines == NULL || length == -1) {
|
||||||
DebugLine(10, 0, "Config not found\n");
|
DebugLine(10, 0, "Config not found\n");
|
||||||
return;
|
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();
|
EPD_2in13_V4_Init();
|
||||||
Paint_SelectImage(blackImage);
|
Paint_SelectImage(blackImage);
|
||||||
Paint_Clear(WHITE);
|
Paint_Clear(WHITE);
|
||||||
|
|
||||||
DebugLine(14, 10, "MADE IT TO HERE --------------------------------------");
|
for (int i = 0; i < length; i++) {
|
||||||
char* str = "key: JBSWY3DPEHPK3PXP NO n digits: 4";
|
Paint_DrawString(5, 5 + (i * 16), configLines[i], &Font12, WHITE, BLACK);
|
||||||
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);
|
|
||||||
EPD_2in13_V4_Display(blackImage);
|
EPD_2in13_V4_Display(blackImage);
|
||||||
|
|
||||||
int ch = getch();
|
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)
|
return (**C.char)(cArray), C.int(configsLen)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export getConfig
|
//export getConfigLines
|
||||||
func getConfig(configName string) *C.char {
|
func getConfigLines(configName string) (**C.char, C.int) {
|
||||||
files, err := os.ReadDir(homeDir + "/.totp")
|
files, err := os.ReadDir(homeDir + "/.totp")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@ -170,18 +170,21 @@ func getConfig(configName string) *C.char {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
fileStr := string(fileBytes)
|
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)
|
ar := unsafe.Slice((**C.char)(cArray), lines)
|
||||||
if err != nil {
|
i := 0
|
||||||
log.Fatal(err)
|
for _, confLine := range confLines {
|
||||||
|
ar[i] = C.CString(confLine)
|
||||||
|
i++
|
||||||
}
|
}
|
||||||
|
|
||||||
cStr := C.CString(fileStr)
|
return (**C.char)(cArray), C.int(lines)
|
||||||
runtime.KeepAlive(fileStr)
|
|
||||||
return cStr
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil, -1
|
||||||
}
|
}
|
||||||
|
|
||||||
//export getCode
|
//export getCode
|
||||||
|
Loading…
Reference in New Issue
Block a user