changeset 18386:105c6cf8b266 v8.1.2187

patch 8.1.2187: error for bad regexp even though regexp is not used Commit: https://github.com/vim/vim/commit/b40c2576d4e0e2dd2c580414c45947d88556d76d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 19 21:01:05 2019 +0200 patch 8.1.2187: error for bad regexp even though regexp is not used Problem: Error for bad regexp even though regexp is not used when writing a file. (Arseny Nasokin) Solution: Ignore regexp errors. (closes #5059)
author Bram Moolenaar <Bram@vim.org>
date Sat, 19 Oct 2019 21:15:04 +0200
parents 1480cf360326
children 2d4bed814a79
files src/cmdexpand.c src/ex_docmd.c src/testdir/test_writefile.vim src/version.c
diffstat 4 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1976,6 +1976,8 @@ ExpandFromContext(
 	flags |= EW_KEEPALL;
     if (options & WILD_SILENT)
 	flags |= EW_SILENT;
+    if (options & WILD_NOERROR)
+	flags |= EW_NOERROR;
     if (options & WILD_ALLLINKS)
 	flags |= EW_ALLLINKS;
 
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -4211,7 +4211,8 @@ expand_filename(
 		else /* n == 2 */
 		{
 		    expand_T	xpc;
-		    int		options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
+		    int		options = WILD_LIST_NOTFOUND
+					       | WILD_NOERROR | WILD_ADD_SLASH;
 
 		    ExpandInit(&xpc);
 		    xpc.xp_context = EXPAND_FILES;
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -1,4 +1,4 @@
-" Tests for the writefile() function.
+" Tests for the writefile() function and some :write commands.
 
 func Test_writefile()
   let f = tempname()
@@ -16,6 +16,11 @@ func Test_writefile()
   call delete(f)
 endfunc
 
+func Test_writefile_ignore_regexp_error()
+  write Xt[z-a]est.txt
+  call delete('Xt[z-a]est.txt')
+endfunc
+
 func Test_writefile_fails_gently()
   call assert_fails('call writefile(["test"], "Xfile", [])', 'E730:')
   call assert_false(filereadable("Xfile"))
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2187,
+/**/
     2186,
 /**/
     2185,