diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-06-02 22:19:50 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-06-02 22:19:50 +0200 |
commit | 441d60efd8f0e4a44d0cf4bca11cb72e6c830e47 (patch) | |
tree | c7a6be9f5f7facb84514bb912378a74ade5a00b6 | |
parent | 57f75a5a364ad4d8334fdf6b6b41420b48e08390 (diff) |
patch 8.2.0888: readdirex() returns size -2 for a directoryv8.2.0888
Problem: Readdirex() returns size -2 for a directory.
Solution: Add missing "else". (Ken Takata, closes #6185)
-rw-r--r-- | src/fileio.c | 2 | ||||
-rw-r--r-- | src/testdir/test_functions.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/fileio.c b/src/fileio.c index e71b639a5a..4da3afc540 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4575,7 +4575,7 @@ create_readdirex_item(char_u *path, char_u *name) if (S_ISDIR(st.st_mode)) size = 0; // non-perfect check for overflow - if ((off_T)size != (off_T)st.st_size) + else if ((off_T)size != (off_T)st.st_size) size = -2; if (dict_add_number(item, "size", size) == FAIL) goto theend; diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index a82c70bbc2..1de9c4c556 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -1864,13 +1864,15 @@ endfunc func Test_readdirex() call mkdir('Xdir') - call writefile([], 'Xdir/foo.txt') - call writefile([], 'Xdir/bar.txt') + call writefile(['foo'], 'Xdir/foo.txt') + call writefile(['barbar'], 'Xdir/bar.txt') call mkdir('Xdir/dir') " All results let files = readdirex('Xdir')->map({-> v:val.name}) call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files)) + let sizes = readdirex('Xdir')->map({-> v:val.size}) + call assert_equal([0, 4, 7], sort(sizes)) " Only results containing "f" let files = 'Xdir'->readdirex({ e -> stridx(e.name, 'f') != -1 }) diff --git a/src/version.c b/src/version.c index 91d4a467ba..95225107c0 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 888, +/**/ 887, /**/ 886, |