From 861d44f9348ed694d6cf2109a007b0a09f359dd9 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sun, 10 May 2020 19:15:40 +0530 Subject: [PATCH] Simplify cd --- src/nnn.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 00860c35..aedc79b4 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -5461,6 +5461,16 @@ nochange: mkpath(path, dents[cur].name, newpath); DPRINTF_S(newpath); + if (dents[cur].flags & DIR_OR_LINK_TO_DIR) { + if (chdir(newpath) == -1) { + printwarn(&presel); + goto nochange; + } + + cdprep(lastdir, lastname, path, newpath) ? (presel = FILTER) : (watch = TRUE); + goto begin; + } + /* Cannot use stale data in entry, file may be missing by now */ if (stat(newpath, &sb) == -1) { printwarn(&presel); @@ -5469,14 +5479,6 @@ nochange: DPRINTF_U(sb.st_mode); switch (sb.st_mode & S_IFMT) { - case S_IFDIR: - if (chdir(newpath) == -1) { - printwarn(&presel); - goto nochange; - } - - cdprep(lastdir, lastname, path, newpath) ? (presel = FILTER) : (watch = TRUE); - goto begin; case S_IFREG: { /* If opened as vim plugin and Enter/^M pressed, pick */