1
0
forked from aniani/vim

updated for version 7.4.336

Problem:    Setting 'history' to a big value causes out-of-memory errors.
Solution:   Limit the value to 10000. (Hirohito Higashi)
This commit is contained in:
Bram Moolenaar
2014-06-25 11:48:54 +02:00
parent e8d1f20cbd
commit 78159bbf9e
3 changed files with 11 additions and 3 deletions

View File

@@ -3920,12 +3920,13 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'history'* *'hi'* *'history'* *'hi'*
'history' 'hi' number (Vim default: 20, Vi default: 0) 'history' 'hi' number (Vim default: 50, Vi default: 0)
global global
{not in Vi} {not in Vi}
A history of ":" commands, and a history of previous search patterns A history of ":" commands, and a history of previous search patterns
are remembered. This option decides how many entries may be stored in 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|).
The maximum value is 10000.
NOTE: This option is set to the Vi default value when 'compatible' is NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.

View File

@@ -1392,7 +1392,7 @@ static struct vimoption
SCRIPTID_INIT}, SCRIPTID_INIT},
{"history", "hi", P_NUM|P_VIM, {"history", "hi", P_NUM|P_VIM,
(char_u *)&p_hi, PV_NONE, (char_u *)&p_hi, PV_NONE,
{(char_u *)0L, (char_u *)20L} SCRIPTID_INIT}, {(char_u *)0L, (char_u *)50L} SCRIPTID_INIT},
{"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM, {"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM,
#ifdef FEAT_RIGHTLEFT #ifdef FEAT_RIGHTLEFT
(char_u *)&p_hkmap, PV_NONE, (char_u *)&p_hkmap, PV_NONE,
@@ -8595,6 +8595,11 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags)
errmsg = e_positive; errmsg = e_positive;
p_hi = 0; p_hi = 0;
} }
else if (p_hi > 10000)
{
errmsg = e_invarg;
p_hi = 10000;
}
if (p_re < 0 || p_re > 2) if (p_re < 0 || p_re > 2)
{ {
errmsg = e_invarg; errmsg = e_invarg;

View File

@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
336,
/**/ /**/
335, 335,
/**/ /**/