diff options
author | 2019-12-09 22:20:46 +0530 | |
---|---|---|
committer | 2019-12-09 22:20:46 +0530 | |
commit | 6fcc6834ff98651a9601b2e307fc9ae56a3b4b6f (patch) | |
tree | 2483a29c4d5f74d354dd8c31a5c716978ee839bc | |
parent | 21f9a713dca8454e7fc636f815dcda5725801d10 (diff) | |
download | nnn-6fcc6834ff98651a9601b2e307fc9ae56a3b4b6f.tar.gz |
Show symlink even if target cannot be stat-ed
-rw-r--r-- | src/dbg.h | 8 | ||||
-rw-r--r-- | src/nnn.c | 9 |
2 files changed, 7 insertions, 10 deletions
@@ -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) @@ -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; } } |