Fixing user interface problems

This commit is contained in:
2026-01-17 07:39:23 -04:00
parent 2e2f78720e
commit 1e017d81b7
6 changed files with 89 additions and 35 deletions

View File

@@ -1,10 +1,12 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "main.h"
// Global state variables
static char current_pads_dir[512] = DEFAULT_PADS_DIR;
static char current_pads_dir[512] = "";
static int is_interactive_mode = 0;
static int pads_dir_initialized = 0;
// Terminal dimensions (moved from ui.c to state.c for global access)
static int terminal_width = 80; // Default fallback width
@@ -13,6 +15,18 @@ static int terminal_height = 24; // Default fallback height
// Getters and setters for global state
const char* get_current_pads_dir(void) {
// Initialize pads directory on first access if not already set
if (!pads_dir_initialized && strlen(current_pads_dir) == 0) {
char* home_dir = getenv("HOME");
if (home_dir) {
snprintf(current_pads_dir, sizeof(current_pads_dir), "%s/.otp/pads", home_dir);
} else {
// Fallback to relative path if HOME is not set
strncpy(current_pads_dir, DEFAULT_PADS_DIR, sizeof(current_pads_dir) - 1);
}
current_pads_dir[sizeof(current_pads_dir) - 1] = '\0';
pads_dir_initialized = 1;
}
return current_pads_dir;
}
@@ -20,6 +34,7 @@ void set_current_pads_dir(const char* dir) {
if (dir) {
strncpy(current_pads_dir, dir, sizeof(current_pads_dir) - 1);
current_pads_dir[sizeof(current_pads_dir) - 1] = '\0';
pads_dir_initialized = 1;
}
}