Mercurial > vim
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()