Add 'relativenumber' patch from Markus Heidelberg.
diff --git a/src/option.c b/src/option.c
index f93d839..c9cad32 100644
--- a/src/option.c
+++ b/src/option.c
@@ -207,6 +207,7 @@
# define PV_LBR OPT_WIN(WV_LBR)
#endif
#define PV_NU OPT_WIN(WV_NU)
+#define PV_RNU OPT_WIN(WV_RNU)
#ifdef FEAT_LINEBREAK
# define PV_NUW OPT_WIN(WV_NUW)
#endif
@@ -2015,6 +2016,9 @@
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)2000L, (char_u *)0L} SCRIPTID_INIT},
+ {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
+ (char_u *)VAR_WIN, PV_RNU,
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"remap", NULL, P_BOOL|P_VI_DEF,
(char_u *)&p_remap, PV_NONE,
{(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
@@ -7230,10 +7234,18 @@
/* 'list', 'number' */
else if ((int *)varp == &curwin->w_p_list
- || (int *)varp == &curwin->w_p_nu)
+ || (int *)varp == &curwin->w_p_nu
+ || (int *)varp == &curwin->w_p_rnu)
{
if (curwin->w_curswant != MAXCOL)
curwin->w_set_curswant = TRUE;
+
+ /* If 'number' is set, reset 'relativenumber'. */
+ /* If 'relativenumber' is set, reset 'number'. */
+ if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu)
+ curwin->w_p_rnu = FALSE;
+ if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu)
+ curwin->w_p_nu = FALSE;
}
else if ((int *)varp == &curbuf->b_p_ro)
@@ -9232,6 +9244,7 @@
case PV_FMR: return (char_u *)&(curwin->w_p_fmr);
#endif
case PV_NU: return (char_u *)&(curwin->w_p_nu);
+ case PV_RNU: return (char_u *)&(curwin->w_p_rnu);
#ifdef FEAT_LINEBREAK
case PV_NUW: return (char_u *)&(curwin->w_p_nuw);
#endif
@@ -9417,6 +9430,7 @@
#endif
to->wo_list = from->wo_list;
to->wo_nu = from->wo_nu;
+ to->wo_rnu = from->wo_rnu;
#ifdef FEAT_LINEBREAK
to->wo_nuw = from->wo_nuw;
#endif