From 922881cd45d1f43a76cf121a9de6af404598da73 Mon Sep 17 00:00:00 2001 From: nova Date: Sun, 24 Aug 2025 00:04:24 +0200 Subject: [PATCH] maximum size of file_previews --- file_previews.c | 20 +++++++++++--------- window.c | 6 +++--- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/file_previews.c b/file_previews.c index 5f007d7..14411bc 100644 --- a/file_previews.c +++ b/file_previews.c @@ -46,16 +46,14 @@ char* preview_file(char *file_name, unsigned long file_size){ if (strstr(mime, "text")) { file_buffer = text(file_name, &file_size); - } else { + } else if (strstr(mime, "image")) { file_buffer = generic(file_name); - } - - if (strstr(mime, "image")) { images_print(file_name); previewd = 1; - } else { - images_clear(); + } else { + file_buffer = generic(file_name); } + images_clear(); free(mime); return file_buffer; @@ -63,10 +61,14 @@ char* preview_file(char *file_name, unsigned long file_size){ } char* text(char *path, unsigned long *file_size){ - char *file_buffer = malloc(*file_size + 1); + unsigned long size = (terminal_width/2) * terminal_height; + if (size > *file_size) { + size = *file_size; + } + char *file_buffer = malloc(size + 1); FILE *fp = fopen(path, "r"); - if (fread(file_buffer, *file_size, 1, fp) != 0) { - file_buffer[*file_size] = '\0'; + if (fread(file_buffer, size, 1, fp) != 0) { + file_buffer[size] = '\0'; return file_buffer; } else { return "failed reading file"; diff --git a/window.c b/window.c index f87e337..be08d46 100644 --- a/window.c +++ b/window.c @@ -80,7 +80,7 @@ void window_mid(WINDOW *win){ if (pthread_mutex_trylock(&mutex_mid) == 0) { if (mid_file_count == 0) { - mvwprintw(win, 0, 0, "empty"); + mvwaddstr(win, 0, 0, "empty"); } else { print_dir(win, 1, &mid_file_count, mid_content); } @@ -96,9 +96,9 @@ void window_rgt(WINDOW *win){ if (pthread_mutex_trylock(&mutex_rgt) == 0) { if (rgt_file_count == 0) { if (rgt_content[0].file_type == FILE_TYPE_OPEN_FILE) { - mvwprintw(win, 0, 0, "%s", rgt_buffer); + mvwaddnstr(win, 0, 0, rgt_buffer, (terminal_width/2) * terminal_width); } else { - mvwprintw(win, 0, 0, "empty"); + mvwaddstr(win, 0, 0, "empty"); }