diff --git a/src/optiondefs.h b/src/optiondefs.h
index 7ec4847..c76cede 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -263,12 +263,15 @@
 {
     char	*fullname;	// full option name
     char	*shortname;	// permissible abbreviation
-    long_u	flags;		// see below
+    long_u	flags;		// see in option.h
     char_u	*var;		// global option: pointer to variable;
 				// window-local option: VAR_WIN;
 				// buffer-local option: global value
     idopt_T	indir;		// global option: PV_NONE;
 				// local option: indirect option index
+    // callback function to invoke after an option is modified to validate and
+    // apply the new value.
+    opt_did_set_cb_T	opt_did_set_cb;
     char_u	*def_val[2];	// default values for variable (vi and vim)
 #ifdef FEAT_EVAL
     sctx_T	script_ctx;	// script context where the option was last set
@@ -321,6 +324,7 @@
 #else
 			    (char_u *)NULL, PV_NONE,
 #endif
+			    NULL,
 			    {
 #if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
 			    (char_u *)128L,
@@ -329,72 +333,72 @@
 #endif
 					    (char_u *)0L} SCTX_INIT},
     {"antialias",   "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)FALSE}
 			    SCTX_INIT},
     {"arabic",	    "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
 #ifdef FEAT_ARABIC
-			    (char_u *)VAR_WIN, PV_ARAB,
+			    (char_u *)VAR_WIN, PV_ARAB, did_set_arabic,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
 #ifdef FEAT_ARABIC
-			    (char_u *)&p_arshape, PV_NONE,
+			    (char_u *)&p_arshape, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"allowrevins", "ari",  P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)&p_ari, PV_NONE,
+			    (char_u *)&p_ari, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"altkeymap",   "akm",  P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"ambiwidth",  "ambw",  P_STRING|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_ambw, PV_NONE,
+			    (char_u *)&p_ambw, PV_NONE, did_set_ambiwidth,
 			    {(char_u *)"single", (char_u *)0L}
 			    SCTX_INIT},
     {"autochdir",  "acd",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_AUTOCHDIR
-			    (char_u *)&p_acd, PV_NONE,
+			    (char_u *)&p_acd, PV_NONE, did_set_autochdir,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"autoshelldir",  "asd",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_AUTOSHELLDIR
-			    (char_u *)&p_asd, PV_NONE,
+			    (char_u *)&p_asd, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"autoindent",  "ai",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ai, PV_AI,
+			    (char_u *)&p_ai, PV_AI, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"autoprint",   "ap",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"autoread",    "ar",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ar, PV_AR,
+			    (char_u *)&p_ar, PV_AR, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"autowrite",   "aw",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_aw, PV_NONE,
+			    (char_u *)&p_aw, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"autowriteall","awa",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_awa, PV_NONE,
+			    (char_u *)&p_awa, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"background",  "bg",   P_STRING|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_bg, PV_NONE,
+			    (char_u *)&p_bg, PV_NONE, did_set_background,
 			    {
 #if (defined(MSWIN)) && !defined(FEAT_GUI)
 			    (char_u *)"dark",
@@ -403,13 +407,13 @@
 #endif
 					    (char_u *)0L} SCTX_INIT},
     {"backspace",   "bs",   P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_bs, PV_NONE,
+			    (char_u *)&p_bs, PV_NONE, did_set_backspace,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"backup",	    "bk",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_bk, PV_NONE,
+			    (char_u *)&p_bk, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"backupcopy",  "bkc",  P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_bkc, PV_BKC,
+			    (char_u *)&p_bkc, PV_BKC, did_set_backupcopy,
 #ifdef UNIX
 			    {(char_u *)"yes", (char_u *)"auto"}
 #else
@@ -418,10 +422,11 @@
 			    SCTX_INIT},
     {"backupdir",   "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA
 							    |P_NODUP|P_SECURE,
-			    (char_u *)&p_bdir, PV_NONE,
+			    (char_u *)&p_bdir, PV_NONE, NULL,
 			    {(char_u *)DFLT_BDIR, (char_u *)0L} SCTX_INIT},
     {"backupext",   "bex",  P_STRING|P_VI_DEF|P_NFNAME,
 			    (char_u *)&p_bex, PV_NONE,
+			    did_set_backupext_or_patchmode,
 			    {
 #ifdef VMS
 			    (char_u *)"_",
@@ -430,75 +435,77 @@
 #endif
 					    (char_u *)0L} SCTX_INIT},
     {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_bsk, PV_NONE,
+			    (char_u *)&p_bsk, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"balloondelay","bdlay",P_NUM|P_VI_DEF,
 #ifdef FEAT_BEVAL
-			    (char_u *)&p_bdlay, PV_NONE,
+			    (char_u *)&p_bdlay, PV_NONE, NULL,
 			    {(char_u *)600L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"ballooneval", "beval",P_BOOL|P_VI_DEF|P_NO_MKRC,
 #ifdef FEAT_BEVAL_GUI
-			    (char_u *)&p_beval, PV_NONE,
+			    (char_u *)&p_beval, PV_NONE, did_set_ballooneval,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"balloonevalterm", "bevalterm",P_BOOL|P_VI_DEF|P_NO_MKRC,
 #ifdef FEAT_BEVAL_TERM
 			    (char_u *)&p_bevalterm, PV_NONE,
+			    did_set_balloonevalterm,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"balloonexpr", "bexpr", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
 #if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
-			    (char_u *)&p_bexpr, PV_BEXPR,
+			    (char_u *)&p_bexpr, PV_BEXPR, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"beautify",    "bf",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"belloff",      "bo",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_bo, PV_NONE,
+			    (char_u *)&p_bo, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"binary",	    "bin",  P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_bin, PV_BIN,
+			    (char_u *)&p_bin, PV_BIN, did_set_binary,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"bioskey",	    "biosk",P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"bomb",	    NULL,   P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
 			    (char_u *)&p_bomb, PV_BOMB,
+			    did_set_eof_eol_fixeol_bomb,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"breakat",	    "brk",  P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST,
 #ifdef FEAT_LINEBREAK
-			    (char_u *)&p_breakat, PV_NONE,
+			    (char_u *)&p_breakat, PV_NONE, did_set_breakat,
 			    {(char_u *)" \t!@*-+;:,./?", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"breakindent",   "bri",  P_BOOL|P_VI_DEF|P_VIM|P_RWIN,
 #ifdef FEAT_LINEBREAK
-			    (char_u *)VAR_WIN, PV_BRI,
+			    (char_u *)VAR_WIN, PV_BRI, NULL,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
@@ -506,79 +513,80 @@
 						  |P_ONECOMMA|P_NODUP,
 #ifdef FEAT_LINEBREAK
 			    (char_u *)VAR_WIN, PV_BRIOPT,
+			    did_set_breakindentopt,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #endif
 			    SCTX_INIT},
     {"browsedir",   "bsdir",P_STRING|P_VI_DEF,
 #ifdef FEAT_BROWSE
-			    (char_u *)&p_bsdir, PV_NONE,
+			    (char_u *)&p_bsdir, PV_NONE, did_set_browsedir,
 			    {(char_u *)"last", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"bufhidden",   "bh",   P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
-			    (char_u *)&p_bh, PV_BH,
+			    (char_u *)&p_bh, PV_BH, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"buflisted",   "bl",   P_BOOL|P_VI_DEF|P_NOGLOB,
-			    (char_u *)&p_bl, PV_BL,
+			    (char_u *)&p_bl, PV_BL, did_set_buflisted,
 			    {(char_u *)1L, (char_u *)0L}
 			    SCTX_INIT},
     {"buftype",	    "bt",   P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
-			    (char_u *)&p_bt, PV_BT,
+			    (char_u *)&p_bt, PV_BT, did_set_buftype,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"casemap",	    "cmp",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cmp, PV_NONE,
+			    (char_u *)&p_cmp, PV_NONE, NULL,
 			    {(char_u *)"internal,keepascii", (char_u *)0L}
 			    SCTX_INIT},
     {"cdhome",	    "cdh",  P_BOOL|P_VI_DEF|P_VIM|P_SECURE,
-			    (char_u *)&p_cdh, PV_NONE,
+			    (char_u *)&p_cdh, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L}
 			    SCTX_INIT},
     {"cdpath",	    "cd",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
-			    (char_u *)&p_cdpath, PV_NONE,
+			    (char_u *)&p_cdpath, PV_NONE, NULL,
 			    {(char_u *)",,", (char_u *)0L}
 			    SCTX_INIT},
     {"cedit",	    NULL,   P_STRING,
-			    (char_u *)&p_cedit, PV_NONE,
+			    (char_u *)&p_cedit, PV_NONE, did_set_cedit,
 			    {(char_u *)"", (char_u *)CTRL_F_STR}
 			    SCTX_INIT},
     {"charconvert",  "ccv", P_STRING|P_VI_DEF|P_SECURE,
 #if defined(FEAT_EVAL)
-			    (char_u *)&p_ccv, PV_NONE,
+			    (char_u *)&p_ccv, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"cindent",	    "cin",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_cin, PV_CIN,
+			    (char_u *)&p_cin, PV_CIN, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"cinkeys",	    "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cink, PV_CINK,
+			    (char_u *)&p_cink, PV_CINK, NULL,
 			    {INDENTKEYS_DEFAULT, (char_u *)0L} SCTX_INIT},
     {"cinoptions",  "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cino, PV_CINO,
+			    (char_u *)&p_cino, PV_CINO, did_set_cinoptions,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"cinscopedecls", "cinsd", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cinsd, PV_CINSD,
+			    (char_u *)&p_cinsd, PV_CINSD, NULL,
 			    {(char_u *)"public,protected,private", (char_u *)0L}
 			    SCTX_INIT},
     {"cinwords",    "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cinw, PV_CINW,
+			    (char_u *)&p_cinw, PV_CINW, NULL,
 			    {(char_u *)"if,else,while,do,for,switch",
 				(char_u *)0L}
 			    SCTX_INIT},
     {"clipboard",   "cb",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_CLIPBOARD
-			    (char_u *)&p_cb, PV_NONE,
+			    (char_u *)&p_cb, PV_NONE, did_set_clipboard,
 # ifdef FEAT_XCLIPBOARD
 			    {(char_u *)"autoselect,exclude:cons\\|linux",
 							       (char_u *)0L}
@@ -586,339 +594,342 @@
 			    {(char_u *)"", (char_u *)0L}
 # endif
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"cmdheight",   "ch",   P_NUM|P_VI_DEF|P_RALL,
-			    (char_u *)&p_ch, PV_NONE,
+			    (char_u *)&p_ch, PV_NONE, did_set_cmdheight,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"cmdwinheight", "cwh", P_NUM|P_VI_DEF,
-			    (char_u *)&p_cwh, PV_NONE,
+			    (char_u *)&p_cwh, PV_NONE, NULL,
 			    {(char_u *)7L, (char_u *)0L} SCTX_INIT},
     {"colorcolumn", "cc",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
 #ifdef FEAT_SYN_HL
-			    (char_u *)VAR_WIN, PV_CC,
+			    (char_u *)VAR_WIN, PV_CC, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"columns",	    "co",   P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
-			    (char_u *)&Columns, PV_NONE,
+			    (char_u *)&Columns, PV_NONE, NULL,
 			    {(char_u *)80L, (char_u *)0L} SCTX_INIT},
     {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
 							  |P_NODUP|P_CURSWANT,
-			    (char_u *)&p_com, PV_COM,
+			    (char_u *)&p_com, PV_COM, NULL,
 			    {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
 				(char_u *)0L}
 			    SCTX_INIT},
     {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
 #ifdef FEAT_FOLDING
-			    (char_u *)&p_cms, PV_CMS,
+			    (char_u *)&p_cms, PV_CMS, did_set_commentstring,
 			    {(char_u *)"/*%s*/", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
 			    // P_PRI_MKRC isn't needed here, optval_default()
 			    // always returns TRUE for 'compatible'
     {"compatible",  "cp",   P_BOOL|P_RALL,
-			    (char_u *)&p_cp, PV_NONE,
+			    (char_u *)&p_cp, PV_NONE, did_set_compatible,
 			    {(char_u *)TRUE, (char_u *)FALSE} SCTX_INIT},
     {"complete",    "cpt",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cpt, PV_CPT,
+			    (char_u *)&p_cpt, PV_CPT, NULL,
 			    {(char_u *)".,w,b,u,t,i", (char_u *)0L}
 			    SCTX_INIT},
     {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
 #ifdef FEAT_CONCEAL
-			    (char_u *)VAR_WIN, PV_COCU,
+			    (char_u *)VAR_WIN, PV_COCU, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF,
 #ifdef FEAT_CONCEAL
-			    (char_u *)VAR_WIN, PV_COLE,
+			    (char_u *)VAR_WIN, PV_COLE, did_set_conceallevel,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L}
 			    SCTX_INIT},
     {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE|P_FUNC,
 #ifdef FEAT_COMPL_FUNC
-			    (char_u *)&p_cfu, PV_CFU,
+			    (char_u *)&p_cfu, PV_CFU, did_set_completefunc,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"completeopt",   "cot",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cot, PV_NONE,
+			    (char_u *)&p_cot, PV_NONE, did_set_completeopt,
 			    {(char_u *)"menu,preview", (char_u *)0L}
 			    SCTX_INIT},
     {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
 #if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
-			    (char_u *)&p_cpp, PV_NONE,
+			    (char_u *)&p_cpp, PV_NONE, did_set_completepopup,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"completeslash",   "csl",  P_STRING|P_VI_DEF|P_VIM,
 #if defined(BACKSLASH_IN_FILENAME)
-			    (char_u *)&p_csl, PV_CSL,
+			    (char_u *)&p_csl, PV_CSL, did_set_completeslash,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"confirm",     "cf",   P_BOOL|P_VI_DEF,
 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
-			    (char_u *)&p_confirm, PV_NONE,
+			    (char_u *)&p_confirm, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"conskey",	    "consk",P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"copyindent",  "ci",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_ci, PV_CI,
+			    (char_u *)&p_ci, PV_CI, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"cpoptions",   "cpo",  P_STRING|P_VIM|P_RALL|P_FLAGLIST,
-			    (char_u *)&p_cpo, PV_NONE,
+			    (char_u *)&p_cpo, PV_NONE, NULL,
 			    {(char_u *)CPO_VI, (char_u *)CPO_VIM}
 			    SCTX_INIT},
     {"cryptmethod", "cm",   P_STRING|P_ALLOCED|P_VI_DEF,
 #ifdef FEAT_CRYPT
-			    (char_u *)&p_cm, PV_CM,
+			    (char_u *)&p_cm, PV_CM, did_set_cryptmethod,
 			    {(char_u *)"blowfish2", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"cscopepathcomp", "cspc", P_NUM|P_VI_DEF|P_VIM,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_cspc, PV_NONE,
+			    (char_u *)&p_cspc, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"cscopeprg",   "csprg", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_csprg, PV_NONE,
+			    (char_u *)&p_csprg, PV_NONE, NULL,
 			    {(char_u *)"cscope", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX)
 			    (char_u *)&p_csqf, PV_NONE,
+			    did_set_cscopequickfix,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_csre, PV_NONE,
+			    (char_u *)&p_csre, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"cscopetag",   "cst",  P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_cst, PV_NONE,
+			    (char_u *)&p_cst, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"cscopetagorder", "csto", P_NUM|P_VI_DEF|P_VIM,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_csto, PV_NONE,
+			    (char_u *)&p_csto, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"cscopeverbose", "csverb", P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_CSCOPE
-			    (char_u *)&p_csverbose, PV_NONE,
+			    (char_u *)&p_csverbose, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"cursorbind",  "crb",  P_BOOL|P_VI_DEF,
-			    (char_u *)VAR_WIN, PV_CRBIND,
+			    (char_u *)VAR_WIN, PV_CRBIND, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"cursorcolumn", "cuc", P_BOOL|P_VI_DEF|P_RWINONLY,
 #ifdef FEAT_SYN_HL
-			    (char_u *)VAR_WIN, PV_CUC,
+			    (char_u *)VAR_WIN, PV_CUC, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"cursorline",   "cul", P_BOOL|P_VI_DEF|P_RWINONLY,
 #ifdef FEAT_SYN_HL
-			    (char_u *)VAR_WIN, PV_CUL,
+			    (char_u *)VAR_WIN, PV_CUL, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"cursorlineopt", "culopt", P_STRING|P_VI_DEF|P_RWIN|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_SYN_HL
-			    (char_u *)VAR_WIN, PV_CULOPT,
+			    (char_u *)VAR_WIN, PV_CULOPT, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"both", (char_u *)0L} SCTX_INIT},
     {"debug",	    NULL,   P_STRING|P_VI_DEF,
-			    (char_u *)&p_debug, PV_NONE,
+			    (char_u *)&p_debug, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"define",	    "def",  P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
 #ifdef FEAT_FIND_ID
-			    (char_u *)&p_def, PV_DEF,
+			    (char_u *)&p_def, PV_DEF, NULL,
 			    {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"delcombine", "deco",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_deco, PV_NONE,
+			    (char_u *)&p_deco, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"dictionary",  "dict", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP|P_NDNAME,
-			    (char_u *)&p_dict, PV_DICT,
+			    (char_u *)&p_dict, PV_DICT, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"diff",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB,
 #ifdef FEAT_DIFF
-			    (char_u *)VAR_WIN, PV_DIFF,
+			    (char_u *)VAR_WIN, PV_DIFF, did_set_diff,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"diffexpr",    "dex",  P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT,
 #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
-			    (char_u *)&p_dex, PV_NONE,
+			    (char_u *)&p_dex, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"diffopt",	    "dip",  P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_ONECOMMA
 								     |P_NODUP,
 #ifdef FEAT_DIFF
-			    (char_u *)&p_dip, PV_NONE,
+			    (char_u *)&p_dip, PV_NONE, did_set_diffopt,
 			    {(char_u *)"internal,filler,closeoff",
 								(char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #endif
 			    SCTX_INIT},
     {"digraph",	    "dg",   P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_DIGRAPHS
-			    (char_u *)&p_dg, PV_NONE,
+			    (char_u *)&p_dg, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"directory",   "dir",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA
 							    |P_NODUP|P_SECURE,
-			    (char_u *)&p_dir, PV_NONE,
+			    (char_u *)&p_dir, PV_NONE, NULL,
 			    {(char_u *)DFLT_DIR, (char_u *)0L} SCTX_INIT},
     {"display",	    "dy",   P_STRING|P_VI_DEF|P_ONECOMMA|P_RALL|P_NODUP,
-			    (char_u *)&p_dy, PV_NONE,
+			    (char_u *)&p_dy, PV_NONE, did_set_display,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"eadirection", "ead",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_ead, PV_NONE,
+			    (char_u *)&p_ead, PV_NONE, NULL,
 			    {(char_u *)"both", (char_u *)0L}
 			    SCTX_INIT},
     {"edcompatible","ed",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ed, PV_NONE,
+			    (char_u *)&p_ed, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"emoji",      "emo",   P_BOOL|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_emoji, PV_NONE,
+			    (char_u *)&p_emoji, PV_NONE, did_set_ambiwidth,
 			    {(char_u *)TRUE, (char_u *)0L}
 			    SCTX_INIT},
     {"encoding",    "enc",  P_STRING|P_VI_DEF|P_RCLR|P_NO_ML,
-			    (char_u *)&p_enc, PV_NONE,
+			    (char_u *)&p_enc, PV_NONE, NULL,
 			    {(char_u *)ENC_DFLT, (char_u *)0L}
 			    SCTX_INIT},
     {"endoffile",   "eof",  P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
 			    (char_u *)&p_eof, PV_EOF,
+			    did_set_eof_eol_fixeol_bomb,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"endofline",   "eol",  P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
 			    (char_u *)&p_eol, PV_EOL,
+			    did_set_eof_eol_fixeol_bomb,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"equalalways", "ea",   P_BOOL|P_VI_DEF|P_RALL,
-			    (char_u *)&p_ea, PV_NONE,
+			    (char_u *)&p_ea, PV_NONE, did_set_equalalways,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"equalprg",    "ep",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_ep, PV_EP,
+			    (char_u *)&p_ep, PV_EP, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"errorbells",  "eb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_eb, PV_NONE,
+			    (char_u *)&p_eb, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"errorfile",   "ef",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_ef, PV_NONE,
+			    (char_u *)&p_ef, PV_NONE, NULL,
 			    {(char_u *)DFLT_ERRORFILE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"errorformat", "efm",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_efm, PV_EFM,
+			    (char_u *)&p_efm, PV_EFM, NULL,
 			    {(char_u *)DFLT_EFM, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"esckeys",	    "ek",   P_BOOL|P_VIM,
-			    (char_u *)&p_ek, PV_NONE,
+			    (char_u *)&p_ek, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"eventignore", "ei",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_ei, PV_NONE,
+			    (char_u *)&p_ei, PV_NONE, did_set_eventignore,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"expandtab",   "et",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_et, PV_ET,
+			    (char_u *)&p_et, PV_ET, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"exrc",	    "ex",   P_BOOL|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_exrc, PV_NONE,
+			    (char_u *)&p_exrc, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF
 								   |P_NO_MKRC,
-			    (char_u *)&p_fenc, PV_FENC,
+			    (char_u *)&p_fenc, PV_FENC, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA,
-			    (char_u *)&p_fencs, PV_NONE,
+			    (char_u *)&p_fencs, PV_NONE, NULL,
 			    {(char_u *)"ucs-bom", (char_u *)0L}
 			    SCTX_INIT},
     {"fileformat",  "ff",   P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC
 								  |P_CURSWANT,
-			    (char_u *)&p_ff, PV_FF,
+			    (char_u *)&p_ff, PV_FF, did_set_fileformat,
 			    {(char_u *)DFLT_FF, (char_u *)0L} SCTX_INIT},
     {"fileformats", "ffs",  P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_ffs, PV_NONE,
+			    (char_u *)&p_ffs, PV_NONE, did_set_fileformats,
 			    {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
 			    SCTX_INIT},
     {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_fic, PV_NONE,
+			    (char_u *)&p_fic, PV_NONE, NULL,
 			    {
 #ifdef CASE_INSENSITIVE_FILENAME
 				    (char_u *)TRUE,
@@ -927,189 +938,190 @@
 #endif
 					(char_u *)0L} SCTX_INIT},
     {"filetype",    "ft",   P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
-			    (char_u *)&p_ft, PV_FT,
+			    (char_u *)&p_ft, PV_FT, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"fillchars",   "fcs",  P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_fcs, PV_FCS,
+			    (char_u *)&p_fcs, PV_FCS, NULL,
 			    {(char_u *)"vert:|,fold:-,eob:~,lastline:@",
 								  (char_u *)0L}
 			    SCTX_INIT},
     {"fixendofline",  "fixeol", P_BOOL|P_VI_DEF|P_RSTAT,
 			    (char_u *)&p_fixeol, PV_FIXEOL,
+			    did_set_eof_eol_fixeol_bomb,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"fkmap",	    "fk",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"flash",	    "fl",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"foldclose",   "fcl",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)&p_fcl, PV_NONE,
+			    (char_u *)&p_fcl, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldcolumn",  "fdc",  P_NUM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FDC,
+			    (char_u *)VAR_WIN, PV_FDC, did_set_foldcolumn,
 			    {(char_u *)FALSE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldenable",  "fen",  P_BOOL|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FEN,
+			    (char_u *)VAR_WIN, PV_FEN, NULL,
 			    {(char_u *)TRUE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldexpr",    "fde",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN|P_MLE,
 #if defined(FEAT_FOLDING) && defined(FEAT_EVAL)
-			    (char_u *)VAR_WIN, PV_FDE,
+			    (char_u *)VAR_WIN, PV_FDE, NULL,
 			    {(char_u *)"0", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldignore",  "fdi",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FDI,
+			    (char_u *)VAR_WIN, PV_FDI, did_set_foldignore,
 			    {(char_u *)"#", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldlevel",   "fdl",  P_NUM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FDL,
+			    (char_u *)VAR_WIN, PV_FDL, did_set_foldlevel,
 			    {(char_u *)0L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT,
 #ifdef FEAT_FOLDING
-			    (char_u *)&p_fdls, PV_NONE,
+			    (char_u *)&p_fdls, PV_NONE, NULL,
 			    {(char_u *)-1L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldmarker",  "fmr",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
 						    P_RWIN|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FMR,
+			    (char_u *)VAR_WIN, PV_FMR, did_set_foldmarker,
 			    {(char_u *)"{{{,}}}", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldmethod",  "fdm",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FDM,
+			    (char_u *)VAR_WIN, PV_FDM, did_set_foldmethod,
 			    {(char_u *)"manual", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldminlines","fml",  P_NUM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FML,
+			    (char_u *)VAR_WIN, PV_FML, did_set_foldminlines,
 			    {(char_u *)1L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldnestmax", "fdn",  P_NUM|P_VI_DEF|P_RWIN,
 #ifdef FEAT_FOLDING
-			    (char_u *)VAR_WIN, PV_FDN,
+			    (char_u *)VAR_WIN, PV_FDN, did_set_foldnestmax,
 			    {(char_u *)20L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldopen",    "fdo",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_CURSWANT,
 #ifdef FEAT_FOLDING
-			    (char_u *)&p_fdo, PV_NONE,
+			    (char_u *)&p_fdo, PV_NONE, NULL,
 		 {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
 						 (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"foldtext",    "fdt",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN|P_MLE,
 #if defined(FEAT_FOLDING) && defined(FEAT_EVAL)
-			    (char_u *)VAR_WIN, PV_FDT,
+			    (char_u *)VAR_WIN, PV_FDT, NULL,
 			    {(char_u *)"foldtext()", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"formatexpr", "fex",   P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
 #ifdef FEAT_EVAL
-			    (char_u *)&p_fex, PV_FEX,
+			    (char_u *)&p_fex, PV_FEX, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"formatoptions","fo",  P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST,
-			    (char_u *)&p_fo, PV_FO,
+			    (char_u *)&p_fo, PV_FO, NULL,
 			    {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM}
 			    SCTX_INIT},
     {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF,
-			    (char_u *)&p_flp, PV_FLP,
+			    (char_u *)&p_flp, PV_FLP, NULL,
 			    {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*",
 						 (char_u *)0L} SCTX_INIT},
     {"formatprg",   "fp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_fp, PV_FP,
+			    (char_u *)&p_fp, PV_FP, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"fsync",       "fs",   P_BOOL|P_SECURE|P_VI_DEF,
 #ifdef HAVE_FSYNC
-			    (char_u *)&p_fs, PV_NONE,
+			    (char_u *)&p_fs, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"gdefault",    "gd",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_gd, PV_NONE,
+			    (char_u *)&p_gd, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"graphic",	    "gr",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"grepformat",  "gfm",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_gefm, PV_NONE,
+			    (char_u *)&p_gefm, PV_NONE, NULL,
 			    {(char_u *)DFLT_GREPFORMAT, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"grepprg",	    "gp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_gp, PV_GP,
+			    (char_u *)&p_gp, PV_GP, NULL,
 			    {
 # if defined(MSWIN)
 			    // may be changed to "grep -n" in os_win32.c
@@ -1125,13 +1137,13 @@
 # endif
 			    (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guicursor",    "gcr", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef CURSOR_SHAPE
-			    (char_u *)&p_guicursor, PV_NONE,
+			    (char_u *)&p_guicursor, PV_NONE, NULL,
 			    {
 # ifdef FEAT_GUI
 				(char_u *)"n-v-c:block-Cursor/lCursor,ve:ver35-Cursor,o:hor50-Cursor,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor,sm:block-Cursor-blinkwait175-blinkoff150-blinkon175",
@@ -1140,34 +1152,36 @@
 # endif
 				    (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guifont",	    "gfn",  P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_GUI
-			    (char_u *)&p_guifont, PV_NONE,
+			    (char_u *)&p_guifont, PV_NONE, did_set_guifont,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guifontset",  "gfs",  P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA,
 #if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
 			    (char_u *)&p_guifontset, PV_NONE,
+			    did_set_guifontset,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guifontwide", "gfw",  P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_GUI)
 			    (char_u *)&p_guifontwide, PV_NONE,
+			    did_set_guifontwide,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
@@ -1176,9 +1190,10 @@
     {"guiligatures", "gli", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_GUI_GTK)
 			    (char_u *)&p_guiligatures, PV_NONE,
+			    did_set_guiligatures,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
@@ -1186,200 +1201,215 @@
 
     {"guiheadroom", "ghr",  P_NUM|P_VI_DEF,
 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
-			    (char_u *)&p_ghr, PV_NONE,
+			    (char_u *)&p_ghr, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)50L, (char_u *)0L} SCTX_INIT},
     {"guioptions",  "go",   P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST,
 #if defined(FEAT_GUI)
-			    (char_u *)&p_go, PV_NONE,
+			    (char_u *)&p_go, PV_NONE, did_set_guioptions,
 # if defined(UNIX)
 			    {(char_u *)"aegimrLtT", (char_u *)0L}
 # else
 			    {(char_u *)"egmrLtT", (char_u *)0L}
 # endif
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guipty",	    NULL,   P_BOOL|P_VI_DEF,
 #if defined(FEAT_GUI)
-			    (char_u *)&p_guipty, PV_NONE,
+			    (char_u *)&p_guipty, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"guitablabel",  "gtl", P_STRING|P_VI_DEF|P_RWIN|P_MLE,
 #if defined(FEAT_GUI_TABLINE)
-			    (char_u *)&p_gtl, PV_NONE,
+			    (char_u *)&p_gtl, PV_NONE, did_set_guitablabel,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"guitabtooltip",  "gtt", P_STRING|P_VI_DEF|P_RWIN,
 #if defined(FEAT_GUI_TABLINE)
-			    (char_u *)&p_gtt, PV_NONE,
+			    (char_u *)&p_gtt, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"hardtabs",    "ht",   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"helpfile",    "hf",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_hf, PV_NONE,
+			    (char_u *)&p_hf, PV_NONE, did_set_helpfile,
 			    {(char_u *)DFLT_HELPFILE, (char_u *)0L}
 			    SCTX_INIT},
     {"helpheight",  "hh",   P_NUM|P_VI_DEF,
 			    (char_u *)&p_hh, PV_NONE,
+			    did_set_winheight_helpheight,
 			    {(char_u *)20L, (char_u *)0L} SCTX_INIT},
     {"helplang",    "hlg",  P_STRING|P_VI_DEF|P_ONECOMMA,
 #ifdef FEAT_MULTI_LANG
-			    (char_u *)&p_hlg, PV_NONE,
+			    (char_u *)&p_hlg, PV_NONE, did_set_helplang,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"hidden",	    "hid",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_hid, PV_NONE,
+			    (char_u *)&p_hid, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"highlight",   "hl",   P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_hl, PV_NONE,
+			    (char_u *)&p_hl, PV_NONE, did_set_highlight,
 			    {(char_u *)HIGHLIGHT_INIT, (char_u *)0L}
 			    SCTX_INIT},
     {"history",	    "hi",   P_NUM|P_VIM,
-			    (char_u *)&p_hi, PV_NONE,
+			    (char_u *)&p_hi, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)50L} SCTX_INIT},
     {"hkmap",	    "hk",   P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)&p_hkmap, PV_NONE,
+			    (char_u *)&p_hkmap, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"hkmapp",	    "hkp",  P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)&p_hkmapp, PV_NONE,
+			    (char_u *)&p_hkmapp, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"hlsearch",    "hls",  P_BOOL|P_VI_DEF|P_VIM|P_RALL,
-			    (char_u *)&p_hls, PV_NONE,
+#if defined(FEAT_SEARCH_EXTRA)
+			    (char_u *)&p_hls, PV_NONE, did_set_hlsearch,
+#else
+			    (char_u *)NULL, PV_NONE, NULL,
+#endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"icon",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_icon, PV_NONE,
+			    (char_u *)&p_icon, PV_NONE, did_set_title_icon,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"iconstring",  NULL,   P_STRING|P_VI_DEF|P_MLE,
 			    (char_u *)&p_iconstring, PV_NONE,
+			    did_set_iconstring,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"ignorecase",  "ic",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ic, PV_NONE,
+			    (char_u *)&p_ic, PV_NONE, did_set_ignorecase,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE|P_FUNC,
-#if defined(FEAT_EVAL)
+#if defined(FEAT_EVAL) && \
+	(defined(FEAT_XIM) || defined(IME_WITHOUT_XIM) || defined(VIMDLL))
 			    (char_u *)&p_imaf, PV_NONE,
+			    did_set_imactivatefunc,
 			    {(char_u *)"", (char_u *)NULL}
 # else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 # endif
 			    SCTX_INIT},
     {"imactivatekey","imak",P_STRING|P_VI_DEF,
 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
 			    (char_u *)&p_imak, PV_NONE,
+			    did_set_imactivatekey,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"imcmdline",   "imc",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_imcmdline, PV_NONE,
+			    (char_u *)&p_imcmdline, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"imdisable",   "imd",  P_BOOL|P_VI_DEF,
+#if defined(HAVE_INPUT_METHOD)
 			    (char_u *)&p_imdisable, PV_NONE,
+			    did_set_imdisable,
+#else
+			    (char_u *)NULL, PV_NONE, NULL,
+#endif
 			    {(char_u *)FALSE, (char_u *)0L}
 			    SCTX_INIT},
     {"iminsert",    "imi",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_iminsert, PV_IMI,
+			    (char_u *)&p_iminsert, PV_IMI, did_set_iminsert,
 			    {(char_u *)B_IMODE_NONE, (char_u *)0L}
 			    SCTX_INIT},
     {"imsearch",    "ims",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_imsearch, PV_IMS,
+			    (char_u *)&p_imsearch, PV_IMS, did_set_imsearch,
 			    {(char_u *)B_IMODE_USE_INSERT, (char_u *)0L}
 			    SCTX_INIT},
     {"imstatusfunc","imsf",P_STRING|P_VI_DEF|P_SECURE|P_FUNC,
-#if defined(FEAT_EVAL)
-			    (char_u *)&p_imsf, PV_NONE,
+#if defined(FEAT_EVAL) && \
+	(defined(FEAT_XIM) || defined(IME_WITHOUT_XIM) || defined(VIMDLL))
+			    (char_u *)&p_imsf, PV_NONE, did_set_imstatusfunc,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"imstyle",	    "imst", P_NUM|P_VI_DEF|P_SECURE,
 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
-			    (char_u *)&p_imst, PV_NONE,
+			    (char_u *)&p_imst, PV_NONE, did_set_imstyle,
 			    {(char_u *)IM_OVER_THE_SPOT, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"include",	    "inc",  P_STRING|P_ALLOCED|P_VI_DEF,
 #ifdef FEAT_FIND_ID
-			    (char_u *)&p_inc, PV_INC,
+			    (char_u *)&p_inc, PV_INC, NULL,
 			    {(char_u *)"^\\s*#\\s*include", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"includeexpr", "inex", P_STRING|P_ALLOCED|P_VI_DEF|P_MLE,
 #if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
-			    (char_u *)&p_inex, PV_INEX,
+			    (char_u *)&p_inex, PV_INEX, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"incsearch",   "is",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_is, PV_NONE,
+			    (char_u *)&p_is, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"indentexpr", "inde",  P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
 #if defined(FEAT_EVAL)
-			    (char_u *)&p_inde, PV_INDE,
+			    (char_u *)&p_inde, PV_INDE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"indentkeys", "indk",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_EVAL)
-			    (char_u *)&p_indk, PV_INDK,
+			    (char_u *)&p_indk, PV_INDK, NULL,
 			    {INDENTKEYS_DEFAULT, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"infercase",   "inf",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_inf, PV_INF,
+			    (char_u *)&p_inf, PV_INF, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"insertmode",  "im",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_im, PV_NONE,
+			    (char_u *)&p_im, PV_NONE, did_set_insertmode,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"isfname",	    "isf",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_isf, PV_NONE,
+			    (char_u *)&p_isf, PV_NONE, NULL,
 			    {
 #ifdef BACKSLASH_IN_FILENAME
 				// Excluded are: & and ^ are special in cmd.exe
@@ -1396,7 +1426,7 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"isident",	    "isi",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_isi, PV_NONE,
+			    (char_u *)&p_isi, PV_NONE, NULL,
 			    {
 #if defined(MSWIN)
 			    (char_u *)"@,48-57,_,128-167,224-235",
@@ -1405,7 +1435,7 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"iskeyword",   "isk",  P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP,
-			    (char_u *)&p_isk, PV_ISK,
+			    (char_u *)&p_isk, PV_ISK, NULL,
 			    {
 				(char_u *)"@,48-57,_",
 #if defined(MSWIN)
@@ -1415,7 +1445,7 @@
 #endif
 			    } SCTX_INIT},
     {"isprint",	    "isp",  P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
-			    (char_u *)&p_isp, PV_NONE,
+			    (char_u *)&p_isp, PV_NONE, NULL,
 			    {
 #if defined(MSWIN) || defined(VMS)
 			    (char_u *)"@,~-255",
@@ -1424,35 +1454,35 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"joinspaces",  "js",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_js, PV_NONE,
+			    (char_u *)&p_js, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"key",	    NULL,   P_STRING|P_ALLOCED|P_VI_DEF|P_NO_MKRC,
 #ifdef FEAT_CRYPT
-			    (char_u *)&p_key, PV_KEY,
+			    (char_u *)&p_key, PV_KEY, did_set_cryptkey,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"keymap",	    "kmp",  P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC,
 #ifdef FEAT_KEYMAP
-			    (char_u *)&p_keymap, PV_KMAP,
+			    (char_u *)&p_keymap, PV_KMAP, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"keymodel",    "km",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_km, PV_NONE,
+			    (char_u *)&p_km, PV_NONE, did_set_keymodel,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"keyprotocol", "kpc",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_kpc, PV_NONE,
+			    (char_u *)&p_kpc, PV_NONE, did_set_keyprotocol,
 			    {(char_u *)"kitty:kitty,foot:kitty,wezterm:kitty,xterm:mok2", (char_u *)0L}
 			    SCTX_INIT},
     {"keywordprg",  "kp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_kp, PV_KP,
+			    (char_u *)&p_kp, PV_KP, NULL,
 			    {
 #if defined(MSWIN)
 			    (char_u *)":help",
@@ -1466,49 +1496,49 @@
 				(char_u *)0L} SCTX_INIT},
     {"langmap",     "lmap", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_SECURE,
 #ifdef FEAT_LANGMAP
-			    (char_u *)&p_langmap, PV_NONE,
+			    (char_u *)&p_langmap, PV_NONE, did_set_langmap,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"langmenu",    "lm",   P_STRING|P_VI_DEF|P_NFNAME,
 #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
-			    (char_u *)&p_lm, PV_NONE,
+			    (char_u *)&p_lm, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"langnoremap",  "lnr",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_LANGMAP
-			    (char_u *)&p_lnr, PV_NONE,
+			    (char_u *)&p_lnr, PV_NONE, did_set_langnoremap,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"langremap",  "lrm",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_LANGMAP
-			    (char_u *)&p_lrm, PV_NONE,
+			    (char_u *)&p_lrm, PV_NONE, did_set_langremap,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"laststatus",  "ls",   P_NUM|P_VI_DEF|P_RALL,
-			    (char_u *)&p_ls, PV_NONE,
+			    (char_u *)&p_ls, PV_NONE, did_set_laststatus,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"lazyredraw",  "lz",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_lz, PV_NONE,
+			    (char_u *)&p_lz, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"linebreak",   "lbr",  P_BOOL|P_VI_DEF|P_RWIN,
 #ifdef FEAT_LINEBREAK
-			    (char_u *)VAR_WIN, PV_LBR,
+			    (char_u *)VAR_WIN, PV_LBR, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"lines",	    NULL,   P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
-			    (char_u *)&Rows, PV_NONE,
+			    (char_u *)&Rows, PV_NONE, NULL,
 			    {
 #if defined(MSWIN)
 			    (char_u *)25L,
@@ -1519,8 +1549,9 @@
     {"linespace",   "lsp",  P_NUM|P_VI_DEF|P_RCLR,
 #ifdef FEAT_GUI
 			    (char_u *)&p_linespace, PV_NONE,
+			    did_set_linespace,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 #ifdef FEAT_GUI_MSWIN
 			    {(char_u *)1L, (char_u *)0L}
@@ -1529,135 +1560,135 @@
 #endif
 			    SCTX_INIT},
     {"lisp",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_lisp, PV_LISP,
+			    (char_u *)&p_lisp, PV_LISP, did_set_lisp,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"lispoptions", "lop",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_lop, PV_LOP,
+			    (char_u *)&p_lop, PV_LOP, did_set_lispoptions,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"lispwords",   "lw",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_lispwords, PV_LW,
+			    (char_u *)&p_lispwords, PV_LW, NULL,
 			    {(char_u *)LISPWORD_VALUE, (char_u *)0L} SCTX_INIT},
     {"list",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_LIST,
+			    (char_u *)VAR_WIN, PV_LIST, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"listchars",   "lcs",  P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_lcs, PV_LCS,
+			    (char_u *)&p_lcs, PV_LCS, NULL,
 			    {(char_u *)"eol:$", (char_u *)0L} SCTX_INIT},
     {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_lpl, PV_NONE,
+			    (char_u *)&p_lpl, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"luadll",      NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_LUA)
-			    (char_u *)&p_luadll, PV_NONE,
+			    (char_u *)&p_luadll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_LUA_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"macatsui",    NULL,   P_BOOL|P_VI_DEF|P_RCLR,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"magic",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_magic, PV_NONE,
+			    (char_u *)&p_magic, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"makeef",	    "mef",  P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_mef, PV_NONE,
+			    (char_u *)&p_mef, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"makeencoding","menc", P_STRING|P_VI_DEF,
-			    (char_u *)&p_menc, PV_MENC,
+			    (char_u *)&p_menc, PV_MENC, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"makeprg",	    "mp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_mp, PV_MP,
+			    (char_u *)&p_mp, PV_MP, NULL,
 # ifdef VMS
 			    {(char_u *)"MMS", (char_u *)0L}
 # else
 			    {(char_u *)"make", (char_u *)0L}
 # endif
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"matchpairs",  "mps",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_mps, PV_MPS,
+			    (char_u *)&p_mps, PV_MPS, did_set_matchpairs,
 			    {(char_u *)"(:),{:},[:]", (char_u *)0L}
 			    SCTX_INIT},
     {"matchtime",   "mat",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mat, PV_NONE,
+			    (char_u *)&p_mat, PV_NONE, NULL,
 			    {(char_u *)5L, (char_u *)0L} SCTX_INIT},
     {"maxcombine",  "mco",  P_NUM|P_VI_DEF|P_CURSWANT,
-			    (char_u *)&p_mco, PV_NONE,
+			    (char_u *)&p_mco, PV_NONE, did_set_maxcombine,
 			    {(char_u *)2, (char_u *)0L} SCTX_INIT},
     {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF,
 #ifdef FEAT_EVAL
-			    (char_u *)&p_mfd, PV_NONE,
+			    (char_u *)&p_mfd, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)100L, (char_u *)0L} SCTX_INIT},
     {"maxmapdepth", "mmd",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmd, PV_NONE,
+			    (char_u *)&p_mmd, PV_NONE, NULL,
 			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
     {"maxmem",	    "mm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_mm, PV_NONE,
+			    (char_u *)&p_mm, PV_NONE, NULL,
 			    {(char_u *)DFLT_MAXMEM, (char_u *)0L}
 			    SCTX_INIT},
     {"maxmempattern","mmp", P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmp, PV_NONE,
+			    (char_u *)&p_mmp, PV_NONE, NULL,
 			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
     {"maxmemtot",   "mmt",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmt, PV_NONE,
+			    (char_u *)&p_mmt, PV_NONE, NULL,
 			    {(char_u *)DFLT_MAXMEMTOT, (char_u *)0L}
 			    SCTX_INIT},
     {"menuitems",   "mis",  P_NUM|P_VI_DEF,
 #ifdef FEAT_MENU
-			    (char_u *)&p_mis, PV_NONE,
+			    (char_u *)&p_mis, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)25L, (char_u *)0L} SCTX_INIT},
     {"mesg",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"mkspellmem",  "msm",  P_STRING|P_VI_DEF|P_EXPAND|P_SECURE,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_msm, PV_NONE,
+			    (char_u *)&p_msm, PV_NONE, did_set_mkspellmem,
 			    {(char_u *)"460000,2000,500", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"modeline",    "ml",   P_BOOL|P_VIM,
-			    (char_u *)&p_ml, PV_ML,
+			    (char_u *)&p_ml, PV_ML, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"modelineexpr", "mle",  P_BOOL|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_mle, PV_NONE,
+			    (char_u *)&p_mle, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"modelines",   "mls",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mls, PV_NONE,
+			    (char_u *)&p_mls, PV_NONE, NULL,
 			    {(char_u *)5L, (char_u *)0L} SCTX_INIT},
     {"modifiable",  "ma",   P_BOOL|P_VI_DEF|P_NOGLOB,
-			    (char_u *)&p_ma, PV_MA,
+			    (char_u *)&p_ma, PV_MA, did_set_modifiable,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"modified",    "mod",  P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_mod, PV_MOD,
+			    (char_u *)&p_mod, PV_MOD, did_set_modified,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"more",	    NULL,   P_BOOL|P_VIM,
-			    (char_u *)&p_more, PV_NONE,
+			    (char_u *)&p_more, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"mouse",	    NULL,   P_STRING|P_VI_DEF|P_FLAGLIST,
-			    (char_u *)&p_mouse, PV_NONE,
+			    (char_u *)&p_mouse, PV_NONE, NULL,
 			    {
 #if defined(MSWIN)
 				(char_u *)"a",
@@ -1667,20 +1698,20 @@
 				(char_u *)0L} SCTX_INIT},
     {"mousefocus",   "mousef", P_BOOL|P_VI_DEF,
 #ifdef FEAT_GUI
-			    (char_u *)&p_mousef, PV_NONE,
+			    (char_u *)&p_mousef, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"mousehide",   "mh",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_GUI
-			    (char_u *)&p_mh, PV_NONE,
+			    (char_u *)&p_mh, PV_NONE, did_set_mousehide,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"mousemodel",  "mousem", P_STRING|P_VI_DEF,
-			    (char_u *)&p_mousem, PV_NONE,
+			    (char_u *)&p_mousem, PV_NONE, did_set_mousemodel,
 			    {
 #if defined(MSWIN)
 				(char_u *)"popup",
@@ -1694,123 +1725,127 @@
 				(char_u *)0L} SCTX_INIT},
     {"mousemoveevent",   "mousemev",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_GUI
-			    (char_u *)&p_mousemev, PV_NONE,
+			    (char_u *)&p_mousemev, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"mouseshape",  "mouses",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_MOUSESHAPE
 			    (char_u *)&p_mouseshape, PV_NONE,
+			    did_set_mouseshape,
 			    {(char_u *)"i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"mousetime",   "mouset",	P_NUM|P_VI_DEF,
-			    (char_u *)&p_mouset, PV_NONE,
+			    (char_u *)&p_mouset, PV_NONE, NULL,
 			    {(char_u *)500L, (char_u *)0L} SCTX_INIT},
     {"mzschemedll", NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_MZSCHEME)
-			    (char_u *)&p_mzschemedll, PV_NONE,
+			    (char_u *)&p_mzschemedll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_MZSCH_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"mzschemegcdll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_MZSCHEME)
-			    (char_u *)&p_mzschemegcdll, PV_NONE,
+			    (char_u *)&p_mzschemegcdll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_MZGC_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"mzquantum",  "mzq",   P_NUM,
 #ifdef FEAT_MZSCHEME
-			    (char_u *)&p_mzq, PV_NONE,
+			    (char_u *)&p_mzq, PV_NONE, did_set_mzquantum,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)100L, (char_u *)100L} SCTX_INIT},
     {"novice",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"nrformats",   "nf",   P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_nf, PV_NF,
+			    (char_u *)&p_nf, PV_NF, NULL,
 			    {(char_u *)"bin,octal,hex", (char_u *)0L}
 			    SCTX_INIT},
     {"number",	    "nu",   P_BOOL|P_VI_DEF|P_RWIN,
 			    (char_u *)VAR_WIN, PV_NU,
+			    did_set_number_relativenumber,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"numberwidth", "nuw",  P_NUM|P_RWIN|P_VIM,
 #ifdef FEAT_LINEBREAK
-			    (char_u *)VAR_WIN, PV_NUW,
+			    (char_u *)VAR_WIN, PV_NUW, did_set_numberwidth,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)8L, (char_u *)4L} SCTX_INIT},
     {"omnifunc",    "ofu",  P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE|P_FUNC,
 #ifdef FEAT_COMPL_FUNC
-			    (char_u *)&p_ofu, PV_OFU,
+			    (char_u *)&p_ofu, PV_OFU, did_set_omnifunc,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"open",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"opendevice",  "odev", P_BOOL|P_VI_DEF,
 #if defined(MSWIN)
-			    (char_u *)&p_odev, PV_NONE,
+			    (char_u *)&p_odev, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)FALSE}
 			    SCTX_INIT},
     {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE|P_FUNC,
 			    (char_u *)&p_opfunc, PV_NONE,
+			    did_set_operatorfunc,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"optimize",    "opt",  P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"osfiletype",  "oft",  P_STRING|P_ALLOCED|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"packpath",    "pp",   P_STRING|P_VI_DEF|P_EXPAND|P_ONECOMMA|P_NODUP
 								    |P_SECURE,
-			    (char_u *)&p_pp, PV_NONE,
+			    (char_u *)&p_pp, PV_NONE, NULL,
 			    {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L}
 			    SCTX_INIT},
     {"paragraphs",  "para", P_STRING|P_VI_DEF,
-			    (char_u *)&p_para, PV_NONE,
+			    (char_u *)&p_para, PV_NONE, NULL,
 			    {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
 				(char_u *)0L} SCTX_INIT},
     {"paste",	    NULL,   P_BOOL|P_VI_DEF|P_PRI_MKRC,
-			    (char_u *)&p_paste, PV_NONE,
+			    (char_u *)&p_paste, PV_NONE, did_set_paste,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"pastetoggle", "pt",   P_STRING|P_VI_DEF,
-			    (char_u *)&p_pt, PV_NONE,
+			    (char_u *)&p_pt, PV_NONE, did_set_pastetoggle,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"patchexpr",   "pex",  P_STRING|P_VI_DEF|P_SECURE,
 #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
-			    (char_u *)&p_pex, PV_NONE,
+			    (char_u *)&p_pex, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"patchmode",   "pm",   P_STRING|P_VI_DEF|P_NFNAME,
 			    (char_u *)&p_pm, PV_NONE,
+			    did_set_backupext_or_patchmode,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"path",	    "pa",   P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_path, PV_PATH,
+			    (char_u *)&p_path, PV_PATH, NULL,
 			    {
 #if defined(AMIGA) || defined(MSWIN)
 			    (char_u *)".,,",
@@ -1820,69 +1855,70 @@
 				(char_u *)0L} SCTX_INIT},
     {"perldll",     NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_PERL)
-			    (char_u *)&p_perldll, PV_NONE,
+			    (char_u *)&p_perldll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_PERL_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_pi, PV_PI,
+			    (char_u *)&p_pi, PV_PI, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"previewheight", "pvh", P_NUM|P_VI_DEF,
 #if defined(FEAT_QUICKFIX)
-			    (char_u *)&p_pvh, PV_NONE,
+			    (char_u *)&p_pvh, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)12L, (char_u *)0L} SCTX_INIT},
     {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
 #ifdef FEAT_PROP_POPUP
-			    (char_u *)&p_pvp, PV_NONE,
+			    (char_u *)&p_pvp, PV_NONE, did_set_previewpopup,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
 #if defined(FEAT_QUICKFIX)
-			    (char_u *)VAR_WIN, PV_PVW,
+			    (char_u *)VAR_WIN, PV_PVW, did_set_previewwindow,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"printdevice", "pdev", P_STRING|P_VI_DEF|P_SECURE,
 #ifdef FEAT_PRINTER
-			    (char_u *)&p_pdev, PV_NONE,
+			    (char_u *)&p_pdev, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printencoding", "penc", P_STRING|P_VI_DEF,
 #ifdef FEAT_POSTSCRIPT
 			    (char_u *)&p_penc, PV_NONE,
+			    did_set_printencoding,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printexpr", "pexpr",  P_STRING|P_VI_DEF|P_SECURE,
 #ifdef FEAT_POSTSCRIPT
-			    (char_u *)&p_pexpr, PV_NONE,
+			    (char_u *)&p_pexpr, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printfont", "pfn",    P_STRING|P_VI_DEF,
 #ifdef FEAT_PRINTER
-			    (char_u *)&p_pfn, PV_NONE,
+			    (char_u *)&p_pfn, PV_NONE, NULL,
 			    {
 # ifdef MSWIN
 				(char_u *)"Courier_New:h10",
@@ -1891,250 +1927,253 @@
 # endif
 				(char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printheader", "pheader",  P_STRING|P_VI_DEF|P_GETTEXT,
 #ifdef FEAT_PRINTER
-			    (char_u *)&p_header, PV_NONE,
+			    (char_u *)&p_header, PV_NONE, NULL,
 			    // untranslated to avoid problems when 'encoding'
 			    // is changed
 			    {(char_u *)"%<%f%h%m%=Page %N", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
    {"printmbcharset", "pmbcs",  P_STRING|P_VI_DEF,
 #if defined(FEAT_POSTSCRIPT)
-			    (char_u *)&p_pmcs, PV_NONE,
+			    (char_u *)&p_pmcs, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printmbfont", "pmbfn",  P_STRING|P_VI_DEF,
 #if defined(FEAT_POSTSCRIPT)
-			    (char_u *)&p_pmfn, PV_NONE,
+			    (char_u *)&p_pmfn, PV_NONE, parse_printmbfont,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"printoptions", "popt", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_PRINTER
-			    (char_u *)&p_popt, PV_NONE,
+			    (char_u *)&p_popt, PV_NONE, parse_printoptions,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"prompt",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_prompt, PV_NONE,
+			    (char_u *)&p_prompt, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"pumheight",   "ph",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ph, PV_NONE,
+			    (char_u *)&p_ph, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"pumwidth",    "pw",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_pw, PV_NONE,
+			    (char_u *)&p_pw, PV_NONE, NULL,
 			    {(char_u *)15L, (char_u *)15L} SCTX_INIT},
     {"pythonthreedll",  NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_PYTHON3)
-			    (char_u *)&p_py3dll, PV_NONE,
+			    (char_u *)&p_py3dll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"pythonthreehome", NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(FEAT_PYTHON3)
-			    (char_u *)&p_py3home, PV_NONE,
+			    (char_u *)&p_py3home, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"pythondll",   NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_PYTHON)
-			    (char_u *)&p_pydll, PV_NONE,
+			    (char_u *)&p_pydll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"pythonhome",  NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(FEAT_PYTHON)
-			    (char_u *)&p_pyhome, PV_NONE,
+			    (char_u *)&p_pyhome, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"pyxversion", "pyx",   P_NUM|P_VI_DEF|P_SECURE,
 #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3)
-			    (char_u *)&p_pyx, PV_NONE,
+			    (char_u *)&p_pyx, PV_NONE, did_set_pyxversion,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)DEFAULT_PYTHON_VER, (char_u *)0L}
 			    SCTX_INIT},
     {"quickfixtextfunc", "qftf", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_SECURE|P_FUNC,
 #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL)
 			    (char_u *)&p_qftf, PV_NONE,
+			    did_set_quickfixtextfunc,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)NULL}
 #endif
 			    SCTX_INIT},
     {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
-			    (char_u *)&p_qe, PV_QE,
+			    (char_u *)&p_qe, PV_QE, NULL,
 			    {(char_u *)"\\", (char_u *)0L} SCTX_INIT},
     {"readonly",    "ro",   P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
-			    (char_u *)&p_ro, PV_RO,
+			    (char_u *)&p_ro, PV_RO, did_set_readonly,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"redraw",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"redrawtime",  "rdt",  P_NUM|P_VI_DEF,
 #ifdef FEAT_RELTIME
-			    (char_u *)&p_rdt, PV_NONE,
+			    (char_u *)&p_rdt, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)2000L, (char_u *)0L} SCTX_INIT},
     {"regexpengine", "re",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_re, PV_NONE,
+			    (char_u *)&p_re, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
 			    (char_u *)VAR_WIN, PV_RNU,
+			    did_set_number_relativenumber,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"remap",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_remap, PV_NONE,
+			    (char_u *)&p_remap, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"renderoptions", "rop", P_STRING|P_ONECOMMA|P_RCLR|P_VI_DEF,
 #ifdef FEAT_RENDER_OPTIONS
-			    (char_u *)&p_rop, PV_NONE,
+			    (char_u *)&p_rop, PV_NONE, did_set_renderoptions,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"report",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)&p_report, PV_NONE,
+			    (char_u *)&p_report, PV_NONE, NULL,
 			    {(char_u *)2L, (char_u *)0L} SCTX_INIT},
     {"restorescreen", "rs", P_BOOL|P_VI_DEF,
 #ifdef MSWIN
-			    (char_u *)&p_rs, PV_NONE,
+			    (char_u *)&p_rs, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"revins",	    "ri",   P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)&p_ri, PV_NONE,
+			    (char_u *)&p_ri, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"rightleft",   "rl",   P_BOOL|P_VI_DEF|P_RWIN,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)VAR_WIN, PV_RL,
+			    (char_u *)VAR_WIN, PV_RL, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"rightleftcmd", "rlc", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN,
 #ifdef FEAT_RIGHTLEFT
-			    (char_u *)VAR_WIN, PV_RLC,
+			    (char_u *)VAR_WIN, PV_RLC, NULL,
 			    {(char_u *)"search", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"rubydll",     NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_RUBY)
-			    (char_u *)&p_rubydll, PV_NONE,
+			    (char_u *)&p_rubydll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_RUBY_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"ruler",	    "ru",   P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
-			    (char_u *)&p_ru, PV_NONE,
+			    (char_u *)&p_ru, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"rulerformat", "ruf",  P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT|P_MLE,
 #ifdef FEAT_STL_OPT
-			    (char_u *)&p_ruf, PV_NONE,
+			    (char_u *)&p_ruf, PV_NONE, did_set_rulerformat,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"runtimepath", "rtp",  P_STRING|P_VI_DEF|P_EXPAND|P_ONECOMMA|P_NODUP
 								    |P_SECURE,
-			    (char_u *)&p_rtp, PV_NONE,
+			    (char_u *)&p_rtp, PV_NONE, NULL,
 			    {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L}
 			    SCTX_INIT},
     {"scroll",	    "scr",  P_NUM|P_NO_MKRC|P_VI_DEF,
-			    (char_u *)VAR_WIN, PV_SCROLL,
+			    (char_u *)VAR_WIN, PV_SCROLL, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"scrollbind",  "scb",  P_BOOL|P_VI_DEF,
-			    (char_u *)VAR_WIN, PV_SCBIND,
+			    (char_u *)VAR_WIN, PV_SCBIND, did_set_scrollbind,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"scrollfocus", "scf",  P_BOOL|P_VI_DEF,
 #if defined(MSWIN) && defined(FEAT_GUI)
-			    (char_u *)&p_scf, PV_NONE,
+			    (char_u *)&p_scf, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"scrolljump",  "sj",   P_NUM|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sj, PV_NONE,
+			    (char_u *)&p_sj, PV_NONE, NULL,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"scrolloff",   "so",   P_NUM|P_VI_DEF|P_VIM|P_RALL,
-			    (char_u *)&p_so, PV_SO,
+			    (char_u *)&p_so, PV_SO, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"scrollopt",   "sbo",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_sbo, PV_NONE,
+			    (char_u *)&p_sbo, PV_NONE, NULL,
 			    {(char_u *)"ver,jump", (char_u *)0L}
 			    SCTX_INIT},
     {"sections",    "sect", P_STRING|P_VI_DEF,
-			    (char_u *)&p_sections, PV_NONE,
+			    (char_u *)&p_sections, PV_NONE, NULL,
 			    {(char_u *)"SHNHH HUnhsh", (char_u *)0L}
 			    SCTX_INIT},
     {"secure",	    NULL,   P_BOOL|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_secure, PV_NONE,
+			    (char_u *)&p_secure, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"selection",   "sel",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_sel, PV_NONE,
+			    (char_u *)&p_sel, PV_NONE, did_set_selection,
 			    {(char_u *)"inclusive", (char_u *)0L}
 			    SCTX_INIT},
     {"selectmode",  "slm",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_slm, PV_NONE,
+			    (char_u *)&p_slm, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_SESSION
 			    (char_u *)&p_ssop, PV_NONE,
+			    did_set_sessionoptions,
 	 {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal",
 							       (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"shell",	    "sh",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_sh, PV_NONE,
+			    (char_u *)&p_sh, PV_NONE, NULL,
 			    {
 #ifdef VMS
 			    (char_u *)"-",
@@ -2147,7 +2186,7 @@
 #endif // VMS
 				(char_u *)0L} SCTX_INIT},
     {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_shcf, PV_NONE,
+			    (char_u *)&p_shcf, PV_NONE, NULL,
 			    {
 #if defined(MSWIN)
 			    (char_u *)"/c",
@@ -2157,7 +2196,7 @@
 				(char_u *)0L} SCTX_INIT},
     {"shellpipe",   "sp",   P_STRING|P_VI_DEF|P_SECURE,
 #ifdef FEAT_QUICKFIX
-			    (char_u *)&p_sp, PV_NONE,
+			    (char_u *)&p_sp, PV_NONE, NULL,
 			    {
 #if defined(UNIX)
 			    (char_u *)"| tee",
@@ -2166,35 +2205,35 @@
 #endif
 				(char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"shellquote",  "shq",  P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_shq, PV_NONE,
+			    (char_u *)&p_shq, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"shellredir",  "srr",  P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_srr, PV_NONE,
+			    (char_u *)&p_srr, PV_NONE, NULL,
 			    {(char_u *)">", (char_u *)0L} SCTX_INIT},
     {"shellslash",  "ssl",   P_BOOL|P_VI_DEF,
 #ifdef BACKSLASH_IN_FILENAME
-			    (char_u *)&p_ssl, PV_NONE,
+			    (char_u *)&p_ssl, PV_NONE, did_set_shellslash,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"shelltemp",   "stmp", P_BOOL,
-			    (char_u *)&p_stmp, PV_NONE,
+			    (char_u *)&p_stmp, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"shelltype",   "st",   P_NUM|P_VI_DEF,
 #ifdef AMIGA
-			    (char_u *)&p_st, PV_NONE,
+			    (char_u *)&p_st, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"shellxquote", "sxq",  P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_sxq, PV_NONE,
+			    (char_u *)&p_sxq, PV_NONE, NULL,
 			    {
 #if defined(UNIX) && defined(USE_SYSTEM)
 			    (char_u *)"\"",
@@ -2203,7 +2242,7 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_sxe, PV_NONE,
+			    (char_u *)&p_sxe, PV_NONE, NULL,
 			    {
 #if defined(MSWIN)
 			    (char_u *)"\"&|<>()@^",
@@ -2212,27 +2251,28 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"shiftround",  "sr",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sr, PV_NONE,
+			    (char_u *)&p_sr, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"shiftwidth",  "sw",   P_NUM|P_VI_DEF,
 			    (char_u *)&p_sw, PV_SW,
+			    did_set_shiftwidth_tabstop,
 			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
     {"shortmess",   "shm",  P_STRING|P_VIM|P_FLAGLIST,
-			    (char_u *)&p_shm, PV_NONE,
+			    (char_u *)&p_shm, PV_NONE, NULL,
 			    {(char_u *)"S", (char_u *)"filnxtToOS"}
 			    SCTX_INIT},
     {"shortname",   "sn",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sn, PV_SN,
+			    (char_u *)&p_sn, PV_SN, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"showbreak",   "sbr",  P_STRING|P_VI_DEF|P_RALL,
 #ifdef FEAT_LINEBREAK
-			    (char_u *)&p_sbr, PV_SBR,
+			    (char_u *)&p_sbr, PV_SBR, did_set_showbreak,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"showcmd",	    "sc",   P_BOOL|P_VIM,
-			    (char_u *)&p_sc, PV_NONE,
+			    (char_u *)&p_sc, PV_NONE, NULL,
 			    {(char_u *)FALSE,
 #ifdef UNIX
 				(char_u *)FALSE
@@ -2241,180 +2281,181 @@
 #endif
 				} SCTX_INIT},
     {"showcmdloc",  "sloc", P_STRING|P_RSTAT,
-			    (char_u *)&p_sloc, PV_NONE,
+			    (char_u *)&p_sloc, PV_NONE, NULL,
 			    {(char_u *)"last", (char_u *)"last"} SCTX_INIT},
     {"showfulltag", "sft",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sft, PV_NONE,
+			    (char_u *)&p_sft, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"showmatch",   "sm",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sm, PV_NONE,
+			    (char_u *)&p_sm, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"showmode",    "smd",  P_BOOL|P_VIM,
-			    (char_u *)&p_smd, PV_NONE,
+			    (char_u *)&p_smd, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"showtabline", "stal", P_NUM|P_VI_DEF|P_RALL,
-			    (char_u *)&p_stal, PV_NONE,
+			    (char_u *)&p_stal, PV_NONE, did_set_showtabline,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"sidescroll",  "ss",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ss, PV_NONE,
+			    (char_u *)&p_ss, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"sidescrolloff", "siso", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
-			    (char_u *)&p_siso, PV_SISO,
+			    (char_u *)&p_siso, PV_SISO, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"signcolumn",   "scl",  P_STRING|P_ALLOCED|P_VI_DEF|P_RCLR,
 #ifdef FEAT_SIGNS
-			    (char_u *)VAR_WIN, PV_SCL,
+			    (char_u *)VAR_WIN, PV_SCL, did_set_signcolumn,
 			    {(char_u *)"auto", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"slowopen",    "slow", P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"smartcase",   "scs",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_scs, PV_NONE,
+			    (char_u *)&p_scs, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"smartindent", "si",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_si, PV_SI,
+			    (char_u *)&p_si, PV_SI, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"smarttab",    "sta",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sta, PV_NONE,
+			    (char_u *)&p_sta, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"smoothscroll", "sms", P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_SMS,
+			    (char_u *)VAR_WIN, PV_SMS, did_set_smoothscroll,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"softtabstop", "sts",  P_NUM|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sts, PV_STS,
+			    (char_u *)&p_sts, PV_STS, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"sourceany",   NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"spell",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN,
 #ifdef FEAT_SPELL
-			    (char_u *)VAR_WIN, PV_SPELL,
+			    (char_u *)VAR_WIN, PV_SPELL, did_set_spell,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"spellcapcheck", "spc", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_spc, PV_SPC,
+			    (char_u *)&p_spc, PV_SPC, did_set_spellcapcheck,
 			    {(char_u *)"[.?!]\\_[\\])'\"	 ]\\+", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"spellfile",   "spf",  P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE
 								  |P_ONECOMMA,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_spf, PV_SPF,
+			    (char_u *)&p_spf, PV_SPF, did_set_spellfile,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"spelllang",   "spl",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
 							     |P_RBUF|P_EXPAND,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_spl, PV_SPL,
+			    (char_u *)&p_spl, PV_SPL, did_set_spelllang,
 			    {(char_u *)"en", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"spelloptions", "spo",  P_STRING|P_ALLOCED|P_VI_DEF
 						    |P_ONECOMMA|P_NODUP|P_RBUF,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_spo, PV_SPO,
+			    (char_u *)&p_spo, PV_SPO, did_set_spelloptions,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_ONECOMMA,
 #ifdef FEAT_SPELL
-			    (char_u *)&p_sps, PV_NONE,
+			    (char_u *)&p_sps, PV_NONE, did_set_spellsuggest,
 			    {(char_u *)"best", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"splitbelow",  "sb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sb, PV_NONE,
+			    (char_u *)&p_sb, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"splitkeep",   "spk",  P_STRING,
-			    (char_u *)&p_spk, PV_NONE,
+			    (char_u *)&p_spk, PV_NONE, NULL,
 			    {(char_u *)"cursor", (char_u *)"cursor"} SCTX_INIT},
     {"splitright",  "spr",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_spr, PV_NONE,
+			    (char_u *)&p_spr, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"startofline", "sol",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sol, PV_NONE,
+			    (char_u *)&p_sol, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"statusline"  ,"stl",  P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT|P_MLE,
 #ifdef FEAT_STL_OPT
-			    (char_u *)&p_stl, PV_STL,
+			    (char_u *)&p_stl, PV_STL, did_set_statusline,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"suffixes",    "su",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_su, PV_NONE,
+			    (char_u *)&p_su, PV_NONE, NULL,
 			    {(char_u *)".bak,~,.o,.h,.info,.swp,.obj",
 				(char_u *)0L} SCTX_INIT},
     {"suffixesadd", "sua",  P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_sua, PV_SUA,
+			    (char_u *)&p_sua, PV_SUA, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"swapfile",    "swf",  P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_swf, PV_SWF,
+			    (char_u *)&p_swf, PV_SWF, did_set_swapfile,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"swapsync",    "sws",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_sws, PV_NONE,
+			    (char_u *)&p_sws, PV_NONE, NULL,
 			    {(char_u *)"fsync", (char_u *)0L} SCTX_INIT},
     {"switchbuf",   "swb",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_swb, PV_NONE,
+			    (char_u *)&p_swb, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"synmaxcol",   "smc",  P_NUM|P_VI_DEF|P_RBUF,
 #ifdef FEAT_SYN_HL
-			    (char_u *)&p_smc, PV_SMC,
+			    (char_u *)&p_smc, PV_SMC, NULL,
 			    {(char_u *)3000L, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"syntax",	    "syn",  P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
 #ifdef FEAT_SYN_HL
-			    (char_u *)&p_syn, PV_SYN,
+			    (char_u *)&p_syn, PV_SYN, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"tabline",	    "tal",  P_STRING|P_VI_DEF|P_RALL|P_MLE,
 #ifdef FEAT_STL_OPT
-			    (char_u *)&p_tal, PV_NONE,
+			    (char_u *)&p_tal, PV_NONE, did_set_tabline,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"tabpagemax",  "tpm",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_tpm, PV_NONE,
+			    (char_u *)&p_tpm, PV_NONE, NULL,
 			    {(char_u *)10L, (char_u *)0L} SCTX_INIT},
     {"tabstop",	    "ts",   P_NUM|P_VI_DEF|P_RBUF,
 			    (char_u *)&p_ts, PV_TS,
+			    did_set_shiftwidth_tabstop,
 			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
     {"tagbsearch",  "tbs",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tbs, PV_NONE,
+			    (char_u *)&p_tbs, PV_NONE, NULL,
 #ifdef VMS	// binary searching doesn't appear to work on VMS
 			    {(char_u *)0L, (char_u *)0L}
 #else
@@ -2422,25 +2463,25 @@
 #endif
 			    SCTX_INIT},
     {"tagcase",	    "tc",   P_STRING|P_VIM,
-			    (char_u *)&p_tc, PV_TC,
+			    (char_u *)&p_tc, PV_TC, did_set_tagcase,
 			    {(char_u *)"followic", (char_u *)"followic"} SCTX_INIT},
     {"tagfunc",    "tfu",   P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE|P_FUNC,
 #ifdef FEAT_EVAL
-			    (char_u *)&p_tfu, PV_TFU,
+			    (char_u *)&p_tfu, PV_TFU, did_set_tagfunc,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"taglength",   "tl",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_tl, PV_NONE,
+			    (char_u *)&p_tl, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"tagrelative", "tr",   P_BOOL|P_VIM,
-			    (char_u *)&p_tr, PV_NONE,
+			    (char_u *)&p_tr, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
     {"tags",	    "tag",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_tags, PV_TAGS,
+			    (char_u *)&p_tags, PV_TAGS, NULL,
 			    {
 #if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME)
 			    (char_u *)"./tags,./TAGS,tags,TAGS",
@@ -2449,85 +2490,85 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"tagstack",    "tgst", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tgst, PV_NONE,
+			    (char_u *)&p_tgst, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"tcldll",      NULL,   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(DYNAMIC_TCL)
-			    (char_u *)&p_tcldll, PV_NONE,
+			    (char_u *)&p_tcldll, PV_NONE, NULL,
 			    {(char_u *)DYNAMIC_TCL_DLL, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"term",	    NULL,   P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL,
-			    (char_u *)&T_NAME, PV_NONE,
+			    (char_u *)&T_NAME, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"termbidi", "tbidi",   P_BOOL|P_VI_DEF,
 #ifdef FEAT_ARABIC
-			    (char_u *)&p_tbidi, PV_NONE,
+			    (char_u *)&p_tbidi, PV_NONE, NULL,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"termencoding", "tenc", P_STRING|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_tenc, PV_NONE,
+			    (char_u *)&p_tenc, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"termguicolors", "tgc", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
 #ifdef FEAT_TERMGUICOLORS
-			    (char_u *)&p_tgc, PV_NONE,
+			    (char_u *)&p_tgc, PV_NONE, did_set_termguicolors,
 			    {(char_u *)FALSE, (char_u *)FALSE}
 #else
-			    (char_u*)NULL, PV_NONE,
+			    (char_u*)NULL, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)FALSE}
 #endif
 			    SCTX_INIT},
     {"termwinkey", "twk",   P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
 #ifdef FEAT_TERMINAL
-			    (char_u *)VAR_WIN, PV_TWK,
+			    (char_u *)VAR_WIN, PV_TWK, did_set_termwinkey,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"termwinscroll", "twsl", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
 #ifdef FEAT_TERMINAL
-			    (char_u *)&p_twsl, PV_TWSL,
+			    (char_u *)&p_twsl, PV_TWSL, NULL,
 			    {(char_u *)10000L, (char_u *)10000L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"termwinsize", "tws",  P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
 #ifdef FEAT_TERMINAL
-			    (char_u *)VAR_WIN, PV_TWS,
+			    (char_u *)VAR_WIN, PV_TWS, did_set_termwinsize,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"termwintype", "twt",  P_STRING|P_ALLOCED|P_VI_DEF,
 #if defined(MSWIN) && defined(FEAT_TERMINAL)
-			    (char_u *)&p_twt, PV_NONE,
+			    (char_u *)&p_twt, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"terse",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_terse, PV_NONE,
+			    (char_u *)&p_terse, PV_NONE, did_set_terse,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"textauto",    "ta",   P_BOOL|P_VIM,
-			    (char_u *)&p_ta, PV_NONE,
+			    (char_u *)&p_ta, PV_NONE, did_set_textauto,
 			    {(char_u *)DFLT_TEXTAUTO, (char_u *)TRUE}
 			    SCTX_INIT},
     {"textmode",    "tx",   P_BOOL|P_VI_DEF|P_NO_MKRC,
-			    (char_u *)&p_tx, PV_TX,
+			    (char_u *)&p_tx, PV_TX, did_set_textmode,
 			    {
 #ifdef USE_CRNL
 			    (char_u *)TRUE,
@@ -2536,105 +2577,108 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"textwidth",   "tw",   P_NUM|P_VI_DEF|P_VIM|P_RBUF,
-			    (char_u *)&p_tw, PV_TW,
+			    (char_u *)&p_tw, PV_TW, did_set_textwidth,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"thesaurus",   "tsr",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP|P_NDNAME,
-			    (char_u *)&p_tsr, PV_TSR,
+			    (char_u *)&p_tsr, PV_TSR, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"thesaurusfunc", "tsrfu",  P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE|P_FUNC,
 #ifdef FEAT_COMPL_FUNC
 			    (char_u *)&p_tsrfu, PV_TSRFU,
+			    did_set_thesaurusfunc,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"tildeop",	    "top",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_to, PV_NONE,
+			    (char_u *)&p_to, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"timeout",	    "to",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_timeout, PV_NONE,
+			    (char_u *)&p_timeout, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"timeoutlen",  "tm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_tm, PV_NONE,
+			    (char_u *)&p_tm, PV_NONE, NULL,
 			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
     {"title",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_title, PV_NONE,
+			    (char_u *)&p_title, PV_NONE, did_set_title_icon,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"titlelen",    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)&p_titlelen, PV_NONE,
+			    (char_u *)&p_titlelen, PV_NONE, did_set_titlelen,
 			    {(char_u *)85L, (char_u *)0L} SCTX_INIT},
     {"titleold",    NULL,   P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC,
-			    (char_u *)&p_titleold, PV_NONE,
+			    (char_u *)&p_titleold, PV_NONE, NULL,
 			    {(char_u *)N_("Thanks for flying Vim"),
 							       (char_u *)0L}
 			    SCTX_INIT},
     {"titlestring", NULL,   P_STRING|P_VI_DEF|P_MLE,
 			    (char_u *)&p_titlestring, PV_NONE,
+			    did_set_titlestring,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"toolbar",     "tb",   P_STRING|P_ONECOMMA|P_VI_DEF|P_NODUP,
 #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_MSWIN)
-			    (char_u *)&p_toolbar, PV_NONE,
+			    (char_u *)&p_toolbar, PV_NONE, did_set_toolbar,
 			    {(char_u *)"icons,tooltips", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"toolbariconsize",	"tbis", P_STRING|P_VI_DEF,
 #if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK)
 			    (char_u *)&p_tbis, PV_NONE,
+			    did_set_toolbariconsize,
 			    {(char_u *)"small", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"ttimeout",    NULL,   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_ttimeout, PV_NONE,
+			    (char_u *)&p_ttimeout, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"ttimeoutlen", "ttm",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_ttm, PV_NONE,
+			    (char_u *)&p_ttm, PV_NONE, NULL,
 			    {(char_u *)-1L, (char_u *)0L} SCTX_INIT},
     {"ttybuiltin",  "tbi",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tbi, PV_NONE,
+			    (char_u *)&p_tbi, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"ttyfast",	    "tf",   P_BOOL|P_NO_MKRC|P_VI_DEF,
-			    (char_u *)&p_tf, PV_NONE,
+			    (char_u *)&p_tf, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"ttymouse",    "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF,
 #if defined(UNIX) || defined(VMS)
-			    (char_u *)&p_ttym, PV_NONE,
+			    (char_u *)&p_ttym, PV_NONE, did_set_ttymouse,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"ttyscroll",   "tsl",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_ttyscroll, PV_NONE,
+			    (char_u *)&p_ttyscroll, PV_NONE, NULL,
 			    {(char_u *)999L, (char_u *)0L} SCTX_INIT},
     {"ttytype",	    "tty",  P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL,
-			    (char_u *)&T_NAME, PV_NONE,
+			    (char_u *)&T_NAME, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"undodir",     "udir", P_STRING|P_EXPAND|P_ONECOMMA|P_NODUP|P_SECURE
 								    |P_VI_DEF,
 #ifdef FEAT_PERSISTENT_UNDO
-			    (char_u *)&p_udir, PV_NONE,
+			    (char_u *)&p_udir, PV_NONE, NULL,
 			    {(char_u *)".", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"undofile",    "udf",  P_BOOL|P_VI_DEF|P_VIM,
 #ifdef FEAT_PERSISTENT_UNDO
-			    (char_u *)&p_udf, PV_UDF,
+			    (char_u *)&p_udf, PV_UDF, did_set_undofile,
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"undolevels",  "ul",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ul, PV_UL,
+			    (char_u *)&p_ul, PV_UL, did_set_undolevels,
 			    {
 #if defined(UNIX) || defined(MSWIN) || defined(VMS)
 			    (char_u *)1000L,
@@ -2643,60 +2687,61 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"undoreload",  "ur",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ur, PV_NONE,
+			    (char_u *)&p_ur, PV_NONE, NULL,
 			    { (char_u *)10000L, (char_u *)0L} SCTX_INIT},
     {"updatecount", "uc",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_uc, PV_NONE,
+			    (char_u *)&p_uc, PV_NONE, did_set_updatecount,
 			    {(char_u *)200L, (char_u *)0L} SCTX_INIT},
     {"updatetime",  "ut",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ut, PV_NONE,
+			    (char_u *)&p_ut, PV_NONE, NULL,
 			    {(char_u *)4000L, (char_u *)0L} SCTX_INIT},
     {"varsofttabstop", "vsts",  P_STRING|P_VI_DEF|P_VIM|P_COMMA,
 #ifdef FEAT_VARTABS
 			    (char_u *)&p_vsts, PV_VSTS,
+			    did_set_varsofttabstop,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #endif
 			    SCTX_INIT},
     {"vartabstop",  "vts",  P_STRING|P_VI_DEF|P_VIM|P_RBUF|P_COMMA,
 #ifdef FEAT_VARTABS
-			    (char_u *)&p_vts, PV_VTS,
+			    (char_u *)&p_vts, PV_VTS, did_set_vartabstop,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 #endif
 			    SCTX_INIT},
     {"verbose",	    "vbs",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_verbose, PV_NONE,
+			    (char_u *)&p_verbose, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"verbosefile", "vfile", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_vfile, PV_NONE,
+			    (char_u *)&p_vfile, PV_NONE, did_set_verbosefile,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"viewdir",     "vdir", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #ifdef FEAT_SESSION
-			    (char_u *)&p_vdir, PV_NONE,
+			    (char_u *)&p_vdir, PV_NONE, NULL,
 			    {(char_u *)DFLT_VDIR, (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"viewoptions", "vop",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_SESSION
-			    (char_u *)&p_vop, PV_NONE,
+			    (char_u *)&p_vop, PV_NONE, NULL,
 			    {(char_u *)"folds,options,cursor,curdir",
 								  (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"viminfo",	    "vi",   P_STRING|P_ONECOMMA|P_NODUP|P_SECURE,
 #ifdef FEAT_VIMINFO
-			    (char_u *)&p_viminfo, PV_NONE,
+			    (char_u *)&p_viminfo, PV_NONE, NULL,
 #if defined(MSWIN)
 			    {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
 #elif defined(AMIGA)
@@ -2706,103 +2751,104 @@
 			    {(char_u *)"", (char_u *)"'100,<50,s10,h"}
 #endif
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"viminfofile", "vif",  P_STRING|P_EXPAND|P_ONECOMMA|P_NODUP
 							    |P_SECURE|P_VI_DEF,
 #ifdef FEAT_VIMINFO
-			    (char_u *)&p_viminfofile, PV_NONE,
+			    (char_u *)&p_viminfofile, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"virtualedit", "ve",   P_STRING|P_ONECOMMA|P_NODUP|P_VI_DEF
 							    |P_VIM|P_CURSWANT,
-			    (char_u *)&p_ve, PV_VE,
+			    (char_u *)&p_ve, PV_VE, did_set_virtualedit,
 			    {(char_u *)"", (char_u *)""}
 			    SCTX_INIT},
     {"visualbell",  "vb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_vb, PV_NONE,
+			    (char_u *)&p_vb, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"w300",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"w1200",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"w9600",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"warn",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_warn, PV_NONE,
+			    (char_u *)&p_warn, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"weirdinvert", "wiv",  P_BOOL|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_wiv, PV_NONE,
+			    (char_u *)&p_wiv, PV_NONE, did_set_weirdinvert,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"whichwrap",   "ww",   P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST,
-			    (char_u *)&p_ww, PV_NONE,
+			    (char_u *)&p_ww, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)"b,s"} SCTX_INIT},
     {"wildchar",    "wc",   P_NUM|P_VIM,
-			    (char_u *)&p_wc, PV_NONE,
+			    (char_u *)&p_wc, PV_NONE, NULL,
 			    {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
 			    SCTX_INIT},
     {"wildcharm",   "wcm",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_wcm, PV_NONE,
+			    (char_u *)&p_wcm, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_wig, PV_NONE,
+			    (char_u *)&p_wig, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_wic, PV_NONE,
+			    (char_u *)&p_wic, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_wmnu, PV_NONE,
+			    (char_u *)&p_wmnu, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"wildmode",    "wim",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_wim, PV_NONE,
+			    (char_u *)&p_wim, PV_NONE, did_set_wildmode,
 			    {(char_u *)"full", (char_u *)0L} SCTX_INIT},
     {"wildoptions", "wop",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_wop, PV_NONE,
+			    (char_u *)&p_wop, PV_NONE, NULL,
 			    {(char_u *)"", (char_u *)0L}
 			    SCTX_INIT},
     {"winaltkeys",  "wak",  P_STRING|P_VI_DEF,
 #ifdef FEAT_WAK
-			    (char_u *)&p_wak, PV_NONE,
+			    (char_u *)&p_wak, PV_NONE, did_set_winaltkeys,
 			    {(char_u *)"menu", (char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"wincolor", "wcr",	    P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_WCR,
+			    (char_u *)VAR_WIN, PV_WCR, NULL,
 			    {(char_u *)"", (char_u *)NULL}
 			    SCTX_INIT},
     {"window",	    "wi",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_window, PV_NONE,
+			    (char_u *)&p_window, PV_NONE, did_set_window,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"winheight",   "wh",   P_NUM|P_VI_DEF,
 			    (char_u *)&p_wh, PV_NONE,
+			    did_set_winheight_helpheight,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"winfixheight", "wfh", P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)VAR_WIN, PV_WFH,
+			    (char_u *)VAR_WIN, PV_WFH, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)VAR_WIN, PV_WFW,
+			    (char_u *)VAR_WIN, PV_WFW, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"winminheight", "wmh", P_NUM|P_VI_DEF,
-			    (char_u *)&p_wmh, PV_NONE,
+			    (char_u *)&p_wmh, PV_NONE, did_set_winminheight,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"winminwidth", "wmw", P_NUM|P_VI_DEF,
-			    (char_u *)&p_wmw, PV_NONE,
+			    (char_u *)&p_wmw, PV_NONE, did_set_winminwidth,
 			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
     {"winptydll", NULL,	    P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
 #if defined(MSWIN) && defined(FEAT_TERMINAL)
-			    (char_u *)&p_winptydll, PV_NONE, {
+			    (char_u *)&p_winptydll, PV_NONE, NULL, {
 # ifdef _WIN64
 			    (char_u *)"winpty64.dll",
 # else
@@ -2810,30 +2856,30 @@
 # endif
 				(char_u *)0L}
 #else
-			    (char_u *)NULL, PV_NONE,
+			    (char_u *)NULL, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    SCTX_INIT},
     {"winwidth",   "wiw",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wiw, PV_NONE,
+			    (char_u *)&p_wiw, PV_NONE, did_set_winwidth,
 			    {(char_u *)20L, (char_u *)0L} SCTX_INIT},
     {"wrap",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_WRAP,
+			    (char_u *)VAR_WIN, PV_WRAP, did_set_wrap,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"wrapmargin",  "wm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wm, PV_WM,
+			    (char_u *)&p_wm, PV_WM, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"wrapscan",    "ws",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ws, PV_NONE,
+			    (char_u *)&p_ws, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"write",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_write, PV_NONE,
+			    (char_u *)&p_write, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
     {"writeany",    "wa",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_wa, PV_NONE,
+			    (char_u *)&p_wa, PV_NONE, NULL,
 			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
     {"writebackup", "wb",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_wb, PV_NONE,
+			    (char_u *)&p_wb, PV_NONE, NULL,
 			    {
 #ifdef FEAT_WRITEBACKUP
 			    (char_u *)TRUE,
@@ -2842,16 +2888,16 @@
 #endif
 				(char_u *)0L} SCTX_INIT},
     {"writedelay",  "wd",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wd, PV_NONE,
+			    (char_u *)&p_wd, PV_NONE, NULL,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"xtermcodes",  NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_xtermcodes, PV_NONE,
+			    (char_u *)&p_xtermcodes, PV_NONE, NULL,
 			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
 
 // terminal output codes
 #define p_term(sss, vvv) \
 			    {sss, NULL, P_STRING|P_VI_DEF|P_RALL|P_SECURE, \
-			    (char_u *)&vvv, PV_NONE, \
+			    (char_u *)&vvv, PV_NONE, NULL, \
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
 
     p_term("t_AB", T_CAB)
@@ -2947,7 +2993,7 @@
 // terminal key codes are not in here
 
     // end marker
-    {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
+    {NULL, NULL, 0, NULL, PV_NONE, NULL, {NULL, NULL} SCTX_INIT}
 };
 
 #define OPTION_COUNT ARRAY_LENGTH(options)
