changeset 30347:ea2935ec4435 v9.0.0509

patch 9.0.0509: confusing error for "saveas" command with "nofile" buffer Commit: https://github.com/vim/vim/commit/500a1f9972afa354f0bc77bc535aabf9f5f0116d Author: Bram Moolenaar <Bram@vim.org> Date: Tue Sep 20 11:49:10 2022 +0100 patch 9.0.0509: confusing error for "saveas" command with "nofile" buffer Problem: Confusing error for "saveas" command with "nofile" buffer. Solution: Give a clearer error message. (closes https://github.com/vim/vim/issues/11171)
author Bram Moolenaar <Bram@vim.org>
date Tue, 20 Sep 2022 13:00:04 +0200
parents 3e591e2485d3
children 018f5bdd93df
files src/bufwrite.c src/errors.h src/testdir/test_writefile.vim src/version.c
diffstat 4 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/bufwrite.c
+++ b/src/bufwrite.c
@@ -888,7 +888,8 @@ buf_write(
 	    --no_wait_return;
 	    msg_scroll = msg_save;
 	    if (nofile_err)
-		emsg(_(e_no_matching_autocommands_for_acwrite_buffer));
+		semsg(_(e_no_matching_autocommands_for_buftype_str_buffer),
+							       curbuf->b_p_bt);
 
 	    if (nofile_err
 #ifdef FEAT_EVAL
--- a/src/errors.h
+++ b/src/errors.h
@@ -1715,8 +1715,8 @@ EXTERN char e_printmbcharset_cannot_be_e
 EXTERN char e_no_default_font_specified_for_multi_byte_printing[]
 	INIT(= N_("E675: No default font specified for multi-byte printing."));
 #endif
-EXTERN char e_no_matching_autocommands_for_acwrite_buffer[]
-	INIT(= N_("E676: No matching autocommands for acwrite buffer"));
+EXTERN char e_no_matching_autocommands_for_buftype_str_buffer[]
+	INIT(= N_("E676: No matching autocommands for buftype=%s buffer"));
 #ifdef FEAT_SYN_HL
 EXTERN char e_error_writing_temp_file[]
 	INIT(= N_("E677: Error writing temp file"));
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -238,6 +238,12 @@ func Test_saveas()
   syntax off
   %bw!
   call delete('Xsaveas.pl')
+
+  " :saveas fails for "nofile" buffer
+  set buftype=nofile
+  call assert_fails('saveas Xsafile', 'E676: No matching autocommands for buftype=nofile buffer')
+
+  bwipe!
 endfunc
 
 func Test_write_errors()
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    509,
+/**/
     508,
 /**/
     507,