# HG changeset patch # User Bram Moolenaar # Date 1663671604 -7200 # Node ID ea2935ec4435f107d64c539b56109a1712bd88fc # Parent 3e591e2485d35c94e2afb15c0c2aa778b0860919 patch 9.0.0509: confusing error for "saveas" command with "nofile" buffer Commit: https://github.com/vim/vim/commit/500a1f9972afa354f0bc77bc535aabf9f5f0116d Author: Bram Moolenaar 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) diff --git a/src/bufwrite.c b/src/bufwrite.c --- 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 diff --git a/src/errors.h b/src/errors.h --- 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")); diff --git a/src/testdir/test_writefile.vim b/src/testdir/test_writefile.vim --- 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() diff --git a/src/version.c b/src/version.c --- 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,