# HG changeset patch # User Bram Moolenaar # Date 1660485603 -7200 # Node ID 2d2f36e430f9e50bfbb1d84fdc9f3cdcf12d1089 # Parent 59a263545b0c7e26e282b32e4f673a429f83b299 patch 9.0.0207: stacktrace not shown when debugging Commit: https://github.com/vim/vim/commit/28c162f6f1f525882a9a60f10ab4836dee7eb59f Author: zeertzjq Date: Sun Aug 14 14:49:50 2022 +0100 patch 9.0.0207: stacktrace not shown when debugging Problem: Stacktrace not shown when debugging. Solution: Set msg_scroll in msg_source(). (closes https://github.com/vim/vim/issues/10917) diff --git a/src/message.c b/src/message.c --- a/src/message.c +++ b/src/message.c @@ -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); diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -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 \" 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 207, +/**/ 206, /**/ 205,