summaryrefslogtreecommitdiff
path: root/src/option.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/option.c')
-rw-r--r--src/option.c44
1 files changed, 34 insertions, 10 deletions
diff --git a/src/option.c b/src/option.c
index f16c4ba44..8d7f09a54 100644
--- a/src/option.c
+++ b/src/option.c
@@ -248,7 +248,8 @@
# define PV_CRBIND OPT_WIN(WV_CRBIND)
#endif
#ifdef FEAT_CONCEAL
-# define PV_CONCEAL OPT_WIN(WV_CONCEAL)
+# define PV_COCU OPT_WIN(WV_COCU)
+# define PV_COLE OPT_WIN(WV_COLE)
#endif
/* WV_ and BV_ values get typecasted to this for the "indir" field */
@@ -816,9 +817,18 @@ static struct vimoption
{(char_u *)0L, (char_u *)0L}
#endif
SCRIPTID_INIT},
- {"conceallevel","conc", P_NUM|P_RWIN|P_VI_DEF,
+ {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
#ifdef FEAT_CONCEAL
- (char_u *)VAR_WIN, PV_CONCEAL,
+ (char_u *)VAR_WIN, PV_COCU,
+ {(char_u *)"", (char_u *)NULL}
+#else
+ (char_u *)NULL, PV_NONE,
+ {(char_u *)NULL, (char_u *)0L}
+#endif
+ SCRIPTID_INIT},
+ {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF,
+#ifdef FEAT_CONCEAL
+ (char_u *)VAR_WIN, PV_COLE,
#else
(char_u *)NULL, PV_NONE,
#endif
@@ -6848,6 +6858,10 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
p = (char_u *)CPO_ALL;
else if (varp == &(curbuf->b_p_fo))
p = (char_u *)FO_ALL;
+#ifdef FEAT_CONCEAL
+ else if (varp == &curwin->w_p_cocu)
+ p = (char_u *)COCU_ALL;
+#endif
else if (varp == &p_mouse)
{
#ifdef FEAT_MOUSE
@@ -7505,7 +7519,7 @@ set_bool_option(opt_idx, varp, value, opt_flags)
redraw_titles();
# endif
# ifdef FEAT_CONCEAL
- if (curwin->w_p_conc > 0)
+ if (curwin->w_p_cole > 0)
update_single_line(curwin, curwin->w_cursor.lnum);
# endif
}
@@ -8273,17 +8287,17 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags)
ml_open_files();
}
#ifdef FEAT_CONCEAL
- else if (pp == &curwin->w_p_conc)
+ else if (pp == &curwin->w_p_cole)
{
- if (curwin->w_p_conc < 0)
+ if (curwin->w_p_cole < 0)
{
errmsg = e_positive;
- curwin->w_p_conc = 0;
+ curwin->w_p_cole = 0;
}
- else if (curwin->w_p_conc > 3)
+ else if (curwin->w_p_cole > 3)
{
errmsg = e_invarg;
- curwin->w_p_conc = 3;
+ curwin->w_p_cole = 3;
}
}
#endif
@@ -9554,7 +9568,8 @@ get_varp(p)
case PV_CRBIND: return (char_u *)&(curwin->w_p_crb);
#endif
#ifdef FEAT_CONCEAL
- case PV_CONCEAL: return (char_u *)&(curwin->w_p_conc);
+ case PV_COCU: return (char_u *)&(curwin->w_p_cocu);
+ case PV_COLE: return (char_u *)&(curwin->w_p_cole);
#endif
case PV_AI: return (char_u *)&(curbuf->b_p_ai);
@@ -9749,6 +9764,9 @@ copy_winopt(from, to)
#ifdef FEAT_DIFF
to->wo_diff = from->wo_diff;
#endif
+#ifdef FEAT_CONCEAL
+ to->wo_cocu = vim_strsave(from->wo_cocu);
+#endif
#ifdef FEAT_FOLDING
to->wo_fdc = from->wo_fdc;
to->wo_fen = from->wo_fen;
@@ -9802,6 +9820,9 @@ check_winopt(wop)
#ifdef FEAT_SYN_HL
check_string_option(&wop->wo_cc);
#endif
+#ifdef FEAT_CONCEAL
+ check_string_option(&wop->wo_cocu);
+#endif
}
/*
@@ -9829,6 +9850,9 @@ clear_winopt(wop)
#ifdef FEAT_SYN_HL
clear_string_option(&wop->wo_cc);
#endif
+#ifdef FEAT_CONCEAL
+ clear_string_option(&wop->wo_cocu);
+#endif
}
/*