Parcourir la source

Show symlink even if target cannot be stat-ed

master
Arun Prakash Jana il y a 5 ans
Parent
révision
6fcc6834ff
Aucune clé connue n'a été trouvée dans la base pour cette signature ID de la clé GPG: A75979F35C080412
2 fichiers modifiés avec 7 ajouts et 10 suppressions
  1. +4
    -4
      src/dbg.h
  2. +3
    -6
      src/nnn.c

+ 4
- 4
src/dbg.h Voir le fichier

@@ -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)


+ 3
- 6
src/nnn.c Voir le fichier

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


||||||
x
 
000:0
Chargement…
Annuler
Enregistrer