aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/fs.c4
-rw-r--r--src/nvim/path.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index 3789da3b17..522e49950c 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -421,10 +421,10 @@ bool os_scandir(Directory *dir, const char *path)
FUNC_ATTR_NONNULL_ALL
{
int r = uv_fs_scandir(&fs_loop, &dir->request, path, 0, NULL);
- if (r <= 0) {
+ if (r < 0) {
os_closedir(dir);
}
- return r > 0;
+ return r >= 0;
}
/// Increments the directory pointer.
diff --git a/src/nvim/path.c b/src/nvim/path.c
index f68cb46f33..a3b5bb7490 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -612,8 +612,8 @@ static size_t do_path_expand(garray_T *gap, const char_u *path,
*s = NUL;
Directory dir;
- if (os_scandir(&dir, *buf == NUL ? "." : (char *)buf)
- || os_isdir(*buf == NUL ? (char_u *)"." : (char_u *)buf)) {
+ char *dirpath = (*buf == NUL ? "." : (char *)buf);
+ if (os_file_is_readable(dirpath) && os_scandir(&dir, dirpath)) {
// Find all matching entries.
char_u *name;
scandir_next_with_dots(NULL /* initialize */);