mirror of
https://github.com/vim/vim.git
synced 2025-09-07 22:03:36 -04:00
patch 7.4.1120
Problem: delete(x, 'rf') fails if a directory is empty. (Lcd) Solution: Ignore not finding matches in an empty directory.
This commit is contained in:
parent
72defda84e
commit
336bd622c3
@ -7313,7 +7313,7 @@ delete_recursive(char_u *name)
|
||||
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)
|
||||
|
@ -11087,7 +11087,7 @@ gen_expand_wildcards(num_pat, pat, num_file, file, flags)
|
||||
|
||||
recursive = FALSE;
|
||||
|
||||
return (ga.ga_data != NULL) ? retval : FAIL;
|
||||
return ((flags & EW_EMPTYOK) || ga.ga_data != NULL) ? retval : FAIL;
|
||||
}
|
||||
|
||||
# ifdef VIM_BACKTICK
|
||||
|
@ -21,6 +21,7 @@ endfunc
|
||||
func Test_recursive_delete()
|
||||
call mkdir('Xdir1')
|
||||
call mkdir('Xdir1/subdir')
|
||||
call mkdir('Xdir1/empty')
|
||||
split Xdir1/Xfile
|
||||
call setline(1, ['a', 'b'])
|
||||
w
|
||||
@ -30,6 +31,7 @@ func Test_recursive_delete()
|
||||
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'))
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1120,
|
||||
/**/
|
||||
1119,
|
||||
/**/
|
||||
|
@ -836,6 +836,7 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname);
|
||||
#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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user