implemented delete and rename

This commit is contained in:
nova
2025-07-02 22:59:47 +02:00
parent aedfdd1ed5
commit 0a6509310d
6 changed files with 152 additions and 40 deletions

View File

@@ -23,7 +23,7 @@ file *lft_content;
char *rgt_buffer; /* used for file previews, unlike rgt_content, which is used for directory previews */
char *btm_buffer;
file file_current;
file *file_current;
char *top_content; /* current path */
@@ -34,9 +34,9 @@ unsigned long top_width;
unsigned long selected_file_current=0;
unsigned long selected_file_last=0;
extern unsigned int status;
extern unsigned long selected_file_current;
extern unsigned long selected_file_last;
void *thread_rgt(void *data);
@@ -63,20 +63,23 @@ void *thread_mid(void *data){
pthread_mutex_lock(&mutex_selection);
while(1) { /* this useless while loop exists for the singular purpose of making valgrind happy */
if (selected_file_current >= mid_file_count) {
selected_file_current = mid_file_count-1;
}
mid_content[selected_file_current].status = FILE_STATUS_HOVER;
if (selected_file_current != selected_file_last) {
mid_content[selected_file_last].status &= ~FILE_STATUS_HOVER;
}
selected_file_last = selected_file_current;
} else {
mid_content[selected_file_current].status |= FILE_STATUS_HOVER;
if (selected_file_current != selected_file_last) {
mid_content[selected_file_last].status &= ~FILE_STATUS_HOVER;
}
selected_file_last = selected_file_current;
file_current.file_name = malloc(mid_content[selected_file_current].file_name_width + 1);
strcpy(file_current.file_name, mid_content[selected_file_current].file_name);
file_current.file_name_width = mid_content[selected_file_current].file_name_width;
file_current.file_size = mid_content[selected_file_current].file_size;
file_current.file_type = mid_content[selected_file_current].file_type;
file_current->file_name = mid_content[selected_file_current].file_name;
file_current->file_name_width = mid_content[selected_file_current].file_name_width;
file_current->file_size = mid_content[selected_file_current].file_size;
file_current->file_type = mid_content[selected_file_current].file_type;
break;
}
}
pthread_mutex_unlock(&mutex_selection);
}
@@ -119,11 +122,11 @@ void *thread_rgt(void *data){
pthread_mutex_lock(&mutex_mid);
free(rgt_content);
rgt_content = malloc(sizeof(file));
rgt_content[0].file_name = malloc(file_current.file_name_width + 1);
strcpy(rgt_content[0].file_name, file_current.file_name);
rgt_content[0].file_name_width = file_current.file_name_width;
rgt_content[0].file_size = file_current.file_size;
rgt_content[0].file_type = file_current.file_type;
rgt_content[0].file_name = malloc(file_current->file_name_width + 1);
strcpy(rgt_content[0].file_name, file_current->file_name);
rgt_content[0].file_name_width = file_current->file_name_width;
rgt_content[0].file_size = file_current->file_size;
rgt_content[0].file_type = file_current->file_type;
pthread_mutex_unlock(&mutex_mid);
@@ -183,10 +186,12 @@ void threading_init(){
rgt_buffer = malloc(sizeof(char));
btm_buffer = malloc(sizeof(char));
file_current.file_type = 0;
file_current.file_size = 1;
file_current.file_name_width = 1;
file_current.file_name = "a";
file_current = malloc(sizeof(file));
file_current->file_type = 0;
file_current->file_size = 1;
file_current->file_name_width = 1;
file_current->file_name = malloc(sizeof("a"));
strcpy(file_current->file_name, "a");
pthread_mutex_init(&mutex_top, NULL);
pthread_mutex_init(&mutex_mid, NULL);