patch 9.1.0864: message history is fixed to 200 Commit: https://github.com/vim/vim/commit/4bd9b2b2467e696061104a029000e9824c6c609e Author: Shougo Matsushita <shougo.ma...@gmail.com> Date: Thu Nov 14 22:31:48 2024 +0100
patch 9.1.0864: message history is fixed to 200 Problem: message history is fixed to 200 Solution: Add the 'msghistory' option, increase the default value to 500 (Shougo Matsushita) closes: #16048 Co-authored-by: Milly <milly...@gmail.com> Signed-off-by: Shougo Matsushita <shougo.ma...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt index 6453b95fa..69d8bc7c6 100644 --- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -1,4 +1,4 @@ -*message.txt* For Vim version 9.1. Last change: 2024 Mar 13 +*message.txt* For Vim version 9.1. Last change: 2024 Nov 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -29,7 +29,7 @@ depends on the 'shortmess' option. Clear messages, keeping only the {count} most recent ones. -The number of remembered messages is fixed at 200. +The number of remembered messages is determined by the 'msghistory' option. *g<* The "g<" command can be used to see the last page of previous command output. diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 73ff7cc60..1aa5cccf7 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -4440,7 +4440,8 @@ A jump table for the options with a short description can be found at |Q_op|. global A history of ":" commands, and a history of previous search patterns is remembered. This option decides how many entries may be stored in - each of these histories (see |cmdline-editing|). + each of these histories (see |cmdline-editing| and 'msghistory' for + the number of messages to remember). The maximum value is 10000. NOTE: This option is set to the Vi default value when 'compatible' is set and to the Vim default value when 'compatible' is reset. @@ -5917,6 +5918,12 @@ A jump table for the options with a short description can be found at |Q_op|. time in msec between two mouse clicks for the second click to be recognized as a multi click. + *'msghistory'* *'mhi'* +'msghistory' 'mhi' number (default 500) + global + Determines how many entries are remembered in the |:messages| history. + The maximum value is 10000. + *'mzquantum'* *'mzq'* 'mzquantum' 'mzq' number (default 100) global diff --git a/runtime/doc/tags b/runtime/doc/tags index 00c131d80..86db8a41d 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -501,6 +501,7 @@ $quote eval.txt /*$quote* 'mesg' vi_diff.txt /*'mesg'* 'mfd' options.txt /*'mfd'* 'mh' options.txt /*'mh'* +'mhi' options.txt /*'mhi'* 'mis' options.txt /*'mis'* 'mkspellmem' options.txt /*'mkspellmem'* 'ml' options.txt /*'ml'* @@ -531,6 +532,7 @@ $quote eval.txt /*$quote* 'mousetime' options.txt /*'mousetime'* 'mp' options.txt /*'mp'* 'mps' options.txt /*'mps'* +'msghistory' options.txt /*'msghistory'* 'msm' options.txt /*'msm'* 'mzq' options.txt /*'mzq'* 'mzquantum' options.txt /*'mzquantum'* diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index ac0700ed7..10e13f846 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.1. Last change: 2024 Nov 11 +*version9.txt* For Vim version 9.1. Last change: 2024 Nov 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -41659,6 +41659,7 @@ Options: ~ popup 'findfunc' Vim function to obtain the results for a |:find| command +'msghistory' Max number of messages to remember 'winfixbuf' Keep buffer focused in a window 'tabclose' Which tab page to focus after closing a tab page 't_xo' Terminal uses XON/XOFF handshaking (e.g. vt420) diff --git a/runtime/optwin.vim b/runtime/optwin.vim index 99b1ecfd2..c8170da71 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -749,6 +749,8 @@ call <SID>AddOption("terse", gettext("add 's' flag in 'shortmess' (don't show se call <SID>BinOptionG("terse", &terse) call <SID>AddOption("shortmess", gettext("list of flags to make messages shorter")) call <SID>OptionG("shm", &shm) +call <SID>AddOption("msghistory", gettext("how many messages are remembered")) +call append("$", " set mhi=" . &mhi) call <SID>AddOption("showcmd", gettext("show (partial) command keys in location given by 'showcmdloc'")) let &sc = s:old_sc call <SID>BinOptionG("sc", &sc) diff --git a/src/feature.h b/src/feature.h index 5fcd727a9..bcfc4a40c 100644 --- a/src/feature.h +++ b/src/feature.h @@ -137,11 +137,6 @@ * main window area. */ -/* - * Message history is fixed at 200 messages. - */ -#define MAX_MSG_HIST_LEN 200 - /* * +folding Fold lines. */ diff --git a/src/message.c b/src/message.c index 576d92268..5853e471f 100644 --- a/src/message.c +++ b/src/message.c @@ -1013,7 +1013,7 @@ add_msg_hist( return; // Don't let the message history get too big - while (msg_hist_len > MAX_MSG_HIST_LEN) + while (msg_hist_len > p_mhi) (void)delete_first_msg(); // allocate an entry and add the message at the end of the history diff --git a/src/option.c b/src/option.c index dcb5752e1..4616d63d3 100644 --- a/src/option.c +++ b/src/option.c @@ -4914,6 +4914,16 @@ check_num_option_bounds( errmsg = e_invalid_argument; p_hi = 10000; } + if (p_mhi < 0) + { + errmsg = e_argument_must_be_positive; + p_mhi = 0; + } + else if (p_mhi > 10000) + { + errmsg = e_invalid_argument; + p_mhi = 10000; + } if (p_re < 0 || p_re > 2) { errmsg = e_invalid_argument; diff --git a/src/option.h b/src/option.h index d5f72a1cc..18a7c2ad5 100644 --- a/src/option.h +++ b/src/option.h @@ -794,6 +794,7 @@ EXTERN int p_mousemev; // 'mousemoveevent' #endif EXTERN long p_mouset; // 'mousetime' EXTERN int p_more; // 'more' +EXTERN long p_mhi; // 'msghistory' #ifdef FEAT_MZSCHEME EXTERN long p_mzq; // 'mzquantum # if defined(DYNAMIC_MZSCHEME) diff --git a/src/optiondefs.h b/src/optiondefs.h index 585604fb3..81bb1db40 100644 --- a/src/optiondefs.h +++ b/src/optiondefs.h @@ -1778,6 +1778,9 @@ static struct vimoption options[] = {"mousetime", "mouset", P_NUM|P_VI_DEF, (char_u *)&p_mouset, PV_NONE, NULL, NULL, {(char_u *)500L, (char_u *)0L} SCTX_INIT}, + {"msghistory","mhi", P_NUM|P_VI_DEF, + (char_u *)&p_mhi, PV_NONE, NULL, NULL, + {(char_u *)500L, (char_u *)0L} SCTX_INIT}, {"mzquantum", "mzq", P_NUM, #ifdef FEAT_MZSCHEME (char_u *)&p_mzq, PV_NONE, did_set_mzquantum, NULL, diff --git a/src/testdir/gen_opt_test.vim b/src/testdir/gen_opt_test.vim index afea28b7e..ac9401eca 100644 --- a/src/testdir/gen_opt_test.vim +++ b/src/testdir/gen_opt_test.vim @@ -85,6 +85,7 @@ let test_values = { \ 'imstyle': [[0, 1], [-1, 2, 999]], \ 'lines': [[2, 24, 1000], [-1, 0, 1]], \ 'linespace': [[-1, 0, 2, 4, 999], ['']], + \ 'msghistory': [[0, 1, 100, 10000], [-1, 10001]], \ 'numberwidth': [[1, 4, 8, 10, 11, 20], [-1, 0, 21]], \ 'regexpengine': [[0, 1, 2], [-1, 3, 999]], \ 'report': [[0, 1, 2, 9999], [-1]], diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index bd9da730b..09a41f7da 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -732,6 +732,7 @@ func Test_set_option_errors() call assert_fails('set backupcopy=', 'E474:') call assert_fails('set regexpengine=3', 'E474:') call assert_fails('set history=10001', 'E474:') + call assert_fails('set msghistory=10001', 'E474:') call assert_fails('set numberwidth=21', 'E474:') call assert_fails('set colorcolumn=-a', 'E474:') call assert_fails('set colorcolumn=a', 'E474:') @@ -745,6 +746,7 @@ func Test_set_option_errors() endif call assert_fails('set helpheight=-1', 'E487:') call assert_fails('set history=-1', 'E487:') + call assert_fails('set msghistory=-1', 'E487:') call assert_fails('set report=-1', 'E487:') call assert_fails('set shiftwidth=-1', 'E487:') call assert_fails('set sidescroll=-1', 'E487:') diff --git a/src/version.c b/src/version.c index d0aa4036a..cbc4a8e11 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 864, /**/ 863, /**/ -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1tBheC-005J0b-AA%40256bit.org.