diff --git a/backend.c b/backend.c index 0a9121a..8279af1 100644 --- a/backend.c +++ b/backend.c @@ -56,13 +56,14 @@ void get_dir_content(char *path, unsigned long *dir_file_count, file *dir_conten scandir(path, &entry, skip_hidden_files, alphasort); } - unsigned long i = 0; 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 = malloc(strlen(entry[i]->d_name)); + dir_content[i].file_name = malloc(strlen(entry[i]->d_name)+1); strcpy(dir_content[i].file_name, entry[i]->d_name); + dir_content[i].file_name[strlen(entry[i]->d_name)] = '\0'; + struct stat *file; file = malloc(sizeof(struct stat)); @@ -222,7 +223,7 @@ void print_dir(WINDOW *win, char print_info, unsigned long *dir_file_count, file if (extension) { int char_offset = (file_name_width + offset_front + is_selected) - (offset_back - 1) ; if ((file_name_width - char_offset - strlen(extension) - 1) > 1) { - file_name = malloc(file_name_width - char_offset); + file_name = malloc(file_name_width - char_offset + 1); memcpy(file_name, dir_content[i].file_name, file_name_width - char_offset); memcpy(file_name + (file_name_width - char_offset - strlen(extension)), extension, strlen(extension)); file_name[file_name_width - char_offset - strlen(extension) - 1] = '~'; diff --git a/interactions.c b/interactions.c index feb71a6..11e5753 100644 --- a/interactions.c +++ b/interactions.c @@ -272,7 +272,6 @@ void move_right(){ } } free(mime); - free(extension); } status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_MASK | STATUS_RELOAD_DIRECTORY); }