aboutsummaryrefslogtreecommitdiffstats
path: root/src/nnn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nnn.c')
-rw-r--r--src/nnn.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 00860c3..aedc79b 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 */