if (exp == NULL)
return -1;
if (gen_expand_wildcards(1, &exp, &file_count, &files,
- EW_DIR|EW_FILE|EW_SILENT|EW_ALLLINKS|EW_DODOT) == OK)
+ EW_DIR|EW_FILE|EW_SILENT|EW_ALLLINKS|EW_DODOT|EW_EMPTYOK) == OK)
{
for (i = 0; i < file_count; ++i)
if (delete_recursive(files[i]) != 0)
recursive = FALSE;
- return (ga.ga_data != NULL) ? retval : FAIL;
+ return ((flags & EW_EMPTYOK) || ga.ga_data != NULL) ? retval : FAIL;
}
# ifdef VIM_BACKTICK
func Test_recursive_delete()
call mkdir('Xdir1')
call mkdir('Xdir1/subdir')
+ call mkdir('Xdir1/empty')
split Xdir1/Xfile
call setline(1, ['a', 'b'])
w
call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
call assert_true(isdirectory('Xdir1/subdir'))
call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
+ call assert_true(isdirectory('Xdir1/empty'))
call assert_equal(0, delete('Xdir1', 'rf'))
call assert_false(isdirectory('Xdir1'))
call assert_equal(-1, delete('Xdir1', 'd'))
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1120,
/**/
1119,
/**/
#define EW_SHELLCMD 0x2000 /* called from expand_shellcmd(), don't check
* if executable is in $PATH */
#define EW_DODOT 0x4000 /* also files starting with a dot */
+#define EW_EMPTYOK 0x8000 /* no matches is not an error */
/* Flags for find_file_*() functions. */
#define FINDFILE_FILE 0 /* only files */