implemented delete and rename
This commit is contained in:
51
threading.c
51
threading.c
@@ -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);
|
||||
|
Reference in New Issue
Block a user