summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-12 20:17:40 +0200
committerBram Moolenaar <Bram@vim.org>2019-10-12 20:17:40 +0200
commit4facea310c2788c88f021b262658b847381a50a8 (patch)
tree3b04d61798a1a687954b9fa2acccad97283ed9cc
parentd1e2f3984ae0b4e22ba6977eedcf05285819eea9 (diff)
patch 8.1.2143: cannot see each command even when 'verbose' is setv8.1.2143
Problem: Cannot see each command even when 'verbose' is set. Solution: List each command when 'verbose' is at least 16.
-rw-r--r--src/ex_docmd.c47
-rw-r--r--src/testdir/dumps/Test_verbose_option_1.dump12
-rw-r--r--src/testdir/test_cmdline.vim23
-rw-r--r--src/testdir/test_tagjump.vim1
-rw-r--r--src/version.c2
5 files changed, 68 insertions, 17 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index a4a8756354..f4c327140d 100644
--- 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
index 0000000000..192d1028c8
--- /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
index 98768b5097..55f35e7dd6 100644
--- 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\<CR>")
+ 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
index 64a0a28caf..81d3e80a1c 100644
--- 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\<CR>2\<CR>")
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
index 74126d2e24..615d24e141 100644
--- 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,