# HG changeset patch # User Bram Moolenaar # Date 1570905003 -7200 # Node ID b0b37bd807badcf6222c5e6d2f11b67707327b2c # Parent fb6ec9cfb1c085b293b805a5e011859a9799048c patch 8.1.2143: cannot see each command even when 'verbose' is set Commit: https://github.com/vim/vim/commit/4facea310c2788c88f021b262658b847381a50a8 Author: Bram Moolenaar Date: Sat Oct 12 20:17:40 2019 +0200 patch 8.1.2143: cannot see each command even when 'verbose' is set Problem: Cannot see each command even when 'verbose' is set. Solution: List each command when 'verbose' is at least 16. diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -559,6 +559,27 @@ do_exmode( } /* + * Print the executed command for when 'verbose' is set. + * When "lnum" is 0 only print the command. + */ + static void +msg_verbose_cmd(linenr_T lnum, char_u *cmd) +{ + ++no_wait_return; + verbose_enter_scroll(); + + if (lnum == 0) + smsg(_("Executing: %s"), cmd); + else + smsg(_("line %ld: %s"), (long)lnum, cmd); + if (msg_silent == 0) + msg_puts("\n"); // don't overwrite this + + verbose_leave_scroll(); + --no_wait_return; +} + +/* * Execute a simple command line. Used for translated commands like "*". */ int @@ -944,18 +965,7 @@ do_cmdline( } if (p_verbose >= 15 && sourcing_name != NULL) - { - ++no_wait_return; - verbose_enter_scroll(); - - smsg(_("line %ld: %s"), - (long)sourcing_lnum, cmdline_copy); - if (msg_silent == 0) - msg_puts("\n"); /* don't overwrite this */ - - verbose_leave_scroll(); - --no_wait_return; - } + msg_verbose_cmd(sourcing_lnum, cmdline_copy); /* * 2. Execute one '|' separated command. @@ -1666,6 +1676,9 @@ do_one_cmd( if ((*cmdlinep)[0] == '#' && (*cmdlinep)[1] == '!') goto doend; + if (p_verbose >= 16) + msg_verbose_cmd(0, *cmdlinep); + /* * 1. Skip comment lines and leading white space and colons. * 2. Handle command modifiers. @@ -8534,9 +8547,9 @@ ex_folddo(exarg_T *eap) { linenr_T lnum; -#ifdef FEAT_CLIPBOARD +# ifdef FEAT_CLIPBOARD start_global_changes(); -#endif +# endif /* First set the marks for all lines closed/open. */ for (lnum = eap->line1; lnum <= eap->line2; ++lnum) @@ -8546,9 +8559,9 @@ ex_folddo(exarg_T *eap) /* Execute the command on the marked lines. */ global_exe(eap->arg); ml_clearmarked(); /* clear rest of the marks */ -#ifdef FEAT_CLIPBOARD +# ifdef FEAT_CLIPBOARD end_global_changes(); -#endif +# endif } #endif @@ -8566,7 +8579,7 @@ is_loclist_cmd(int cmdidx) } #endif -# if defined(FEAT_TIMERS) || defined(PROTO) +#if defined(FEAT_TIMERS) || defined(PROTO) int get_pressedreturn(void) { diff --git a/src/testdir/dumps/Test_verbose_option_1.dump b/src/testdir/dumps/Test_verbose_option_1.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_verbose_option_1.dump @@ -0,0 +1,12 @@ +|~+0#4040ff13#ffffff0| @73 +|~| @73 +|~| @73 +|~| @73 +|E+0#0000000&|x|e|c|u|t|i|n|g|:| |D|o|S|o|m|e|t|h|i|n|g| @52 +|E|x|e|c|u|t|i|n|g|:| |e|c|h|o| |'|h|e|l@1|o|'| |||s|e|t| |t|s|=|4| |||l|e|t| |v| |=| |'|1|2|3|'| |||e|c|h|o| |v| @18 +|h|e|l@1|o| @69 +|E|x|e|c|u|t|i|n|g|:| |s|e|t| |t|s|=|4| |||l|e|t| |v| |=| |'|1|2|3|'| |||e|c|h|o| |v| @32 +|E|x|e|c|u|t|i|n|g|:| |l|e|t| |v| |=| |'|1|2|3|'| |||e|c|h|o| |v| @42 +|E|x|e|c|u|t|i|n|g|:| |e|c|h|o| |v| @57 +|1|2|3| @71 +|P+0#00e0003&|r|e|s@1| |E|N|T|E|R| |o|r| |t|y|p|e| |c|o|m@1|a|n|d| |t|o| |c|o|n|t|i|n|u|e> +0#0000000&@35 diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -1,5 +1,8 @@ " Tests for editing the command line. +source check.vim +source screendump.vim + func Test_complete_tab() call writefile(['testfile'], 'Xtestfile') call feedkeys(":e Xtest\t\r", "tx") @@ -687,6 +690,26 @@ func Test_verbosefile() call delete('Xlog') endfunc +func Test_verbose_option() + CheckScreendump + + let lines =<< trim [SCRIPT] + command DoSomething echo 'hello' |set ts=4 |let v = '123' |echo v + call feedkeys("\r", 't') " for the hit-enter prompt + set verbose=20 + [SCRIPT] + call writefile(lines, 'XTest_verbose') + + let buf = RunVimInTerminal('-S XTest_verbose', {'rows': 12}) + call term_wait(buf, 100) + call term_sendkeys(buf, ":DoSomething\") + call VerifyScreenDump(buf, 'Test_verbose_option_1', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('XTest_verbose') +endfunc + func Test_setcmdpos() func InsertTextAtPos(text, pos) call assert_equal(0, setcmdpos(a:pos)) diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim --- a/src/testdir/test_tagjump.vim +++ b/src/testdir/test_tagjump.vim @@ -501,6 +501,7 @@ func Test_tselect() call term_sendkeys(buf, ":tselect main\2\") call VerifyScreenDump(buf, 'Test_tselect_1', {}) + call StopVimInTerminal(buf) call delete('Xtags') call delete('Xtest.c') call delete('XTest_tselect') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2143, +/**/ 2142, /**/ 2141,