forked from aniani/vim
patch 8.2.0888: readdirex() returns size -2 for a directory
Problem: Readdirex() returns size -2 for a directory. Solution: Add missing "else". (Ken Takata, closes #6185)
This commit is contained in:
@@ -4575,7 +4575,7 @@ create_readdirex_item(char_u *path, char_u *name)
|
|||||||
if (S_ISDIR(st.st_mode))
|
if (S_ISDIR(st.st_mode))
|
||||||
size = 0;
|
size = 0;
|
||||||
// non-perfect check for overflow
|
// 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;
|
size = -2;
|
||||||
if (dict_add_number(item, "size", size) == FAIL)
|
if (dict_add_number(item, "size", size) == FAIL)
|
||||||
goto theend;
|
goto theend;
|
||||||
|
@@ -1864,13 +1864,15 @@ endfunc
|
|||||||
|
|
||||||
func Test_readdirex()
|
func Test_readdirex()
|
||||||
call mkdir('Xdir')
|
call mkdir('Xdir')
|
||||||
call writefile([], 'Xdir/foo.txt')
|
call writefile(['foo'], 'Xdir/foo.txt')
|
||||||
call writefile([], 'Xdir/bar.txt')
|
call writefile(['barbar'], 'Xdir/bar.txt')
|
||||||
call mkdir('Xdir/dir')
|
call mkdir('Xdir/dir')
|
||||||
|
|
||||||
" All results
|
" All results
|
||||||
let files = readdirex('Xdir')->map({-> v:val.name})
|
let files = readdirex('Xdir')->map({-> v:val.name})
|
||||||
call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
|
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"
|
" Only results containing "f"
|
||||||
let files = 'Xdir'->readdirex({ e -> stridx(e.name, 'f') != -1 })
|
let files = 'Xdir'->readdirex({ e -> stridx(e.name, 'f') != -1 })
|
||||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
888,
|
||||||
/**/
|
/**/
|
||||||
887,
|
887,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user