aboutsummaryrefslogtreecommitdiffstats
path: root/noice.c
diff options
context:
space:
mode:
authorlostd <lostd@2f30.org>2014-10-23 00:31:45 +0300
committerlostd <lostd@2f30.org>2014-10-23 00:31:45 +0300
commita6060732964cf4e9212c9d69926b412b7a7b8fee (patch)
treefc33c819e47340577f9d68bd87dda3b8d2d2fa6f /noice.c
parent1c23cbc2ad07ae62c47ce1b091c86dd112c469f9 (diff)
downloadnoice-a6060732964cf4e9212c9d69926b412b7a7b8fee.tar.gz
Try to open file to see access errors on the status bar
Diffstat (limited to 'noice.c')
-rw-r--r--noice.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/noice.c b/noice.c
index 1d0a0c9..c276db3 100644
--- a/noice.c
+++ b/noice.c
@@ -569,7 +569,7 @@ browse(const char *ipath, const char *ifilter)
DIR *dirp;
struct entry *dents;
int i, n, cur;
- int r, ret;
+ int r, ret, fd;
char *path = xrealpath(ipath);
char *filter = xstrdup(ifilter);
regex_t filter_re;
@@ -683,6 +683,12 @@ nochange:
DPRINTF_S(name);
/* Get path info */
+ fd = openat(dirfd(dirp), name, O_RDONLY | O_NONBLOCK);
+ if (fd == -1) {
+ printwarn();
+ goto nochange;
+ }
+ close(fd);
r = fstatat(dirfd(dirp), name, &sb, 0);
if (r == -1) {
printwarn();
Un proyecto texto-plano.xyz