patch 9.1.0864: message history is fixed to 200
Commit:
https://github.com/vim/vim/commit/4bd9b2b2467e696061104a029000e9824c6c609e
Author: Shougo Matsushita <[email protected]>
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 <[email protected]>
Signed-off-by: Shougo Matsushita <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
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 [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1tBheC-005J0b-AA%40256bit.org.