login

<     >

2017-02-19 11:25:37 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Don't assume CWD is a valid path.

diff --git a/rover.c b/rover.c
index 46697de..95a6297 100644
--- a/rover.c
+++ b/rover.c
@@ -646,8 +646,11 @@ cd(int reset)
 
     message(CYAN, "Loading \"%s\"...", CWD);
     refresh();
+    if (chdir(CWD) == -1) {
+        getcwd(CWD, PATH_MAX-1);
+        goto done;
+    }
     if (reset) ESEL = SCROLL = 0;
-    chdir(CWD);
     if (rover.nfiles)
         free_rows(&rover.rows, rover.nfiles);
     rover.nfiles = ls(&rover.rows, FLAGS);
@@ -664,6 +667,7 @@ cd(int reset)
     } else
         for (i = 0; i < rover.nfiles; i++)
             MARKED(i) = 0;
+done:
     clear_message();
     update_view();
 }