diff src/option.c @ 4113:8904ccd5ee85 v7.3.810

updated for version 7.3.810 Problem: 'relativenumber is reset unexpectedly. (Fran?ois Ingelrest) Solution: After an option was reset also reset the global value. Add a test. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Wed, 13 Feb 2013 15:44:26 +0100
parents 3bd2c055319e
children ecf21be84def
line wrap: on
line diff
--- a/src/option.c
+++ b/src/option.c
@@ -7109,7 +7109,7 @@ did_set_string_option(opt_idx, varp, new
     return errmsg;
 }
 
-#ifdef FEAT_SYN_HL
+#if defined(FEAT_SYN_HL) || defined(PROTO)
 /*
  * Simple int comparison function for use with qsort()
  */
@@ -7630,17 +7630,22 @@ set_bool_option(opt_idx, varp, value, op
     }
 #endif
 
-    /* 'list', 'number' */
-    else if ((int *)varp == &curwin->w_p_list
-	  || (int *)varp == &curwin->w_p_nu
+    /* 'number', 'relativenumber' */
+    else if ((int *)varp == &curwin->w_p_nu
 	  || (int *)varp == &curwin->w_p_rnu)
     {
 	/* 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;
+	    curwin->w_allbuf_opt.wo_rnu = FALSE;
+	}
 	if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu)
+	{
 	    curwin->w_p_nu = FALSE;
+	    curwin->w_allbuf_opt.wo_nu = FALSE;
+	}
     }
 
     else if ((int *)varp == &curbuf->b_p_ro)