fixed a bug where files/directory names would occasionally just dissapear

This commit is contained in:
nova 2025-05-31 10:21:25 +02:00
parent 3d3052e436
commit f7c1d34e05

View File

@ -45,9 +45,9 @@ void get_dir_content(char *path, unsigned long *dir_file_count, file *dir_conten
for (i = 0; i < *dir_file_count; i++ ) { for (i = 0; i < *dir_file_count; i++ ) {
if (entry[i]->d_name[0] == '.' && !(file_modifiers & FILE_MODIFIERS_HIDDEN_FILES)) { if (entry[i]->d_name[0] == '.' && !(file_modifiers & FILE_MODIFIERS_HIDDEN_FILES)) {
} else { } else {
dir_content[i].file_name_width = strlen(entry[i]->d_name); dir_content[i].file_name_width = sizeof(entry[i]->d_name) / sizeof(char);;
dir_content[i].file_name = malloc(sizeof(entry[i]->d_name)); dir_content[i].file_name = malloc(dir_content[i].file_name_width * sizeof(char));
dir_content[i].file_name = entry[i]->d_name; memcpy(dir_content[i].file_name, entry[i]->d_name, dir_content[i].file_name_width);
struct stat *file; struct stat *file;
file = malloc(sizeof(struct stat)); file = malloc(sizeof(struct stat));
@ -134,11 +134,11 @@ void print_dir(WINDOW *win, unsigned long *dir_file_count, file *dir_content){
if (dir_content[i].status & FILE_STATUS_HOVER) { if (dir_content[i].status & FILE_STATUS_HOVER) {
wattron(win, A_REVERSE); wattron(win, A_REVERSE);
mvwprintw(win, i, 0, "%ld", i); mvwprintw(win, i, 0, "%ld", i);
mvwaddstr(win, i, offset, dir_content[i].file_name); mvwprintw(win, i, offset, "%s", dir_content[i].file_name);
wattroff(win, A_REVERSE); wattroff(win, A_REVERSE);
} else { } else {
mvwprintw(win, i, 0, "%ld", i); mvwprintw(win, i, 0, "%ld", i);
mvwaddstr(win, i, offset, dir_content[i].file_name); mvwprintw(win, i, offset, "%s", dir_content[i].file_name);
} }
wattroff(win, COLOR_PAIR(dir_content[i].color_pair)); wattroff(win, COLOR_PAIR(dir_content[i].color_pair));
} }