vim-patch:8.1.1378: delete() can not handle a file name that looks like a pattern (#12784)

Problem:    Delete() can not handle a file name that looks like a pattern.
Solution:   Use readdir() instead of appending "/*" and expanding wildcards.
            (Ken Takata, closes vim/vim#4424, closes vim/vim#696)
701ff0a3e5
This commit is contained in:
Shougo
2021-05-07 21:07:13 +09:00
committed by GitHub
parent 17434b88b4
commit 4be0e92db0
10 changed files with 134 additions and 168 deletions

View File

@@ -1402,6 +1402,10 @@ func Test_bufadd_bufload()
endfunc
func Test_readdir()
if isdirectory('Xdir')
call delete('Xdir', 'rf')
endif
call mkdir('Xdir')
call writefile([], 'Xdir/foo.txt')
call writefile([], 'Xdir/bar.txt')
@@ -1456,4 +1460,19 @@ func Test_default_arg_value()
call assert_equal('msg', HasDefault())
endfunc
func Test_delete_rf()
call mkdir('Xdir')
call writefile([], 'Xdir/foo.txt')
call writefile([], 'Xdir/bar.txt')
call mkdir('Xdir/[a-1]') " issue #696
call writefile([], 'Xdir/[a-1]/foo.txt')
call writefile([], 'Xdir/[a-1]/bar.txt')
call assert_true(filereadable('Xdir/foo.txt'))
call assert_true(filereadable('Xdir/[a-1]/foo.txt'))
call assert_equal(0, delete('Xdir', 'rf'))
call assert_false(filereadable('Xdir/foo.txt'))
call assert_false(filereadable('Xdir/[a-1]/foo.txt'))
endfunc
" vim: shiftwidth=2 sts=2 expandtab