diff --git a/backend.c b/backend.c index 779e1b3..7e08421 100644 --- a/backend.c +++ b/backend.c @@ -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++ ) { if (entry[i]->d_name[0] == '.' && !(file_modifiers & FILE_MODIFIERS_HIDDEN_FILES)) { } else { - dir_content[i].file_name_width = strlen(entry[i]->d_name); - dir_content[i].file_name = malloc(sizeof(entry[i]->d_name)); - dir_content[i].file_name = entry[i]->d_name; + dir_content[i].file_name_width = sizeof(entry[i]->d_name) / sizeof(char);; + dir_content[i].file_name = malloc(dir_content[i].file_name_width * sizeof(char)); + memcpy(dir_content[i].file_name, entry[i]->d_name, dir_content[i].file_name_width); struct stat *file; 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) { wattron(win, A_REVERSE); 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); } else { 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)); }