]> granicus.if.org Git - vim/commitdiff
patch 9.0.0207: stacktrace not shown when debugging v9.0.0207
authorzeertzjq <zeertzjq@outlook.com>
Sun, 14 Aug 2022 13:49:50 +0000 (14:49 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 14 Aug 2022 13:49:50 +0000 (14:49 +0100)
Problem:    Stacktrace not shown when debugging.
Solution:   Set msg_scroll in msg_source(). (closes #10917)

src/message.c
src/testdir/test_options.vim
src/version.c

index 715c7beb5a1db3ba51543cb5f4c65083d3dcdd1e..ec128bd42518dbc3a1e66cec65d05ffff44bbd03 100644 (file)
@@ -531,6 +531,7 @@ msg_source(int attr)
        return;
     recursive = TRUE;
 
+    msg_scroll = TRUE;  // this will take more than one line
     ++no_wait_return;
     p = get_emsg_source();
     if (p != NULL)
@@ -746,7 +747,6 @@ emsg_core(char_u *s)
     }
 
     emsg_on_display = TRUE;    // remember there is an error message
-    ++msg_scroll;              // don't overwrite a previous message
     attr = HL_ATTR(HLF_E);     // set highlight mode for error messages
     if (msg_scrolled != 0)
        need_wait_return = TRUE;    // needed in case emsg() is called after
@@ -759,6 +759,7 @@ emsg_core(char_u *s)
 #endif
     /*
      * Display name and line number for the source of the error.
+     * Sets "msg_scroll".
      */
     msg_source(attr);
 
index ba08dd7968c329887bbde97fa16f8b87232799fd..e30321279379575efc5bf9c9fdd00b8e821f6a96 100644 (file)
@@ -934,11 +934,16 @@ func Test_rightleftcmd()
   set rightleft&
 endfunc
 
-" Test for the "debug" option
+" Test for the 'debug' option
 func Test_debug_option()
+  " redraw to avoid matching previous messages
+  redraw
   set debug=beep
   exe "normal \<C-c>"
   call assert_equal('Beep!', Screenline(&lines))
+  call assert_equal('line    4:', Screenline(&lines - 1))
+  " only match the final colon in the line that shows the source
+  call assert_match(':$', Screenline(&lines - 2))
   set debug&
 endfunc
 
index e13374f9aa10f964d0cf7523deb5a8930e8ad9e6..1ef5b39e97b5f0a553c8b835d1b07526df3773c8 100644 (file)
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    207,
 /**/
     206,
 /**/