updated for version 7.0216
diff --git a/src/option.c b/src/option.c
index 23b6be8..5c957e5 100644
--- a/src/option.c
+++ b/src/option.c
@@ -414,6 +414,8 @@
#define P_NFNAME 0x200000L/* only normal file name chars allowed */
#define P_INSECURE 0x400000L/* option was set from a modeline */
+#define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
+
/*
* options[] is initialized here.
* The order of the options MUST be alphabetic for ":set all" and findoption().
@@ -848,8 +850,7 @@
#else
(char_u *)NULL, PV_NONE,
#endif
- {(char_u *)FALSE, (char_u *)0L}
- },
+ {(char_u *)FALSE, (char_u *)0L}},
{"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
#ifdef FEAT_INS_EXPAND
(char_u *)&p_dict, PV_DICT,
@@ -1423,7 +1424,7 @@
# if defined(MSDOS) || defined(MSWIN) || defined(OS2)
(char_u *)"@,48-57,_,128-167,224-235"
# else
- (char_u *)"@,48-57,_,192-255"
+ ISK_LATIN1
# endif
#endif
}},
@@ -1602,6 +1603,13 @@
{"matchtime", "mat", P_NUM|P_VI_DEF,
(char_u *)&p_mat, PV_NONE,
{(char_u *)5L, (char_u *)0L}},
+ {"maxcombine", "mco", P_NUM|P_VI_DEF,
+#ifdef FEAT_MBYTE
+ (char_u *)&p_mco, PV_NONE,
+#else
+ (char_u *)NULL, PV_NONE,
+#endif
+ {(char_u *)2, (char_u *)0L}},
{"maxfuncdepth", "mfd", P_NUM|P_VI_DEF,
#ifdef FEAT_EVAL
(char_u *)&p_mfd, PV_NONE,
@@ -3198,9 +3206,17 @@
# endif
)
{
- /* Adjust the default for 'isprint' to match latin1. */
+ /* Adjust the default for 'isprint' and 'iskeyword' to match
+ * latin1. Also set the defaults for when 'nocompatible' is
+ * set. */
set_string_option_direct((char_u *)"isp", -1,
(char_u *)"@,161-255", OPT_FREE, SID_NONE);
+ set_string_option_direct((char_u *)"isk", -1,
+ ISK_LATIN1, OPT_FREE, SID_NONE);
+ opt_idx = findoption((char_u *)"isp");
+ options[opt_idx].def_val[VIM_DEFAULT] = (char_u *)"@,161-255";
+ opt_idx = findoption((char_u *)"isk");
+ options[opt_idx].def_val[VIM_DEFAULT] = ISK_LATIN1;
(void)init_chartab();
}
#endif
@@ -7564,6 +7580,18 @@
}
#endif /* FEAT_FOLDING */
+#ifdef FEAT_MBYTE
+ /* 'maxcombine' */
+ else if (pp == &p_mco)
+ {
+ if (p_mco > MAX_MCO)
+ p_mco = MAX_MCO;
+ else if (p_mco < 0)
+ p_mco = 0;
+ screenclear(); /* will re-allocate the screen */
+ }
+#endif
+
else if (pp == &curbuf->b_p_iminsert)
{
if (curbuf->b_p_iminsert < 0 || curbuf->b_p_iminsert > B_IMODE_LAST)