fix reading error
authorLaurent Mazet <mazet@softndesign.org>
Fri, 17 Jan 2025 23:13:40 +0000 (00:13 +0100)
committerLaurent Mazet <mazet@softndesign.org>
Fri, 17 Jan 2025 23:13:40 +0000 (00:13 +0100)
display.c
fm.c

index 2a8759f6a0f4a85ff3bf0ca6b5bef88c698fe20e..2e5ff7cdbe8423fc792acf1b156a793a62a9e4cd 100644 (file)
--- a/display.c
+++ b/display.c
@@ -467,9 +467,10 @@ int askwindow (char *msg, window_t *win, char *ok, char *ko)
 
 char *filewindow (char *name, window_t *win)
 {
-    char *msg = NULL;
-
     char *buffer = loadfile (name);
+    if (buffer == NULL) {
+        return strdupcat ("Can't open file '", name, "'", NULL);
+    }
     char **lines = splitlines (buffer, win->xsize);
     free (buffer);
 
@@ -520,7 +521,7 @@ char *filewindow (char *name, window_t *win)
     freelines (lines);
     free (title);
 
-    return msg;
+    return NULL;
 }
 
 /* vim: set ts=4 sw=4 et: */
diff --git a/fm.c b/fm.c
index 5934865275241462dae6e90c671ec77a5965dd0c..0e0ad0bbdc425420d012eec8fd16e227b49fab8a 100644 (file)
--- a/fm.c
+++ b/fm.c
@@ -435,7 +435,12 @@ int main (int argc, char *argv[])
                     elementwindow (winelem[i], "", NULL);
                 }
                 elementwindow (winelem[0], current->name, NULL);
-                filewindow (current->name, winscreen);
+                string = filewindow (current->name, winscreen);
+                if (string) {
+                    msgwindow (string, winscreen, 0);
+                    getch ();
+                    free (string);
+                }
                 break;
             case ALT_X: /* chmod */
                 string = getwindow ("Change to mode", winscreen, 4, 4, "0644");