aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-12-09 22:20:46 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-12-09 22:20:46 +0530
commit6fcc6834ff98651a9601b2e307fc9ae56a3b4b6f (patch)
tree2483a29c4d5f74d354dd8c31a5c716978ee839bc
parent21f9a713dca8454e7fc636f815dcda5725801d10 (diff)
downloadnnn-6fcc6834ff98651a9601b2e307fc9ae56a3b4b6f.tar.gz
Show symlink even if target cannot be stat-ed
-rw-r--r--src/dbg.h8
-rw-r--r--src/nnn.c9
2 files changed, 7 insertions, 10 deletions
diff --git a/src/dbg.h b/src/dbg.h
index 7bd757a..28f4118 100644
--- a/src/dbg.h
+++ b/src/dbg.h
@@ -76,10 +76,10 @@ static void disabledbg(void)
close(DEBUG_FD);
}
-#define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d\n", x)
-#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x)
-#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\n", x)
-#define DPRINTF_P(x) xprintf(DEBUG_FD, #x "=%p\n", x)
+#define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d [ln %d]\n", x, __LINE__)
+#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u [ln %d]\n", x, __LINE__)
+#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s [ln %d]\n", x, __LINE__)
+#define DPRINTF_P(x) xprintf(DEBUG_FD, #x "=%p [ln %d]\n", x, __LINE__)
#else
#define DPRINTF_D(x)
#define DPRINTF_U(x)
diff --git a/src/nnn.c b/src/nnn.c
index e7e3ecd..a1cc444 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -3756,15 +3756,12 @@ static int dentfill(char *path, struct entry **dents)
if (fstatat(fd, namep, &sb, flags) == -1) {
/* List a symlink with target missing */
- if (!flags && errno == ENOENT) {
- if (fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1) {
+ if (flags || (!flags && fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1)) {
+ DPRINTF_U(flags);
+ if (!flags) {
DPRINTF_S(namep);
DPRINTF_S(strerror(errno));
- continue;
}
- } else {
- DPRINTF_S(namep);
- DPRINTF_S(strerror(errno));
continue;
}
}