changeset 18297:b0b37bd807ba v8.1.2143

patch 8.1.2143: cannot see each command even when 'verbose' is set Commit: https://github.com/vim/vim/commit/4facea310c2788c88f021b262658b847381a50a8 Author: Bram Moolenaar <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 12 Oct 2019 20:30:03 +0200
parents fb6ec9cfb1c0
children 319c64023a01
files src/ex_docmd.c src/testdir/dumps/Test_verbose_option_1.dump src/testdir/test_cmdline.vim src/testdir/test_tagjump.vim src/version.c
diffstat 5 files changed, 68 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- 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)
 {
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
--- 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))
--- 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')
--- 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,