From c68c0169d4bd74b88603749b95f509705172f23e Mon Sep 17 00:00:00 2001
From: night0721 <night@night0721.xyz>
Date: Fri, 17 Jan 2025 15:11:21 +0000
Subject: [PATCH] Attempt to fix seg fault

---
 ccc.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/ccc.c b/ccc.c
index 4d3b55a..5ebfd19 100644
--- a/ccc.c
+++ b/ccc.c
@@ -196,7 +196,7 @@ int main(int argc, char **argv)
 
 	while (1) {
 		list_files();
-		keybinding();	
+		keybinding();
 	}
 	return 0;
 }
@@ -537,6 +537,9 @@ void add_file_stat(char *filename, char *path, int ftype)
  */
 void show_file_content(void)
 {
+	if (sel_file >= files->length) {
+		return;
+	}
 	file current_file = files->items[sel_file];
 
 	move_cursor(1, half_width);
@@ -555,7 +558,8 @@ void show_file_content(void)
 	}
 	FILE *file = fopen(current_file.path, "r");
 	if (!file) {
-		bprintf("Unable to read %s", current_file.name);
+/* 		bprintf("Unable to read %s", current_file.name ? current_file.name : "unknown"); */
+		bprintf("Unable to read unknown");
 		return;
 	}
 
@@ -645,7 +649,7 @@ void list_files(void)
 	/* calculate range of files to show */
 	long range = files->length;
 	/* not highlight if no files in directory */
-	if (range == 0 && errno == 0) {
+	if (range == 0) {
 		for (int i = 0; i < rows - 1; i++) {
 			move_cursor(i + 1, 1);
 			bprintf("\033[K");
@@ -838,6 +842,9 @@ void nav_back(const Arg *arg)
 
 void nav_enter(const Arg *arg)
 {
+	if (sel_file >= files->length) {
+		return;
+	}
 	file c_file = files->items[sel_file];
 	/* Check if it is directory or a regular file */
 	if (c_file.type == DRY) {