nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 6fcc6834ff98651a9601b2e307fc9ae56a3b4b6f
parent 21f9a713dca8454e7fc636f815dcda5725801d10
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Mon,  9 Dec 2019 22:20:46 +0530

Show symlink even if target cannot be stat-ed

Diffstat:
Msrc/dbg.h | 8++++----
Msrc/nnn.c | 9+++------
2 files changed, 7 insertions(+), 10 deletions(-)

diff --git 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 @@ -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; } }