]> Sergey Matveev's repositories - nnn.git/commitdiff
Test if we can back out/enter directories
authorsin <sin@2f30.org>
Wed, 22 Oct 2014 16:25:25 +0000 (17:25 +0100)
committersin <sin@2f30.org>
Wed, 22 Oct 2014 16:25:25 +0000 (17:25 +0100)
noice.c

diff --git a/noice.c b/noice.c
index 90fc3bd168fe0ff9850ad9b2ba75d2d319d5b0d4..9a9fc6a4e477f5647f9fdeaf9a52faa0cfac3945 100644 (file)
--- a/noice.c
+++ b/noice.c
@@ -615,6 +615,10 @@ nochange:
                        /* There is no going back */
                        if (strcmp(path, "/") == 0)
                                goto nochange;
+                       if (testopendir(path) == 0) {
+                               printwarn();
+                               goto nochange;
+                       }
                        dir = xdirname(path);
                        free(path);
                        path = dir;
@@ -642,6 +646,10 @@ nochange:
 
                        switch (sb.st_mode & S_IFMT) {
                        case S_IFDIR:
+                               if (testopendir(path) == 0) {
+                                       printwarn();
+                                       goto nochange;
+                               }
                                free(path);
                                path = xrealpath(name);
                                /* Reset filter */
@@ -745,7 +753,7 @@ main(int argc, char *argv[])
        }
 
        /* Test initial path */
-       if (!testopendir(ipath))
+       if (testopendir(ipath) == 0)
                printerr(1, ipath);
 
        /* Set locale before curses setup */