proper handling of empty dirs (hopefully)

This commit is contained in:
nova
2026-06-15 20:28:39 +02:00
parent 4def2c7cf0
commit c0299aef8c
4 changed files with 68 additions and 30 deletions
+11
View File
@@ -44,6 +44,11 @@ yank yank_files = { 0 };
void FAIL(char *function, char *str){
printf("ERROR in function %s: %s", function, str);
}
#define continue_if_empty_dir \
if (mid_dir.current_file == NULL) { \
return; \
}
void user_interactions() {
@@ -165,6 +170,8 @@ void select_all(){
}
void move_down(unsigned long passes){
continue_if_empty_dir;
mid_dir.current_file += passes;
if (mid_dir.current_file > mid_dir.file_list + mid_dir.file_count - 1) {
mid_dir.current_file = mid_dir.file_list + mid_dir.file_count - 1;
@@ -174,6 +181,8 @@ void move_down(unsigned long passes){
}
void move_up(unsigned long passes){
continue_if_empty_dir;
mid_dir.current_file -= passes;
if (mid_dir.current_file < mid_dir.file_list) {
mid_dir.current_file = mid_dir.file_list;
@@ -191,6 +200,8 @@ void move_left(unsigned long passes){
}
void move_right(){
continue_if_empty_dir
if (mid_dir.current_file->file_type & FILE_TYPE_DIR) {
change_dir(mid_dir.current_file->file_name);
} else if (mid_dir.current_file->file_type & FILE_TYPE_EXEC) {