changeset 18054:88b5c2b4e3d2 v8.1.2022

patch 8.1.2022: the option.c file is too big Commit: https://github.com/vim/vim/commit/0eddca40a6d878823fc90b0cd25d5d101506c564 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 12 22:26:43 2019 +0200 patch 8.1.2022: the option.c file is too big Problem: The option.c file is too big. Solution: Move option definitions to a separate file. (Yegappan Lakshmanan, closes #4918)
author Bram Moolenaar <Bram@vim.org>
date Thu, 12 Sep 2019 22:30:03 +0200
parents 8ac85adee561
children 9ca92f1defef
files Filelist src/Make_mvc.mak src/Make_vms.mms src/Makefile src/option.c src/optiondefs.h src/version.c
diffstat 7 files changed, 3213 insertions(+), 3210 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -87,6 +87,7 @@ SRC_ALL =	\
 		src/ops.c \
 		src/option.c \
 		src/option.h \
+		src/optiondefs.h \
 		src/popupmnu.c \
 		src/popupwin.c \
 		src/profiler.c \
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -1604,7 +1604,7 @@ lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).l
 
 $(OUTDIR)/normal.obj:	$(OUTDIR) normal.c  $(INCL)
 
-$(OUTDIR)/option.obj:	$(OUTDIR) option.c  $(INCL)
+$(OUTDIR)/option.obj:	$(OUTDIR) option.c  $(INCL) optiondefs.h
 
 $(OUTDIR)/ops.obj:	$(OUTDIR) ops.c  $(INCL)
 
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -714,7 +714,7 @@ ops.obj : ops.c vim.h [.auto]config.h fe
 option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \
  ascii.h keymap.h term.h macros.h structs.h regexp.h \
  gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
- globals.h
+ globals.h optiondefs.h
 os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \
  ascii.h keymap.h term.h macros.h structs.h regexp.h \
  gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
--- a/src/Makefile
+++ b/src/Makefile
@@ -3284,7 +3284,7 @@ objects/normal.o: normal.c
 objects/ops.o: ops.c
 	$(CCC) -o $@ ops.c
 
-objects/option.o: option.c
+objects/option.o: option.c optiondefs.h
 	$(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ option.c
 
 objects/os_beos.o: os_beos.c
@@ -3762,7 +3762,7 @@ objects/ops.o: ops.c vim.h protodef.h au
 objects/option.o: option.c vim.h protodef.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h
+ proto.h globals.h optiondefs.h
 objects/os_unix.o: os_unix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
--- a/src/option.c
+++ b/src/option.c
@@ -33,3212 +33,7 @@
 
 #define IN_OPTION_C
 #include "vim.h"
-
-/*
- * The options that are local to a window or buffer have "indir" set to one of
- * these values.  Special values:
- * PV_NONE: global option.
- * PV_WIN is added: window-local option
- * PV_BUF is added: buffer-local option
- * PV_BOTH is added: global option which also has a local value.
- */
-#define PV_BOTH 0x1000
-#define PV_WIN  0x2000
-#define PV_BUF  0x4000
-#define PV_MASK 0x0fff
-#define OPT_WIN(x)  (idopt_T)(PV_WIN + (int)(x))
-#define OPT_BUF(x)  (idopt_T)(PV_BUF + (int)(x))
-#define OPT_BOTH(x) (idopt_T)(PV_BOTH + (int)(x))
-
-/*
- * Definition of the PV_ values for buffer-local options.
- * The BV_ values are defined in option.h.
- */
-#define PV_AI		OPT_BUF(BV_AI)
-#define PV_AR		OPT_BOTH(OPT_BUF(BV_AR))
-#define PV_BKC		OPT_BOTH(OPT_BUF(BV_BKC))
-#define PV_BH		OPT_BUF(BV_BH)
-#define PV_BT		OPT_BUF(BV_BT)
-#ifdef FEAT_QUICKFIX
-# define PV_EFM		OPT_BOTH(OPT_BUF(BV_EFM))
-# define PV_GP		OPT_BOTH(OPT_BUF(BV_GP))
-# define PV_MP		OPT_BOTH(OPT_BUF(BV_MP))
-#endif
-#define PV_BIN		OPT_BUF(BV_BIN)
-#define PV_BL		OPT_BUF(BV_BL)
-#define PV_BOMB		OPT_BUF(BV_BOMB)
-#define PV_CI		OPT_BUF(BV_CI)
-#ifdef FEAT_CINDENT
-# define PV_CIN		OPT_BUF(BV_CIN)
-# define PV_CINK	OPT_BUF(BV_CINK)
-# define PV_CINO	OPT_BUF(BV_CINO)
-#endif
-#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
-# define PV_CINW	OPT_BUF(BV_CINW)
-#endif
-#define PV_CM		OPT_BOTH(OPT_BUF(BV_CM))
-#ifdef FEAT_FOLDING
-# define PV_CMS		OPT_BUF(BV_CMS)
-#endif
-#ifdef FEAT_COMMENTS
-# define PV_COM		OPT_BUF(BV_COM)
-#endif
-#define PV_CPT		OPT_BUF(BV_CPT)
-#define PV_DICT	OPT_BOTH(OPT_BUF(BV_DICT))
-#define PV_TSR		OPT_BOTH(OPT_BUF(BV_TSR))
-#define PV_CSL		OPT_BUF(BV_CSL)
-#ifdef FEAT_COMPL_FUNC
-# define PV_CFU		OPT_BUF(BV_CFU)
-#endif
-#ifdef FEAT_FIND_ID
-# define PV_DEF		OPT_BOTH(OPT_BUF(BV_DEF))
-# define PV_INC		OPT_BOTH(OPT_BUF(BV_INC))
-#endif
-#define PV_EOL		OPT_BUF(BV_EOL)
-#define PV_FIXEOL	OPT_BUF(BV_FIXEOL)
-#define PV_EP		OPT_BOTH(OPT_BUF(BV_EP))
-#define PV_ET		OPT_BUF(BV_ET)
-#define PV_FENC		OPT_BUF(BV_FENC)
-#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
-# define PV_BEXPR	OPT_BOTH(OPT_BUF(BV_BEXPR))
-#endif
-#define PV_FP		OPT_BOTH(OPT_BUF(BV_FP))
-#ifdef FEAT_EVAL
-# define PV_FEX		OPT_BUF(BV_FEX)
-#endif
-#define PV_FF		OPT_BUF(BV_FF)
-#define PV_FLP		OPT_BUF(BV_FLP)
-#define PV_FO		OPT_BUF(BV_FO)
-#define PV_FT		OPT_BUF(BV_FT)
-#define PV_IMI		OPT_BUF(BV_IMI)
-#define PV_IMS		OPT_BUF(BV_IMS)
-#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
-# define PV_INDE	OPT_BUF(BV_INDE)
-# define PV_INDK	OPT_BUF(BV_INDK)
-#endif
-#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
-# define PV_INEX	OPT_BUF(BV_INEX)
-#endif
-#define PV_INF		OPT_BUF(BV_INF)
-#define PV_ISK		OPT_BUF(BV_ISK)
-#ifdef FEAT_CRYPT
-# define PV_KEY		OPT_BUF(BV_KEY)
-#endif
-#ifdef FEAT_KEYMAP
-# define PV_KMAP	OPT_BUF(BV_KMAP)
-#endif
-#define PV_KP		OPT_BOTH(OPT_BUF(BV_KP))
-#ifdef FEAT_LISP
-# define PV_LISP	OPT_BUF(BV_LISP)
-# define PV_LW		OPT_BOTH(OPT_BUF(BV_LW))
-#endif
-#define PV_MENC		OPT_BOTH(OPT_BUF(BV_MENC))
-#define PV_MA		OPT_BUF(BV_MA)
-#define PV_ML		OPT_BUF(BV_ML)
-#define PV_MOD		OPT_BUF(BV_MOD)
-#define PV_MPS		OPT_BUF(BV_MPS)
-#define PV_NF		OPT_BUF(BV_NF)
-#ifdef FEAT_COMPL_FUNC
-# define PV_OFU		OPT_BUF(BV_OFU)
-#endif
-#define PV_PATH		OPT_BOTH(OPT_BUF(BV_PATH))
-#define PV_PI		OPT_BUF(BV_PI)
-#ifdef FEAT_TEXTOBJ
-# define PV_QE		OPT_BUF(BV_QE)
-#endif
-#define PV_RO		OPT_BUF(BV_RO)
-#ifdef FEAT_SMARTINDENT
-# define PV_SI		OPT_BUF(BV_SI)
-#endif
-#define PV_SN		OPT_BUF(BV_SN)
-#ifdef FEAT_SYN_HL
-# define PV_SMC		OPT_BUF(BV_SMC)
-# define PV_SYN		OPT_BUF(BV_SYN)
-#endif
-#ifdef FEAT_SPELL
-# define PV_SPC		OPT_BUF(BV_SPC)
-# define PV_SPF		OPT_BUF(BV_SPF)
-# define PV_SPL		OPT_BUF(BV_SPL)
-#endif
-#define PV_STS		OPT_BUF(BV_STS)
-#ifdef FEAT_SEARCHPATH
-# define PV_SUA		OPT_BUF(BV_SUA)
-#endif
-#define PV_SW		OPT_BUF(BV_SW)
-#define PV_SWF		OPT_BUF(BV_SWF)
-#ifdef FEAT_EVAL
-# define PV_TFU		OPT_BUF(BV_TFU)
-#endif
-#define PV_TAGS		OPT_BOTH(OPT_BUF(BV_TAGS))
-#define PV_TC		OPT_BOTH(OPT_BUF(BV_TC))
-#define PV_TS		OPT_BUF(BV_TS)
-#define PV_TW		OPT_BUF(BV_TW)
-#define PV_TX		OPT_BUF(BV_TX)
-#ifdef FEAT_PERSISTENT_UNDO
-# define PV_UDF		OPT_BUF(BV_UDF)
-#endif
-#define PV_WM		OPT_BUF(BV_WM)
-#ifdef FEAT_VARTABS
-# define PV_VSTS		OPT_BUF(BV_VSTS)
-# define PV_VTS		OPT_BUF(BV_VTS)
-#endif
-
-/*
- * Definition of the PV_ values for window-local options.
- * The WV_ values are defined in option.h.
- */
-#define PV_LIST		OPT_WIN(WV_LIST)
-#ifdef FEAT_ARABIC
-# define PV_ARAB	OPT_WIN(WV_ARAB)
-#endif
-#ifdef FEAT_LINEBREAK
-# define PV_BRI		OPT_WIN(WV_BRI)
-# define PV_BRIOPT	OPT_WIN(WV_BRIOPT)
-#endif
-# define PV_WCR		OPT_WIN(WV_WCR)
-#ifdef FEAT_DIFF
-# define PV_DIFF	OPT_WIN(WV_DIFF)
-#endif
-#ifdef FEAT_FOLDING
-# define PV_FDC		OPT_WIN(WV_FDC)
-# define PV_FEN		OPT_WIN(WV_FEN)
-# define PV_FDI		OPT_WIN(WV_FDI)
-# define PV_FDL		OPT_WIN(WV_FDL)
-# define PV_FDM		OPT_WIN(WV_FDM)
-# define PV_FML		OPT_WIN(WV_FML)
-# define PV_FDN		OPT_WIN(WV_FDN)
-# ifdef FEAT_EVAL
-#  define PV_FDE	OPT_WIN(WV_FDE)
-#  define PV_FDT	OPT_WIN(WV_FDT)
-# endif
-# define PV_FMR		OPT_WIN(WV_FMR)
-#endif
-#ifdef FEAT_LINEBREAK
-# define PV_LBR		OPT_WIN(WV_LBR)
-#endif
-#define PV_NU		OPT_WIN(WV_NU)
-#define PV_RNU		OPT_WIN(WV_RNU)
-#ifdef FEAT_LINEBREAK
-# define PV_NUW		OPT_WIN(WV_NUW)
-#endif
-#if defined(FEAT_QUICKFIX)
-# define PV_PVW		OPT_WIN(WV_PVW)
-#endif
-#ifdef FEAT_RIGHTLEFT
-# define PV_RL		OPT_WIN(WV_RL)
-# define PV_RLC		OPT_WIN(WV_RLC)
-#endif
-#define PV_SCBIND	OPT_WIN(WV_SCBIND)
-#define PV_SCROLL	OPT_WIN(WV_SCROLL)
-#define PV_SISO		OPT_BOTH(OPT_WIN(WV_SISO))
-#define PV_SO		OPT_BOTH(OPT_WIN(WV_SO))
-#ifdef FEAT_SPELL
-# define PV_SPELL	OPT_WIN(WV_SPELL)
-#endif
-#ifdef FEAT_SYN_HL
-# define PV_CUC		OPT_WIN(WV_CUC)
-# define PV_CUL		OPT_WIN(WV_CUL)
-# define PV_CULOPT	OPT_WIN(WV_CULOPT)
-# define PV_CC		OPT_WIN(WV_CC)
-#endif
-#ifdef FEAT_STL_OPT
-# define PV_STL		OPT_BOTH(OPT_WIN(WV_STL))
-#endif
-#define PV_UL		OPT_BOTH(OPT_BUF(BV_UL))
-# define PV_WFH		OPT_WIN(WV_WFH)
-# define PV_WFW		OPT_WIN(WV_WFW)
-#define PV_WRAP		OPT_WIN(WV_WRAP)
-#define PV_CRBIND	OPT_WIN(WV_CRBIND)
-#ifdef FEAT_CONCEAL
-# define PV_COCU	OPT_WIN(WV_COCU)
-# define PV_COLE	OPT_WIN(WV_COLE)
-#endif
-#ifdef FEAT_TERMINAL
-# define PV_TWK		OPT_WIN(WV_TWK)
-# define PV_TWS		OPT_WIN(WV_TWS)
-# define PV_TWSL	OPT_BUF(BV_TWSL)
-#endif
-#ifdef FEAT_SIGNS
-# define PV_SCL		OPT_WIN(WV_SCL)
-#endif
-
-/* WV_ and BV_ values get typecasted to this for the "indir" field */
-typedef enum
-{
-    PV_NONE = 0,
-    PV_MAXVAL = 0xffff    /* to avoid warnings for value out of range */
-} idopt_T;
-
-/*
- * Options local to a window have a value local to a buffer and global to all
- * buffers.  Indicate this by setting "var" to VAR_WIN.
- */
-#define VAR_WIN ((char_u *)-1)
-
-/*
- * These are the global values for options which are also local to a buffer.
- * Only to be used in option.c!
- */
-static int	p_ai;
-static int	p_bin;
-static int	p_bomb;
-static char_u	*p_bh;
-static char_u	*p_bt;
-static int	p_bl;
-static int	p_ci;
-#ifdef FEAT_CINDENT
-static int	p_cin;
-static char_u	*p_cink;
-static char_u	*p_cino;
-#endif
-#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
-static char_u	*p_cinw;
-#endif
-#ifdef FEAT_COMMENTS
-static char_u	*p_com;
-#endif
-#ifdef FEAT_FOLDING
-static char_u	*p_cms;
-#endif
-static char_u	*p_cpt;
-#ifdef FEAT_COMPL_FUNC
-static char_u	*p_cfu;
-static char_u	*p_ofu;
-#endif
-#ifdef FEAT_EVAL
-static char_u	*p_tfu;
-#endif
-static int	p_eol;
-static int	p_fixeol;
-static int	p_et;
-static char_u	*p_fenc;
-static char_u	*p_ff;
-static char_u	*p_fo;
-static char_u	*p_flp;
-static char_u	*p_ft;
-static long	p_iminsert;
-static long	p_imsearch;
-#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
-static char_u	*p_inex;
-#endif
-#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
-static char_u	*p_inde;
-static char_u	*p_indk;
-#endif
-#if defined(FEAT_EVAL)
-static char_u	*p_fex;
-#endif
-static int	p_inf;
-static char_u	*p_isk;
-#ifdef FEAT_CRYPT
-static char_u	*p_key;
-#endif
-#ifdef FEAT_LISP
-static int	p_lisp;
-#endif
-static int	p_ml;
-static int	p_ma;
-static int	p_mod;
-static char_u	*p_mps;
-static char_u	*p_nf;
-static int	p_pi;
-#ifdef FEAT_TEXTOBJ
-static char_u	*p_qe;
-#endif
-static int	p_ro;
-#ifdef FEAT_SMARTINDENT
-static int	p_si;
-#endif
-static int	p_sn;
-static long	p_sts;
-#if defined(FEAT_SEARCHPATH)
-static char_u	*p_sua;
-#endif
-static long	p_sw;
-static int	p_swf;
-#ifdef FEAT_SYN_HL
-static long	p_smc;
-static char_u	*p_syn;
-#endif
-#ifdef FEAT_SPELL
-static char_u	*p_spc;
-static char_u	*p_spf;
-static char_u	*p_spl;
-#endif
-static long	p_ts;
-static long	p_tw;
-static int	p_tx;
-#ifdef FEAT_PERSISTENT_UNDO
-static int	p_udf;
-#endif
-static long	p_wm;
-#ifdef FEAT_VARTABS
-static char_u	*p_vsts;
-static char_u	*p_vts;
-#endif
-#ifdef FEAT_KEYMAP
-static char_u	*p_keymap;
-#endif
-#ifdef FEAT_TERMINAL
-static long	p_twsl;		/* 'termwinscroll' */
-#endif
-
-/* Saved values for when 'bin' is set. */
-static int	p_et_nobin;
-static int	p_ml_nobin;
-static long	p_tw_nobin;
-static long	p_wm_nobin;
-
-/* Saved values for when 'paste' is set */
-static int	p_ai_nopaste;
-static int	p_et_nopaste;
-static long	p_sts_nopaste;
-static long	p_tw_nopaste;
-static long	p_wm_nopaste;
-#ifdef FEAT_VARTABS
-static char_u	*p_vsts_nopaste;
-#endif
-
-struct vimoption
-{
-    char	*fullname;	// full option name
-    char	*shortname;	// permissible abbreviation
-    long_u	flags;		// see below
-    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
-    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
-# define SCTX_INIT , {0, 0, 0, 1}
-#else
-# define SCTX_INIT
-#endif
-};
-
-#define VI_DEFAULT  0	    /* def_val[VI_DEFAULT] is Vi default value */
-#define VIM_DEFAULT 1	    /* def_val[VIM_DEFAULT] is Vim default value */
-
-/*
- * Flags
- */
-#define P_BOOL		0x01	/* the option is boolean */
-#define P_NUM		0x02	/* the option is numeric */
-#define P_STRING	0x04	/* the option is a string */
-#define P_ALLOCED	0x08	/* the string option is in allocated memory,
-				   must use free_string_option() when
-				   assigning new value. Not set if default is
-				   the same. */
-#define P_EXPAND	0x10	/* environment expansion.  NOTE: P_EXPAND can
-				   never be used for local or hidden options! */
-#define P_NODEFAULT	0x40	/* don't set to default value */
-#define P_DEF_ALLOCED	0x80	/* default value is in allocated memory, must
-				    use vim_free() when assigning new value */
-#define P_WAS_SET	0x100	/* option has been set/reset */
-#define P_NO_MKRC	0x200	/* don't include in :mkvimrc output */
-#define P_VI_DEF	0x400	/* Use Vi default for Vim */
-#define P_VIM		0x800	/* Vim option, reset when 'cp' set */
-
-				/* when option changed, what to display: */
-#define P_RSTAT		0x1000	/* redraw status lines */
-#define P_RWIN		0x2000	/* redraw current window and recompute text */
-#define P_RBUF		0x4000	/* redraw current buffer and recompute text */
-#define P_RALL		0x6000	/* redraw all windows */
-#define P_RCLR		0x7000	/* clear and redraw all */
-
-#define P_COMMA		 0x8000	 /* comma separated list */
-#define P_ONECOMMA	0x18000L /* P_COMMA and cannot have two consecutive
-				  * commas */
-#define P_NODUP		0x20000L /* don't allow duplicate strings */
-#define P_FLAGLIST	0x40000L /* list of single-char flags */
-
-#define P_SECURE	0x80000L /* cannot change in modeline or secure mode */
-#define P_GETTEXT      0x100000L /* expand default value with _() */
-#define P_NOGLOB       0x200000L /* do not use local value for global vimrc */
-#define P_NFNAME       0x400000L /* only normal file name chars allowed */
-#define P_INSECURE     0x800000L /* option was set from a modeline */
-#define P_PRI_MKRC    0x1000000L /* priority for :mkvimrc (setting option has
-				    side effects) */
-#define P_NO_ML       0x2000000L /* not allowed in modeline */
-#define P_CURSWANT    0x4000000L /* update curswant required; not needed when
-				  * there is a redraw flag */
-#define P_NDNAME      0x8000000L /* only normal dir name chars allowed */
-#define P_RWINONLY   0x10000000L /* only redraw current window */
-#define P_MLE	     0x20000000L /* under control of 'modelineexpr' */
-
-#define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
-
-/* 'isprint' for latin1 is also used for MS-Windows cp1252, where 0x80 is used
- * for the currency sign. */
-#if defined(MSWIN)
-# define ISP_LATIN1 (char_u *)"@,~-255"
-#else
-# define ISP_LATIN1 (char_u *)"@,161-255"
-#endif
-
-# define HIGHLIGHT_INIT "8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC"
-
-/* Default python version for pyx* commands */
-#if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
-# define DEFAULT_PYTHON_VER	0
-#elif defined(FEAT_PYTHON3)
-# define DEFAULT_PYTHON_VER	3
-#elif defined(FEAT_PYTHON)
-# define DEFAULT_PYTHON_VER	2
-#else
-# define DEFAULT_PYTHON_VER	0
-#endif
-
-// used for 'cinkeys' and 'indentkeys'
-#define INDENTKEYS_DEFAULT (char_u *)"0{,0},0),0],:,0#,!^F,o,O,e"
-
-/*
- * options[] is initialized here.
- * The order of the options MUST be alphabetic for ":set all" and findoption().
- * All option names MUST start with a lowercase letter (for findoption()).
- * Exception: "t_" options are at the end.
- * The options with a NULL variable are 'hidden': a set command for them is
- * ignored and they are not printed.
- */
-static struct vimoption options[] =
-{
-    {"aleph",	    "al",   P_NUM|P_VI_DEF|P_CURSWANT,
-#ifdef FEAT_RIGHTLEFT
-			    (char_u *)&p_aleph, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {
-#if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
-			    (char_u *)128L,
-#else
-			    (char_u *)224L,
-#endif
-					    (char_u *)0L} SCTX_INIT},
-    {"antialias",   "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
-#if defined(FEAT_GUI_MAC)
-			    (char_u *)&p_antialias, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)FALSE}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)FALSE}
-#endif
-			    SCTX_INIT},
-    {"arabic",	    "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
-#ifdef FEAT_ARABIC
-			    (char_u *)VAR_WIN, PV_ARAB,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"altkeymap",   "akm",  P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"single", (char_u *)0L}
-			    SCTX_INIT},
-    {"autochdir",  "acd",   P_BOOL|P_VI_DEF,
-#ifdef FEAT_AUTOCHDIR
-			    (char_u *)&p_acd, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"autoindent",  "ai",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ai, PV_AI,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"autoprint",   "ap",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"autoread",    "ar",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ar, PV_AR,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"autowrite",   "aw",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_aw, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"autowriteall","awa",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_awa, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"background",  "bg",   P_STRING|P_VI_DEF|P_RCLR,
-			    (char_u *)&p_bg, PV_NONE,
-			    {
-#if (defined(MSWIN)) && !defined(FEAT_GUI)
-			    (char_u *)"dark",
-#else
-			    (char_u *)"light",
-#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 *)"", (char_u *)0L} SCTX_INIT},
-    {"backup",	    "bk",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_bk, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"backupcopy",  "bkc",  P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_bkc, PV_BKC,
-#ifdef UNIX
-			    {(char_u *)"yes", (char_u *)"auto"}
-#else
-			    {(char_u *)"auto", (char_u *)"auto"}
-#endif
-			    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 *)DFLT_BDIR, (char_u *)0L} SCTX_INIT},
-    {"backupext",   "bex",  P_STRING|P_VI_DEF|P_NFNAME,
-			    (char_u *)&p_bex, PV_NONE,
-			    {
-#ifdef VMS
-			    (char_u *)"_",
-#else
-			    (char_u *)"~",
-#endif
-					    (char_u *)0L} SCTX_INIT},
-    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_WILDIGN
-			    (char_u *)&p_bsk, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"balloondelay","bdlay",P_NUM|P_VI_DEF,
-#ifdef FEAT_BEVAL
-			    (char_u *)&p_bdlay, PV_NONE,
-			    {(char_u *)600L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)FALSE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"beautify",    "bf",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L} SCTX_INIT},
-    {"binary",	    "bin",  P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_bin, PV_BIN,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"bioskey",	    "biosk",P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(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 *)" \t!@*-+;:,./?", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF
-						  |P_ONECOMMA|P_NODUP,
-#ifdef FEAT_LINEBREAK
-			    (char_u *)VAR_WIN, PV_BRIOPT,
-			    {(char_u *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"last", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-			    SCTX_INIT},
-    {"buflisted",   "bl",   P_BOOL|P_VI_DEF|P_NOGLOB,
-			    (char_u *)&p_bl, PV_BL,
-			    {(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 *)"", (char_u *)0L}
-			    SCTX_INIT},
-    {"casemap",	    "cmp",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-			    (char_u *)&p_cmp, PV_NONE,
-			    {(char_u *)"internal,keepascii", (char_u *)0L}
-			    SCTX_INIT},
-    {"cdpath",	    "cd",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
-#ifdef FEAT_SEARCHPATH
-			    (char_u *)&p_cdpath, PV_NONE,
-			    {(char_u *)",,", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"cedit",	    NULL,   P_STRING,
-#ifdef FEAT_CMDWIN
-			    (char_u *)&p_cedit, PV_NONE,
-			    {(char_u *)"", (char_u *)CTRL_F_STR}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"charconvert",  "ccv", P_STRING|P_VI_DEF|P_SECURE,
-#if defined(FEAT_EVAL)
-			    (char_u *)&p_ccv, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"cindent",	    "cin",  P_BOOL|P_VI_DEF|P_VIM,
-#ifdef FEAT_CINDENT
-			    (char_u *)&p_cin, PV_CIN,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"cinkeys",	    "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_CINDENT
-			    (char_u *)&p_cink, PV_CINK,
-			    {INDENTKEYS_DEFAULT, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"cinoptions",  "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_CINDENT
-			    (char_u *)&p_cino, PV_CINO,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"cinwords",    "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
-			    (char_u *)&p_cinw, PV_CINW,
-			    {(char_u *)"if,else,while,do,for,switch",
-				(char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"clipboard",   "cb",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_CLIPBOARD
-			    (char_u *)&p_cb, PV_NONE,
-# ifdef FEAT_XCLIPBOARD
-			    {(char_u *)"autoselect,exclude:cons\\|linux",
-							       (char_u *)0L}
-# else
-			    {(char_u *)"", (char_u *)0L}
-# endif
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)1L, (char_u *)0L} SCTX_INIT},
-    {"cmdwinheight", "cwh", P_NUM|P_VI_DEF,
-#ifdef FEAT_CMDWIN
-			    (char_u *)&p_cwh, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)80L, (char_u *)0L} SCTX_INIT},
-    {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
-							  |P_NODUP|P_CURSWANT,
-#ifdef FEAT_COMMENTS
-			    (char_u *)&p_com, PV_COM,
-			    {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
-				(char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
-#ifdef FEAT_FOLDING
-			    (char_u *)&p_cms, PV_CMS,
-			    {(char_u *)"/*%s*/", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)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 *)".,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 *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)0L, (char_u *)0L}
-			    SCTX_INIT},
-    {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
-#ifdef FEAT_COMPL_FUNC
-			    (char_u *)&p_cfu, PV_CFU,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"menu,preview", (char_u *)0L}
-			    SCTX_INIT},
-    {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
-			    (char_u *)&p_cpp, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"conskey",	    "consk",P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"cpoptions",   "cpo",  P_STRING|P_VIM|P_RALL|P_FLAGLIST,
-			    (char_u *)&p_cpo, PV_NONE,
-			    {(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 *)"blowfish2", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"cscope", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"cursorbind",  "crb",  P_BOOL|P_VI_DEF,
-			    (char_u *)VAR_WIN, PV_CRBIND,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"cursorlineopt", "culopt", P_STRING|P_VI_DEF|P_RWIN,
-#ifdef FEAT_SYN_HL
-			    (char_u *)VAR_WIN, PV_CULOPT,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"both", (char_u *)0L} SCTX_INIT},
-    {"debug",	    NULL,   P_STRING|P_VI_DEF,
-			    (char_u *)&p_debug, PV_NONE,
-			    {(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 *)"^\\s*#\\s*define", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)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 *)"", (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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"internal,filler", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)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 *)"", (char_u *)0L} SCTX_INIT},
-    {"eadirection", "ead",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_ead, PV_NONE,
-			    {(char_u *)"both", (char_u *)0L}
-			    SCTX_INIT},
-    {"edcompatible","ed",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ed, PV_NONE,
-			    {(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 *)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 *)ENC_DFLT, (char_u *)0L}
-			    SCTX_INIT},
-    {"endofline",   "eol",  P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_eol, PV_EOL,
-			    {(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 *)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 *)"", (char_u *)0L} SCTX_INIT},
-    {"errorbells",  "eb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_eb, PV_NONE,
-			    {(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 *)DFLT_ERRORFILE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DFLT_EFM, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"esckeys",	    "ek",   P_BOOL|P_VIM,
-			    (char_u *)&p_ek, PV_NONE,
-			    {(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 *)"", (char_u *)0L} SCTX_INIT},
-    {"expandtab",   "et",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_et, PV_ET,
-			    {(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 *)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 *)"", (char_u *)0L}
-			    SCTX_INIT},
-    {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA,
-			    (char_u *)&p_fencs, PV_NONE,
-			    {(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 *)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 *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
-			    SCTX_INIT},
-    {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_fic, PV_NONE,
-			    {
-#ifdef CASE_INSENSITIVE_FILENAME
-				    (char_u *)TRUE,
-#else
-				    (char_u *)FALSE,
-#endif
-					(char_u *)0L} SCTX_INIT},
-    {"filetype",    "ft",   P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
-			    (char_u *)&p_ft, PV_FT,
-			    {(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_NONE,
-			    {(char_u *)"vert:|,fold:-", (char_u *)0L}
-			    SCTX_INIT},
-    {"fixendofline",  "fixeol", P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_fixeol, PV_FIXEOL,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"fkmap",	    "fk",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"flash",	    "fl",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)TRUE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"0", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"#", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)0L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)-1L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"{{{,}}}", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"manual", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)1L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)20L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"block,hor,mark,percent,quickfix,search,tag,undo",
-						 (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"foldtext()", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)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 *)"^\\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 *)"", (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 *)TRUE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"graphic",	    "gr",   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DFLT_GREPFORMAT, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {
-# ifdef MSWIN
-			    /* may be changed to "grep -n" in os_win32.c */
-			    (char_u *)"findstr /n",
-# else
-#  ifdef UNIX
-			    /* Add an extra file name so that grep will always
-			     * insert a file name in the match line. */
-			    (char_u *)"grep -n $* /dev/null",
-#  else
-#   ifdef VMS
-			    (char_u *)"SEARCH/NUMBERS ",
-#   else
-			    (char_u *)"grep -n ",
-#   endif
-#  endif
-# endif
-			    (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {
-# 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",
-# else	/* Win32 console */
-				(char_u *)"n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block",
-# endif
-				    (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"guiheadroom", "ghr",  P_NUM|P_VI_DEF,
-#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
-			    (char_u *)&p_ghr, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-# if defined(UNIX) && !defined(FEAT_GUI_MAC)
-			    {(char_u *)"aegimrLtT", (char_u *)0L}
-# else
-			    {(char_u *)"egmrLtT", (char_u *)0L}
-# endif
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"hardtabs",    "ht",   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DFLT_HELPFILE, (char_u *)0L}
-			    SCTX_INIT},
-    {"helpheight",  "hh",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_hh, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"hidden",	    "hid",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_hid, PV_NONE,
-			    {(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 *)HIGHLIGHT_INIT, (char_u *)0L}
-			    SCTX_INIT},
-    {"history",	    "hi",   P_NUM|P_VIM,
-			    (char_u *)&p_hi, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"icon",	    NULL,   P_BOOL|P_VI_DEF,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_icon, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"iconstring",  NULL,   P_STRING|P_VI_DEF|P_MLE,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_iconstring, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"ignorecase",  "ic",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ic, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE,
-#if defined(FEAT_EVAL)
-			    (char_u *)&p_imaf, PV_NONE,
-			    {(char_u *)"", (char_u *)NULL}
-# else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"imcmdline",   "imc",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_imcmdline, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"imdisable",   "imd",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_imdisable, PV_NONE,
-#ifdef __sgi
-			    {(char_u *)TRUE, (char_u *)0L}
-#else
-			    {(char_u *)FALSE, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"iminsert",    "imi",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_iminsert, PV_IMI,
-			    {(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 *)B_IMODE_USE_INSERT, (char_u *)0L}
-			    SCTX_INIT},
-    {"imstatusfunc","imsf",P_STRING|P_VI_DEF|P_SECURE,
-#if defined(FEAT_EVAL)
-			    (char_u *)&p_imsf, PV_NONE,
-			    {(char_u *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)IM_OVER_THE_SPOT, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"^\\s*#\\s*include", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"indentexpr", "inde",  P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
-#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
-			    (char_u *)&p_inde, PV_INDE,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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_CINDENT) && defined(FEAT_EVAL)
-			    (char_u *)&p_indk, PV_INDK,
-			    {INDENTKEYS_DEFAULT, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"infercase",   "inf",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_inf, PV_INF,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"isfname",	    "isf",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_isf, PV_NONE,
-			    {
-#ifdef BACKSLASH_IN_FILENAME
-				/* Excluded are: & and ^ are special in cmd.exe
-				 * ( and ) are used in text separating fnames */
-			    (char_u *)"@,48-57,/,\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=",
-#else
-# ifdef AMIGA
-			    (char_u *)"@,48-57,/,.,-,_,+,,,$,:",
-# else
-#  ifdef VMS
-			    (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~",
-#  else /* UNIX et al. */
-#   ifdef EBCDIC
-			    (char_u *)"@,240-249,/,.,-,_,+,,,#,$,%,~,=",
-#   else
-			    (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,~,=",
-#   endif
-#  endif
-# endif
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"isident",	    "isi",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-			    (char_u *)&p_isi, PV_NONE,
-			    {
-#if defined(MSWIN)
-			    (char_u *)"@,48-57,_,128-167,224-235",
-#else
-# ifdef EBCDIC
-			    /* TODO: EBCDIC Check this! @ == isalpha()*/
-			    (char_u *)"@,240-249,_,66-73,81-89,98-105,"
-				    "112-120,128,140-142,156,158,172,"
-				    "174,186,191,203-207,219-225,235-239,"
-				    "251-254",
-# else
-			    (char_u *)"@,48-57,_,192-255",
-# endif
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"iskeyword",   "isk",  P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP,
-			    (char_u *)&p_isk, PV_ISK,
-			    {
-#ifdef EBCDIC
-			     (char_u *)"@,240-249,_",
-			     /* TODO: EBCDIC Check this! @ == isalpha()*/
-			     (char_u *)"@,240-249,_,66-73,81-89,98-105,"
-				    "112-120,128,140-142,156,158,172,"
-				    "174,186,191,203-207,219-225,235-239,"
-				    "251-254",
-#else
-				(char_u *)"@,48-57,_",
-# if defined(MSWIN)
-				(char_u *)"@,48-57,_,128-167,224-235"
-# else
-				ISK_LATIN1
-# endif
-#endif
-			    } SCTX_INIT},
-    {"isprint",	    "isp",  P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
-			    (char_u *)&p_isp, PV_NONE,
-			    {
-#if defined(MSWIN) || defined(VMS)
-			    (char_u *)"@,~-255",
-#else
-# ifdef EBCDIC
-			    /* all chars above 63 are printable */
-			    (char_u *)"63-255",
-# else
-			    ISP_LATIN1,
-# endif
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"joinspaces",  "js",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_js, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L} SCTX_INIT},
-    {"keywordprg",  "kp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_kp, PV_KP,
-			    {
-#ifdef MSWIN
-			    (char_u *)":help",
-#else
-# ifdef VMS
-			    (char_u *)"help",
-# else
-#  ifdef USEMAN_S
-			    (char_u *)"man -s",
-#  else
-			    (char_u *)"man",
-#  endif
-# endif
-#endif
-				(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"langnoremap",  "lnr",   P_BOOL|P_VI_DEF,
-#ifdef FEAT_LANGMAP
-			    (char_u *)&p_lnr, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)1L, (char_u *)0L} SCTX_INIT},
-    {"lazyredraw",  "lz",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_lz, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-			    {
-#if defined(MSWIN)
-			    (char_u *)25L,
-#else
-			    (char_u *)24L,
-#endif
-					    (char_u *)0L} SCTX_INIT},
-    {"linespace",   "lsp",  P_NUM|P_VI_DEF|P_RCLR,
-#ifdef FEAT_GUI
-			    (char_u *)&p_linespace, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-#ifdef FEAT_GUI_MSWIN
-			    {(char_u *)1L, (char_u *)0L}
-#else
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"lisp",	    NULL,   P_BOOL|P_VI_DEF,
-#ifdef FEAT_LISP
-			    (char_u *)&p_lisp, PV_LISP,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"lispwords",   "lw",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_LISP
-			    (char_u *)&p_lispwords, PV_LW,
-			    {(char_u *)LISPWORD_VALUE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"list",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_LIST,
-			    {(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_NONE,
-			    {(char_u *)"eol:$", (char_u *)0L} SCTX_INIT},
-    {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_lpl, PV_NONE,
-			    {(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 *)DYNAMIC_LUA_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"macatsui",    NULL,   P_BOOL|P_VI_DEF|P_RCLR,
-#ifdef FEAT_GUI_MAC
-			    (char_u *)&p_macatsui, PV_NONE,
-			    {(char_u *)TRUE, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"magic",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_magic, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"makeencoding","menc", P_STRING|P_VI_DEF,
-			    (char_u *)&p_menc, PV_MENC,
-			    {(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,
-# 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, (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 *)"(:),{:},[:]", (char_u *)0L}
-			    SCTX_INIT},
-    {"matchtime",   "mat",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mat, PV_NONE,
-			    {(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 *)2, (char_u *)0L} SCTX_INIT},
-    {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF,
-#ifdef FEAT_EVAL
-			    (char_u *)&p_mfd, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)100L, (char_u *)0L} SCTX_INIT},
-    {"maxmapdepth", "mmd",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmd, PV_NONE,
-			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
-    {"maxmem",	    "mm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_mm, PV_NONE,
-			    {(char_u *)DFLT_MAXMEM, (char_u *)0L}
-			    SCTX_INIT},
-    {"maxmempattern","mmp", P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmp, PV_NONE,
-			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
-    {"maxmemtot",   "mmt",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mmt, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)25L, (char_u *)0L} SCTX_INIT},
-    {"mesg",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"460000,2000,500", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"modeline",    "ml",   P_BOOL|P_VIM,
-			    (char_u *)&p_ml, PV_ML,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"modelines",   "mls",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_mls, PV_NONE,
-			    {(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 *)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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"more",	    NULL,   P_BOOL|P_VIM,
-			    (char_u *)&p_more, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
-    {"mouse",	    NULL,   P_STRING|P_VI_DEF|P_FLAGLIST,
-			    (char_u *)&p_mouse, PV_NONE,
-			    {
-#if defined(MSWIN)
-				(char_u *)"a",
-#else
-				(char_u *)"",
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"mousefocus",   "mousef", P_BOOL|P_VI_DEF,
-#ifdef FEAT_GUI
-			    (char_u *)&p_mousef, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"mousemodel",  "mousem", P_STRING|P_VI_DEF,
-			    (char_u *)&p_mousem, PV_NONE,
-			    {
-#if defined(MSWIN)
-				(char_u *)"popup",
-#else
-# if defined(MACOS_X)
-				(char_u *)"popup_setpos",
-# else
-				(char_u *)"extend",
-# endif
-#endif
-				(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,
-			    {(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, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"mousetime",   "mouset",	P_NUM|P_VI_DEF,
-			    (char_u *)&p_mouset, PV_NONE,
-			    {(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 *)DYNAMIC_MZSCH_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DYNAMIC_MZGC_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"mzquantum",  "mzq",   P_NUM,
-#ifdef FEAT_MZSCHEME
-			    (char_u *)&p_mzq, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)100L, (char_u *)100L} SCTX_INIT},
-    {"novice",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"bin,octal,hex", (char_u *)0L}
-			    SCTX_INIT},
-    {"number",	    "nu",   P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_NU,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)8L, (char_u *)4L} SCTX_INIT},
-    {"omnifunc",    "ofu",  P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
-#ifdef FEAT_COMPL_FUNC
-			    (char_u *)&p_ofu, PV_OFU,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"open",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"opendevice",  "odev", P_BOOL|P_VI_DEF,
-#if defined(MSWIN)
-			    (char_u *)&p_odev, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)FALSE}
-			    SCTX_INIT},
-    {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_opfunc, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"optimize",    "opt",  P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"osfiletype",  "oft",  P_STRING|P_ALLOCED|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DFLT_RUNTIMEPATH, (char_u *)0L}
-			    SCTX_INIT},
-    {"paragraphs",  "para", P_STRING|P_VI_DEF,
-			    (char_u *)&p_para, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"pastetoggle", "pt",   P_STRING|P_VI_DEF,
-			    (char_u *)&p_pt, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"patchmode",   "pm",   P_STRING|P_VI_DEF|P_NFNAME,
-			    (char_u *)&p_pm, PV_NONE,
-			    {(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,
-			    {
-#if defined(AMIGA) || defined(MSWIN)
-			    (char_u *)".,,",
-#else
-			    (char_u *)".,/usr/include,,",
-#endif
-				(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 *)DYNAMIC_PERL_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"previewheight", "pvh", P_NUM|P_VI_DEF,
-#if defined(FEAT_QUICKFIX)
-			    (char_u *)&p_pvh, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)12L, (char_u *)0L} SCTX_INIT},
-    {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-#ifdef FEAT_TEXT_PROP
-			    (char_u *)&p_pvp, PV_NONE,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {
-# ifdef MSWIN
-				(char_u *)"Courier_New:h10",
-# else
-				(char_u *)"courier",
-# endif
-				(char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    /* 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, (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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"prompt",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_prompt, PV_NONE,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"pumheight",   "ph",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ph, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"pumwidth",    "pw",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_pw, PV_NONE,
-			    {(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 *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)DEFAULT_PYTHON_VER, (char_u *)0L}
-			    SCTX_INIT},
-    {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
-#ifdef FEAT_TEXTOBJ
-			    (char_u *)&p_qe, PV_QE,
-			    {(char_u *)"\\", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"readonly",    "ro",   P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
-			    (char_u *)&p_ro, PV_RO,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"redraw",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"redrawtime",  "rdt",  P_NUM|P_VI_DEF,
-#ifdef FEAT_RELTIME
-			    (char_u *)&p_rdt, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)2000L, (char_u *)0L} SCTX_INIT},
-    {"regexpengine", "re",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_re, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
-			    (char_u *)VAR_WIN, PV_RNU,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"remap",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_remap, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"report",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)&p_report, PV_NONE,
-			    {(char_u *)2L, (char_u *)0L} SCTX_INIT},
-    {"restorescreen", "rs", P_BOOL|P_VI_DEF,
-#ifdef MSWIN
-			    (char_u *)&p_rs, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"search", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)DYNAMIC_RUBY_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"ruler",	    "ru",   P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
-#ifdef FEAT_CMDL_INFO
-			    (char_u *)&p_ru, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)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 *)0L, (char_u *)0L} SCTX_INIT},
-    {"scrollbind",  "scb",  P_BOOL|P_VI_DEF,
-			    (char_u *)VAR_WIN, PV_SCBIND,
-			    {(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 *)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 *)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 *)"ver,jump", (char_u *)0L}
-			    SCTX_INIT},
-    {"sections",    "sect", P_STRING|P_VI_DEF,
-			    (char_u *)&p_sections, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"selection",   "sel",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_sel, PV_NONE,
-			    {(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 *)"", (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,
-	 {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal",
-							       (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {
-#ifdef VMS
-			    (char_u *)"-",
-#else
-# if defined(MSWIN)
-			    (char_u *)"",	/* set in set_init_1() */
-# else
-			    (char_u *)"sh",
-# endif
-#endif /* VMS */
-				(char_u *)0L} SCTX_INIT},
-    {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_shcf, PV_NONE,
-			    {
-#if defined(MSWIN)
-			    (char_u *)"/c",
-#else
-			    (char_u *)"-c",
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"shellpipe",   "sp",   P_STRING|P_VI_DEF|P_SECURE,
-#ifdef FEAT_QUICKFIX
-			    (char_u *)&p_sp, PV_NONE,
-			    {
-#if defined(UNIX)
-			    (char_u *)"| tee",
-#else
-			    (char_u *)">",
-#endif
-				(char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L} SCTX_INIT},
-    {"shellredir",  "srr",  P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_srr, PV_NONE,
-			    {(char_u *)">", (char_u *)0L} SCTX_INIT},
-    {"shellslash",  "ssl",   P_BOOL|P_VI_DEF,
-#ifdef BACKSLASH_IN_FILENAME
-			    (char_u *)&p_ssl, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"shelltemp",   "stmp", P_BOOL,
-			    (char_u *)&p_stmp, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
-    {"shelltype",   "st",   P_NUM|P_VI_DEF,
-#ifdef AMIGA
-			    (char_u *)&p_st, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"shellxquote", "sxq",  P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_sxq, PV_NONE,
-			    {
-#if defined(UNIX) && defined(USE_SYSTEM)
-			    (char_u *)"\"",
-#else
-			    (char_u *)"",
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
-			    (char_u *)&p_sxe, PV_NONE,
-			    {
-#if defined(MSWIN)
-			    (char_u *)"\"&|<>()@^",
-#else
-			    (char_u *)"",
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"shiftround",  "sr",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sr, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"shiftwidth",  "sw",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_sw, PV_SW,
-			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
-    {"shortmess",   "shm",  P_STRING|P_VIM|P_FLAGLIST,
-			    (char_u *)&p_shm, PV_NONE,
-			    {(char_u *)"S", (char_u *)"filnxtToOS"}
-			    SCTX_INIT},
-    {"shortname",   "sn",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sn, PV_SN,
-			    {(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_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"showcmd",	    "sc",   P_BOOL|P_VIM,
-#ifdef FEAT_CMDL_INFO
-			    (char_u *)&p_sc, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE,
-#ifdef UNIX
-				(char_u *)FALSE
-#else
-				(char_u *)TRUE
-#endif
-				} SCTX_INIT},
-    {"showfulltag", "sft",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sft, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"showmatch",   "sm",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sm, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"showmode",    "smd",  P_BOOL|P_VIM,
-			    (char_u *)&p_smd, PV_NONE,
-			    {(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 *)1L, (char_u *)0L} SCTX_INIT},
-    {"sidescroll",  "ss",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ss, PV_NONE,
-			    {(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 *)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 *)"auto", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"slowopen",    "slow", P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"smartindent", "si",   P_BOOL|P_VI_DEF|P_VIM,
-#ifdef FEAT_SMARTINDENT
-			    (char_u *)&p_si, PV_SI,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"softtabstop", "sts",  P_NUM|P_VI_DEF|P_VIM,
-			    (char_u *)&p_sts, PV_STS,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"sourceany",   NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"[.?!]\\_[\\])'\"	 ]\\+", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"en", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"best", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"splitbelow",  "sb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_sb, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"splitright",  "spr",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_spr, PV_NONE,
-			    {(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 *)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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)".bak,~,.o,.h,.info,.swp,.obj",
-				(char_u *)0L} SCTX_INIT},
-    {"suffixesadd", "sua",  P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_SEARCHPATH
-			    (char_u *)&p_sua, PV_SUA,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"swapfile",    "swf",  P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)&p_swf, PV_SWF,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"swapsync",    "sws",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_sws, PV_NONE,
-			    {(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 *)"", (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 *)3000L, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"tabpagemax",  "tpm",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_tpm, PV_NONE,
-			    {(char_u *)10L, (char_u *)0L} SCTX_INIT},
-    {"tabstop",	    "ts",   P_NUM|P_VI_DEF|P_RBUF,
-			    (char_u *)&p_ts, PV_TS,
-			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
-    {"tagbsearch",  "tbs",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tbs, PV_NONE,
-#ifdef VMS	/* binary searching doesn't appear to work on VMS */
-			    {(char_u *)0L, (char_u *)0L}
-#else
-			    {(char_u *)TRUE, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"tagcase",	    "tc",   P_STRING|P_VIM,
-			    (char_u *)&p_tc, PV_TC,
-			    {(char_u *)"followic", (char_u *)"followic"} SCTX_INIT},
-    {"tagfunc",    "tfu",   P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
-#ifdef FEAT_EVAL
-			    (char_u *)&p_tfu, PV_TFU,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"taglength",   "tl",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_tl, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"tagrelative", "tr",   P_BOOL|P_VIM,
-			    (char_u *)&p_tr, PV_NONE,
-			    {(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,
-			    {
-#if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME)
-			    (char_u *)"./tags,./TAGS,tags,TAGS",
-#else
-			    (char_u *)"./tags,tags",
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"tagstack",    "tgst", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tgst, PV_NONE,
-			    {(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 *)DYNAMIC_TCL_DLL, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L} SCTX_INIT},
-    {"termbidi", "tbidi",   P_BOOL|P_VI_DEF,
-#ifdef FEAT_ARABIC
-			    (char_u *)&p_tbidi, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#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 *)"", (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 *)FALSE, (char_u *)FALSE}
-#else
-			    (char_u*)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)10000L, (char_u *)10000L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)NULL}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)NULL, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"terse",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_terse, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"textauto",    "ta",   P_BOOL|P_VIM,
-			    (char_u *)&p_ta, PV_NONE,
-			    {(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,
-			    {
-#ifdef USE_CRNL
-			    (char_u *)TRUE,
-#else
-			    (char_u *)FALSE,
-#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 *)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 *)"", (char_u *)0L} SCTX_INIT},
-    {"tildeop",	    "top",  P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_to, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"timeout",	    "to",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_timeout, PV_NONE,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"timeoutlen",  "tm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_tm, PV_NONE,
-			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
-    {"title",	    NULL,   P_BOOL|P_VI_DEF,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_title, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"titlelen",    NULL,   P_NUM|P_VI_DEF,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_titlelen, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)85L, (char_u *)0L} SCTX_INIT},
-    {"titleold",    NULL,   P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_titleold, PV_NONE,
-			    {(char_u *)N_("Thanks for flying Vim"),
-							       (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"titlestring", NULL,   P_STRING|P_VI_DEF|P_MLE,
-#ifdef FEAT_TITLE
-			    (char_u *)&p_titlestring, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(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 *)"icons,tooltips", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-			    {(char_u *)"small", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"ttimeoutlen", "ttm",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_ttm, PV_NONE,
-			    {(char_u *)-1L, (char_u *)0L} SCTX_INIT},
-    {"ttybuiltin",  "tbi",  P_BOOL|P_VI_DEF,
-			    (char_u *)&p_tbi, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"ttymouse",    "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF,
-#if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
-			    (char_u *)&p_ttym, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"ttyscroll",   "tsl",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_ttyscroll, PV_NONE,
-			    {(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 *)"", (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 *)".", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"undolevels",  "ul",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ul, PV_UL,
-			    {
-#if defined(UNIX) || defined(MSWIN) || defined(VMS)
-			    (char_u *)1000L,
-#else
-			    (char_u *)100L,
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"undoreload",  "ur",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ur, PV_NONE,
-			    { (char_u *)10000L, (char_u *)0L} SCTX_INIT},
-    {"updatecount", "uc",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_uc, PV_NONE,
-			    {(char_u *)200L, (char_u *)0L} SCTX_INIT},
-    {"updatetime",  "ut",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_ut, PV_NONE,
-			    {(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,
-			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)"", (char_u *)NULL}
-#endif
-			    SCTX_INIT},
-    {"verbose",	    "vbs",  P_NUM|P_VI_DEF,
-			    (char_u *)&p_verbose, PV_NONE,
-			    {(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 *)"", (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 *)DFLT_VDIR, (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"folds,options,cursor,curdir",
-								  (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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,
-#if defined(MSWIN)
-			    {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
-#else
-# ifdef AMIGA
-			    {(char_u *)"",
-				 (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
-# else
-			    {(char_u *)"", (char_u *)"'100,<50,s10,h"}
-# endif
-#endif
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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_NONE,
-			    {(char_u *)"", (char_u *)""}
-			    SCTX_INIT},
-    {"visualbell",  "vb",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_vb, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"w300",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"w1200",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"w9600",	    NULL,   P_NUM|P_VI_DEF,
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"warn",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_warn, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"whichwrap",   "ww",   P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST,
-			    (char_u *)&p_ww, PV_NONE,
-			    {(char_u *)"", (char_u *)"b,s"} SCTX_INIT},
-    {"wildchar",    "wc",   P_NUM|P_VIM,
-			    (char_u *)&p_wc, PV_NONE,
-			    {(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 *)0L, (char_u *)0L} SCTX_INIT},
-    {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_WILDIGN
-			    (char_u *)&p_wig, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
-			    (char_u *)&p_wic, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
-#ifdef FEAT_WILDMENU
-			    (char_u *)&p_wmnu, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
-			    {(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 *)"full", (char_u *)0L} SCTX_INIT},
-    {"wildoptions", "wop",  P_STRING|P_VI_DEF,
-			    (char_u *)&p_wop, PV_NONE,
-			    {(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 *)"menu", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(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 *)"", (char_u *)NULL}
-			    SCTX_INIT},
-    {"window",	    "wi",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_window, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"winheight",   "wh",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wh, PV_NONE,
-			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT,
-			    (char_u *)VAR_WIN, PV_WFW,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"winminheight", "wmh", P_NUM|P_VI_DEF,
-			    (char_u *)&p_wmh, PV_NONE,
-			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
-    {"winminwidth", "wmw", P_NUM|P_VI_DEF,
-			    (char_u *)&p_wmw, PV_NONE,
-			    {(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, {
-# ifdef _WIN64
-			    (char_u *)"winpty64.dll",
-# else
-			    (char_u *)"winpty32.dll",
-# endif
-				(char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
-			    SCTX_INIT},
-    {"winwidth",   "wiw",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wiw, PV_NONE,
-			    {(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 *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"wrapmargin",  "wm",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wm, PV_WM,
-			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
-    {"wrapscan",    "ws",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_ws, PV_NONE,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"write",	    NULL,   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_write, PV_NONE,
-			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
-    {"writeany",    "wa",   P_BOOL|P_VI_DEF,
-			    (char_u *)&p_wa, PV_NONE,
-			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
-    {"writebackup", "wb",   P_BOOL|P_VI_DEF|P_VIM,
-			    (char_u *)&p_wb, PV_NONE,
-			    {
-#ifdef FEAT_WRITEBACKUP
-			    (char_u *)TRUE,
-#else
-			    (char_u *)FALSE,
-#endif
-				(char_u *)0L} SCTX_INIT},
-    {"writedelay",  "wd",   P_NUM|P_VI_DEF,
-			    (char_u *)&p_wd, PV_NONE,
-			    {(char_u *)0L, (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 *)"", (char_u *)0L} SCTX_INIT},
-
-    p_term("t_AB", T_CAB)
-    p_term("t_AF", T_CAF)
-    p_term("t_AL", T_CAL)
-    p_term("t_al", T_AL)
-    p_term("t_bc", T_BC)
-    p_term("t_BE", T_BE)
-    p_term("t_BD", T_BD)
-    p_term("t_cd", T_CD)
-    p_term("t_ce", T_CE)
-    p_term("t_cl", T_CL)
-    p_term("t_cm", T_CM)
-    p_term("t_Ce", T_UCE)
-    p_term("t_Co", T_CCO)
-    p_term("t_CS", T_CCS)
-    p_term("t_Cs", T_UCS)
-    p_term("t_cs", T_CS)
-    p_term("t_CV", T_CSV)
-    p_term("t_da", T_DA)
-    p_term("t_db", T_DB)
-    p_term("t_DL", T_CDL)
-    p_term("t_dl", T_DL)
-    p_term("t_EC", T_CEC)
-    p_term("t_EI", T_CEI)
-    p_term("t_fs", T_FS)
-    p_term("t_GP", T_CGP)
-    p_term("t_IE", T_CIE)
-    p_term("t_IS", T_CIS)
-    p_term("t_ke", T_KE)
-    p_term("t_ks", T_KS)
-    p_term("t_le", T_LE)
-    p_term("t_mb", T_MB)
-    p_term("t_md", T_MD)
-    p_term("t_me", T_ME)
-    p_term("t_mr", T_MR)
-    p_term("t_ms", T_MS)
-    p_term("t_nd", T_ND)
-    p_term("t_op", T_OP)
-    p_term("t_RF", T_RFG)
-    p_term("t_RB", T_RBG)
-    p_term("t_RC", T_CRC)
-    p_term("t_RI", T_CRI)
-    p_term("t_Ri", T_SRI)
-    p_term("t_RS", T_CRS)
-    p_term("t_RT", T_CRT)
-    p_term("t_RV", T_CRV)
-    p_term("t_Sb", T_CSB)
-    p_term("t_SC", T_CSC)
-    p_term("t_se", T_SE)
-    p_term("t_Sf", T_CSF)
-    p_term("t_SH", T_CSH)
-    p_term("t_SI", T_CSI)
-    p_term("t_Si", T_SSI)
-    p_term("t_so", T_SO)
-    p_term("t_SR", T_CSR)
-    p_term("t_sr", T_SR)
-    p_term("t_ST", T_CST)
-    p_term("t_Te", T_STE)
-    p_term("t_te", T_TE)
-    p_term("t_ti", T_TI)
-    p_term("t_Ts", T_STS)
-    p_term("t_ts", T_TS)
-    p_term("t_u7", T_U7)
-    p_term("t_ue", T_UE)
-    p_term("t_us", T_US)
-    p_term("t_ut", T_UT)
-    p_term("t_vb", T_VB)
-    p_term("t_ve", T_VE)
-    p_term("t_vi", T_VI)
-    p_term("t_VS", T_CVS)
-    p_term("t_vs", T_VS)
-    p_term("t_WP", T_CWP)
-    p_term("t_WS", T_CWS)
-    p_term("t_xn", T_XN)
-    p_term("t_xs", T_XS)
-    p_term("t_ZH", T_CZH)
-    p_term("t_ZR", T_CZR)
-    p_term("t_8f", T_8F)
-    p_term("t_8b", T_8B)
-
-/* terminal key codes are not in here */
-
-    /* end marker */
-    {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
-};
-
-#define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption))
-
-static char *(p_ambw_values[]) = {"single", "double", NULL};
-static char *(p_bg_values[]) = {"light", "dark", NULL};
-static char *(p_nf_values[]) = {"bin", "octal", "hex", "alpha", NULL};
-static char *(p_ff_values[]) = {FF_UNIX, FF_DOS, FF_MAC, NULL};
-#ifdef FEAT_CRYPT
-static char *(p_cm_values[]) = {"zip", "blowfish", "blowfish2", NULL};
-#endif
-static char *(p_wop_values[]) = {"tagfile", NULL};
-#ifdef FEAT_WAK
-static char *(p_wak_values[]) = {"yes", "menu", "no", NULL};
-#endif
-static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
-static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
-static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
-static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
-#ifdef FEAT_BROWSE
-static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
-#endif
-static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
-static char *(p_debug_values[]) = {"msg", "throw", "beep", NULL};
-static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
-static char *(p_buftype_values[]) = {"nofile", "nowrite", "quickfix", "help", "terminal", "acwrite", "prompt", "popup", NULL};
-static char *(p_bufhidden_values[]) = {"hide", "unload", "delete", "wipe", NULL};
-static char *(p_bs_values[]) = {"indent", "eol", "start", NULL};
-#ifdef FEAT_FOLDING
-static char *(p_fdm_values[]) = {"manual", "expr", "marker", "indent", "syntax",
-# ifdef FEAT_DIFF
-				"diff",
-# endif
-				NULL};
-static char *(p_fcl_values[]) = {"all", NULL};
-#endif
-static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", "popup", "noinsert", "noselect", NULL};
-#ifdef BACKSLASH_IN_FILENAME
-static char *(p_csl_values[]) = {"slash", "backslash", NULL};
-#endif
-#ifdef FEAT_SIGNS
-static char *(p_scl_values[]) = {"yes", "no", "auto", "number", NULL};
-#endif
-#if defined(MSWIN) && defined(FEAT_TERMINAL)
-static char *(p_twt_values[]) = {"winpty", "conpty", "", NULL};
-#endif
-#ifdef FEAT_SYN_HL
-static char *(p_culopt_values[]) = {"line", "number", "both", NULL};
-#endif
+#include "optiondefs.h"
 
 static void set_options_default(int opt_flags);
 static void set_string_default_esc(char *name, char_u *val, int escape);
new file mode 100644
--- /dev/null
+++ b/src/optiondefs.h
@@ -0,0 +1,3205 @@
+/* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved	by Bram Moolenaar
+ *
+ * Do ":help uganda"  in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * optiondefs.h: option definitions
+ */
+
+// The options that are local to a window or buffer have "indir" set to one of
+// these values.  Special values:
+// PV_NONE: global option.
+// PV_WIN is added: window-local option
+// PV_BUF is added: buffer-local option
+// PV_BOTH is added: global option which also has a local value.
+#define PV_BOTH 0x1000
+#define PV_WIN  0x2000
+#define PV_BUF  0x4000
+#define PV_MASK 0x0fff
+#define OPT_WIN(x)  (idopt_T)(PV_WIN + (int)(x))
+#define OPT_BUF(x)  (idopt_T)(PV_BUF + (int)(x))
+#define OPT_BOTH(x) (idopt_T)(PV_BOTH + (int)(x))
+
+// Definition of the PV_ values for buffer-local options.
+// The BV_ values are defined in option.h.
+#define PV_AI		OPT_BUF(BV_AI)
+#define PV_AR		OPT_BOTH(OPT_BUF(BV_AR))
+#define PV_BKC		OPT_BOTH(OPT_BUF(BV_BKC))
+#define PV_BH		OPT_BUF(BV_BH)
+#define PV_BT		OPT_BUF(BV_BT)
+#ifdef FEAT_QUICKFIX
+# define PV_EFM		OPT_BOTH(OPT_BUF(BV_EFM))
+# define PV_GP		OPT_BOTH(OPT_BUF(BV_GP))
+# define PV_MP		OPT_BOTH(OPT_BUF(BV_MP))
+#endif
+#define PV_BIN		OPT_BUF(BV_BIN)
+#define PV_BL		OPT_BUF(BV_BL)
+#define PV_BOMB		OPT_BUF(BV_BOMB)
+#define PV_CI		OPT_BUF(BV_CI)
+#ifdef FEAT_CINDENT
+# define PV_CIN		OPT_BUF(BV_CIN)
+# define PV_CINK	OPT_BUF(BV_CINK)
+# define PV_CINO	OPT_BUF(BV_CINO)
+#endif
+#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+# define PV_CINW	OPT_BUF(BV_CINW)
+#endif
+#define PV_CM		OPT_BOTH(OPT_BUF(BV_CM))
+#ifdef FEAT_FOLDING
+# define PV_CMS		OPT_BUF(BV_CMS)
+#endif
+#ifdef FEAT_COMMENTS
+# define PV_COM		OPT_BUF(BV_COM)
+#endif
+#define PV_CPT		OPT_BUF(BV_CPT)
+#define PV_DICT	OPT_BOTH(OPT_BUF(BV_DICT))
+#define PV_TSR		OPT_BOTH(OPT_BUF(BV_TSR))
+#define PV_CSL		OPT_BUF(BV_CSL)
+#ifdef FEAT_COMPL_FUNC
+# define PV_CFU		OPT_BUF(BV_CFU)
+#endif
+#ifdef FEAT_FIND_ID
+# define PV_DEF		OPT_BOTH(OPT_BUF(BV_DEF))
+# define PV_INC		OPT_BOTH(OPT_BUF(BV_INC))
+#endif
+#define PV_EOL		OPT_BUF(BV_EOL)
+#define PV_FIXEOL	OPT_BUF(BV_FIXEOL)
+#define PV_EP		OPT_BOTH(OPT_BUF(BV_EP))
+#define PV_ET		OPT_BUF(BV_ET)
+#define PV_FENC		OPT_BUF(BV_FENC)
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+# define PV_BEXPR	OPT_BOTH(OPT_BUF(BV_BEXPR))
+#endif
+#define PV_FP		OPT_BOTH(OPT_BUF(BV_FP))
+#ifdef FEAT_EVAL
+# define PV_FEX		OPT_BUF(BV_FEX)
+#endif
+#define PV_FF		OPT_BUF(BV_FF)
+#define PV_FLP		OPT_BUF(BV_FLP)
+#define PV_FO		OPT_BUF(BV_FO)
+#define PV_FT		OPT_BUF(BV_FT)
+#define PV_IMI		OPT_BUF(BV_IMI)
+#define PV_IMS		OPT_BUF(BV_IMS)
+#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
+# define PV_INDE	OPT_BUF(BV_INDE)
+# define PV_INDK	OPT_BUF(BV_INDK)
+#endif
+#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
+# define PV_INEX	OPT_BUF(BV_INEX)
+#endif
+#define PV_INF		OPT_BUF(BV_INF)
+#define PV_ISK		OPT_BUF(BV_ISK)
+#ifdef FEAT_CRYPT
+# define PV_KEY		OPT_BUF(BV_KEY)
+#endif
+#ifdef FEAT_KEYMAP
+# define PV_KMAP	OPT_BUF(BV_KMAP)
+#endif
+#define PV_KP		OPT_BOTH(OPT_BUF(BV_KP))
+#ifdef FEAT_LISP
+# define PV_LISP	OPT_BUF(BV_LISP)
+# define PV_LW		OPT_BOTH(OPT_BUF(BV_LW))
+#endif
+#define PV_MENC		OPT_BOTH(OPT_BUF(BV_MENC))
+#define PV_MA		OPT_BUF(BV_MA)
+#define PV_ML		OPT_BUF(BV_ML)
+#define PV_MOD		OPT_BUF(BV_MOD)
+#define PV_MPS		OPT_BUF(BV_MPS)
+#define PV_NF		OPT_BUF(BV_NF)
+#ifdef FEAT_COMPL_FUNC
+# define PV_OFU		OPT_BUF(BV_OFU)
+#endif
+#define PV_PATH		OPT_BOTH(OPT_BUF(BV_PATH))
+#define PV_PI		OPT_BUF(BV_PI)
+#ifdef FEAT_TEXTOBJ
+# define PV_QE		OPT_BUF(BV_QE)
+#endif
+#define PV_RO		OPT_BUF(BV_RO)
+#ifdef FEAT_SMARTINDENT
+# define PV_SI		OPT_BUF(BV_SI)
+#endif
+#define PV_SN		OPT_BUF(BV_SN)
+#ifdef FEAT_SYN_HL
+# define PV_SMC		OPT_BUF(BV_SMC)
+# define PV_SYN		OPT_BUF(BV_SYN)
+#endif
+#ifdef FEAT_SPELL
+# define PV_SPC		OPT_BUF(BV_SPC)
+# define PV_SPF		OPT_BUF(BV_SPF)
+# define PV_SPL		OPT_BUF(BV_SPL)
+#endif
+#define PV_STS		OPT_BUF(BV_STS)
+#ifdef FEAT_SEARCHPATH
+# define PV_SUA		OPT_BUF(BV_SUA)
+#endif
+#define PV_SW		OPT_BUF(BV_SW)
+#define PV_SWF		OPT_BUF(BV_SWF)
+#ifdef FEAT_EVAL
+# define PV_TFU		OPT_BUF(BV_TFU)
+#endif
+#define PV_TAGS		OPT_BOTH(OPT_BUF(BV_TAGS))
+#define PV_TC		OPT_BOTH(OPT_BUF(BV_TC))
+#define PV_TS		OPT_BUF(BV_TS)
+#define PV_TW		OPT_BUF(BV_TW)
+#define PV_TX		OPT_BUF(BV_TX)
+#ifdef FEAT_PERSISTENT_UNDO
+# define PV_UDF		OPT_BUF(BV_UDF)
+#endif
+#define PV_WM		OPT_BUF(BV_WM)
+#ifdef FEAT_VARTABS
+# define PV_VSTS		OPT_BUF(BV_VSTS)
+# define PV_VTS		OPT_BUF(BV_VTS)
+#endif
+
+// Definition of the PV_ values for window-local options.
+// The WV_ values are defined in option.h.
+#define PV_LIST		OPT_WIN(WV_LIST)
+#ifdef FEAT_ARABIC
+# define PV_ARAB	OPT_WIN(WV_ARAB)
+#endif
+#ifdef FEAT_LINEBREAK
+# define PV_BRI		OPT_WIN(WV_BRI)
+# define PV_BRIOPT	OPT_WIN(WV_BRIOPT)
+#endif
+# define PV_WCR		OPT_WIN(WV_WCR)
+#ifdef FEAT_DIFF
+# define PV_DIFF	OPT_WIN(WV_DIFF)
+#endif
+#ifdef FEAT_FOLDING
+# define PV_FDC		OPT_WIN(WV_FDC)
+# define PV_FEN		OPT_WIN(WV_FEN)
+# define PV_FDI		OPT_WIN(WV_FDI)
+# define PV_FDL		OPT_WIN(WV_FDL)
+# define PV_FDM		OPT_WIN(WV_FDM)
+# define PV_FML		OPT_WIN(WV_FML)
+# define PV_FDN		OPT_WIN(WV_FDN)
+# ifdef FEAT_EVAL
+#  define PV_FDE	OPT_WIN(WV_FDE)
+#  define PV_FDT	OPT_WIN(WV_FDT)
+# endif
+# define PV_FMR		OPT_WIN(WV_FMR)
+#endif
+#ifdef FEAT_LINEBREAK
+# define PV_LBR		OPT_WIN(WV_LBR)
+#endif
+#define PV_NU		OPT_WIN(WV_NU)
+#define PV_RNU		OPT_WIN(WV_RNU)
+#ifdef FEAT_LINEBREAK
+# define PV_NUW		OPT_WIN(WV_NUW)
+#endif
+#if defined(FEAT_QUICKFIX)
+# define PV_PVW		OPT_WIN(WV_PVW)
+#endif
+#ifdef FEAT_RIGHTLEFT
+# define PV_RL		OPT_WIN(WV_RL)
+# define PV_RLC		OPT_WIN(WV_RLC)
+#endif
+#define PV_SCBIND	OPT_WIN(WV_SCBIND)
+#define PV_SCROLL	OPT_WIN(WV_SCROLL)
+#define PV_SISO		OPT_BOTH(OPT_WIN(WV_SISO))
+#define PV_SO		OPT_BOTH(OPT_WIN(WV_SO))
+#ifdef FEAT_SPELL
+# define PV_SPELL	OPT_WIN(WV_SPELL)
+#endif
+#ifdef FEAT_SYN_HL
+# define PV_CUC		OPT_WIN(WV_CUC)
+# define PV_CUL		OPT_WIN(WV_CUL)
+# define PV_CULOPT	OPT_WIN(WV_CULOPT)
+# define PV_CC		OPT_WIN(WV_CC)
+#endif
+#ifdef FEAT_STL_OPT
+# define PV_STL		OPT_BOTH(OPT_WIN(WV_STL))
+#endif
+#define PV_UL		OPT_BOTH(OPT_BUF(BV_UL))
+# define PV_WFH		OPT_WIN(WV_WFH)
+# define PV_WFW		OPT_WIN(WV_WFW)
+#define PV_WRAP		OPT_WIN(WV_WRAP)
+#define PV_CRBIND	OPT_WIN(WV_CRBIND)
+#ifdef FEAT_CONCEAL
+# define PV_COCU	OPT_WIN(WV_COCU)
+# define PV_COLE	OPT_WIN(WV_COLE)
+#endif
+#ifdef FEAT_TERMINAL
+# define PV_TWK		OPT_WIN(WV_TWK)
+# define PV_TWS		OPT_WIN(WV_TWS)
+# define PV_TWSL	OPT_BUF(BV_TWSL)
+#endif
+#ifdef FEAT_SIGNS
+# define PV_SCL		OPT_WIN(WV_SCL)
+#endif
+
+// WV_ and BV_ values get typecasted to this for the "indir" field
+typedef enum
+{
+    PV_NONE = 0,
+    PV_MAXVAL = 0xffff    // to avoid warnings for value out of range
+} idopt_T;
+
+// Options local to a window have a value local to a buffer and global to all
+// buffers.  Indicate this by setting "var" to VAR_WIN.
+#define VAR_WIN ((char_u *)-1)
+
+// These are the global values for options which are also local to a buffer.
+// Only to be used in option.c!
+static int	p_ai;
+static int	p_bin;
+static int	p_bomb;
+static char_u	*p_bh;
+static char_u	*p_bt;
+static int	p_bl;
+static int	p_ci;
+#ifdef FEAT_CINDENT
+static int	p_cin;
+static char_u	*p_cink;
+static char_u	*p_cino;
+#endif
+#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+static char_u	*p_cinw;
+#endif
+#ifdef FEAT_COMMENTS
+static char_u	*p_com;
+#endif
+#ifdef FEAT_FOLDING
+static char_u	*p_cms;
+#endif
+static char_u	*p_cpt;
+#ifdef FEAT_COMPL_FUNC
+static char_u	*p_cfu;
+static char_u	*p_ofu;
+#endif
+#ifdef FEAT_EVAL
+static char_u	*p_tfu;
+#endif
+static int	p_eol;
+static int	p_fixeol;
+static int	p_et;
+static char_u	*p_fenc;
+static char_u	*p_ff;
+static char_u	*p_fo;
+static char_u	*p_flp;
+static char_u	*p_ft;
+static long	p_iminsert;
+static long	p_imsearch;
+#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
+static char_u	*p_inex;
+#endif
+#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
+static char_u	*p_inde;
+static char_u	*p_indk;
+#endif
+#if defined(FEAT_EVAL)
+static char_u	*p_fex;
+#endif
+static int	p_inf;
+static char_u	*p_isk;
+#ifdef FEAT_CRYPT
+static char_u	*p_key;
+#endif
+#ifdef FEAT_LISP
+static int	p_lisp;
+#endif
+static int	p_ml;
+static int	p_ma;
+static int	p_mod;
+static char_u	*p_mps;
+static char_u	*p_nf;
+static int	p_pi;
+#ifdef FEAT_TEXTOBJ
+static char_u	*p_qe;
+#endif
+static int	p_ro;
+#ifdef FEAT_SMARTINDENT
+static int	p_si;
+#endif
+static int	p_sn;
+static long	p_sts;
+#if defined(FEAT_SEARCHPATH)
+static char_u	*p_sua;
+#endif
+static long	p_sw;
+static int	p_swf;
+#ifdef FEAT_SYN_HL
+static long	p_smc;
+static char_u	*p_syn;
+#endif
+#ifdef FEAT_SPELL
+static char_u	*p_spc;
+static char_u	*p_spf;
+static char_u	*p_spl;
+#endif
+static long	p_ts;
+static long	p_tw;
+static int	p_tx;
+#ifdef FEAT_PERSISTENT_UNDO
+static int	p_udf;
+#endif
+static long	p_wm;
+#ifdef FEAT_VARTABS
+static char_u	*p_vsts;
+static char_u	*p_vts;
+#endif
+#ifdef FEAT_KEYMAP
+static char_u	*p_keymap;
+#endif
+#ifdef FEAT_TERMINAL
+static long	p_twsl;		// 'termwinscroll'
+#endif
+
+// Saved values for when 'bin' is set.
+static int	p_et_nobin;
+static int	p_ml_nobin;
+static long	p_tw_nobin;
+static long	p_wm_nobin;
+
+// Saved values for when 'paste' is set
+static int	p_ai_nopaste;
+static int	p_et_nopaste;
+static long	p_sts_nopaste;
+static long	p_tw_nopaste;
+static long	p_wm_nopaste;
+#ifdef FEAT_VARTABS
+static char_u	*p_vsts_nopaste;
+#endif
+
+struct vimoption
+{
+    char	*fullname;	// full option name
+    char	*shortname;	// permissible abbreviation
+    long_u	flags;		// see below
+    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
+    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
+# define SCTX_INIT , {0, 0, 0, 1}
+#else
+# define SCTX_INIT
+#endif
+};
+
+#define VI_DEFAULT  0	    // def_val[VI_DEFAULT] is Vi default value
+#define VIM_DEFAULT 1	    // def_val[VIM_DEFAULT] is Vim default value
+
+//
+// Flags
+//
+#define P_BOOL		0x01	// the option is boolean
+#define P_NUM		0x02	// the option is numeric
+#define P_STRING	0x04	// the option is a string
+#define P_ALLOCED	0x08	// the string option is in allocated memory,
+				// must use free_string_option() when
+				// assigning new value. Not set if default is
+				// the same.
+#define P_EXPAND	0x10	// environment expansion.  NOTE: P_EXPAND can
+				// never be used for local or hidden options!
+#define P_NODEFAULT	0x40	// don't set to default value
+#define P_DEF_ALLOCED	0x80	// default value is in allocated memory, must
+				//  use vim_free() when assigning new value
+#define P_WAS_SET	0x100	// option has been set/reset
+#define P_NO_MKRC	0x200	// don't include in :mkvimrc output
+#define P_VI_DEF	0x400	// Use Vi default for Vim
+#define P_VIM		0x800	// Vim option, reset when 'cp' set
+
+				// when option changed, what to display:
+#define P_RSTAT		0x1000	// redraw status lines
+#define P_RWIN		0x2000	// redraw current window and recompute text
+#define P_RBUF		0x4000	// redraw current buffer and recompute text
+#define P_RALL		0x6000	// redraw all windows
+#define P_RCLR		0x7000	// clear and redraw all
+
+#define P_COMMA		 0x8000	 // comma separated list
+#define P_ONECOMMA	0x18000L // P_COMMA and cannot have two consecutive
+				 // commas
+#define P_NODUP		0x20000L // don't allow duplicate strings
+#define P_FLAGLIST	0x40000L // list of single-char flags
+
+#define P_SECURE	0x80000L // cannot change in modeline or secure mode
+#define P_GETTEXT      0x100000L // expand default value with _()
+#define P_NOGLOB       0x200000L // do not use local value for global vimrc
+#define P_NFNAME       0x400000L // only normal file name chars allowed
+#define P_INSECURE     0x800000L // option was set from a modeline
+#define P_PRI_MKRC    0x1000000L // priority for :mkvimrc (setting option has
+				 // side effects)
+#define P_NO_ML       0x2000000L // not allowed in modeline
+#define P_CURSWANT    0x4000000L // update curswant required; not needed when
+				 // there is a redraw flag
+#define P_NDNAME      0x8000000L // only normal dir name chars allowed
+#define P_RWINONLY   0x10000000L // only redraw current window
+#define P_MLE	     0x20000000L // under control of 'modelineexpr'
+
+#define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
+
+// 'isprint' for latin1 is also used for MS-Windows cp1252, where 0x80 is used
+// for the currency sign.
+#if defined(MSWIN)
+# define ISP_LATIN1 (char_u *)"@,~-255"
+#else
+# define ISP_LATIN1 (char_u *)"@,161-255"
+#endif
+
+# define HIGHLIGHT_INIT "8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC"
+
+// Default python version for pyx* commands
+#if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
+# define DEFAULT_PYTHON_VER	0
+#elif defined(FEAT_PYTHON3)
+# define DEFAULT_PYTHON_VER	3
+#elif defined(FEAT_PYTHON)
+# define DEFAULT_PYTHON_VER	2
+#else
+# define DEFAULT_PYTHON_VER	0
+#endif
+
+// used for 'cinkeys' and 'indentkeys'
+#define INDENTKEYS_DEFAULT (char_u *)"0{,0},0),0],:,0#,!^F,o,O,e"
+
+// options[] is initialized here.
+// The order of the options MUST be alphabetic for ":set all" and findoption().
+// All option names MUST start with a lowercase letter (for findoption()).
+// Exception: "t_" options are at the end.
+// The options with a NULL variable are 'hidden': a set command for them is
+// ignored and they are not printed.
+static struct vimoption options[] =
+{
+    {"aleph",	    "al",   P_NUM|P_VI_DEF|P_CURSWANT,
+#ifdef FEAT_RIGHTLEFT
+			    (char_u *)&p_aleph, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {
+#if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
+			    (char_u *)128L,
+#else
+			    (char_u *)224L,
+#endif
+					    (char_u *)0L} SCTX_INIT},
+    {"antialias",   "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
+#if defined(FEAT_GUI_MAC)
+			    (char_u *)&p_antialias, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)FALSE}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)FALSE}
+#endif
+			    SCTX_INIT},
+    {"arabic",	    "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
+#ifdef FEAT_ARABIC
+			    (char_u *)VAR_WIN, PV_ARAB,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"altkeymap",   "akm",  P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"single", (char_u *)0L}
+			    SCTX_INIT},
+    {"autochdir",  "acd",   P_BOOL|P_VI_DEF,
+#ifdef FEAT_AUTOCHDIR
+			    (char_u *)&p_acd, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"autoindent",  "ai",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_ai, PV_AI,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"autoprint",   "ap",   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"autoread",    "ar",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_ar, PV_AR,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"autowrite",   "aw",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_aw, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"autowriteall","awa",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_awa, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"background",  "bg",   P_STRING|P_VI_DEF|P_RCLR,
+			    (char_u *)&p_bg, PV_NONE,
+			    {
+#if (defined(MSWIN)) && !defined(FEAT_GUI)
+			    (char_u *)"dark",
+#else
+			    (char_u *)"light",
+#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 *)"", (char_u *)0L} SCTX_INIT},
+    {"backup",	    "bk",   P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_bk, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"backupcopy",  "bkc",  P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
+			    (char_u *)&p_bkc, PV_BKC,
+#ifdef UNIX
+			    {(char_u *)"yes", (char_u *)"auto"}
+#else
+			    {(char_u *)"auto", (char_u *)"auto"}
+#endif
+			    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 *)DFLT_BDIR, (char_u *)0L} SCTX_INIT},
+    {"backupext",   "bex",  P_STRING|P_VI_DEF|P_NFNAME,
+			    (char_u *)&p_bex, PV_NONE,
+			    {
+#ifdef VMS
+			    (char_u *)"_",
+#else
+			    (char_u *)"~",
+#endif
+					    (char_u *)0L} SCTX_INIT},
+    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_WILDIGN
+			    (char_u *)&p_bsk, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"balloondelay","bdlay",P_NUM|P_VI_DEF,
+#ifdef FEAT_BEVAL
+			    (char_u *)&p_bdlay, PV_NONE,
+			    {(char_u *)600L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)FALSE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"beautify",    "bf",   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L} SCTX_INIT},
+    {"binary",	    "bin",  P_BOOL|P_VI_DEF|P_RSTAT,
+			    (char_u *)&p_bin, PV_BIN,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"bioskey",	    "biosk",P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(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 *)" \t!@*-+;:,./?", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF
+						  |P_ONECOMMA|P_NODUP,
+#ifdef FEAT_LINEBREAK
+			    (char_u *)VAR_WIN, PV_BRIOPT,
+			    {(char_u *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"last", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+			    SCTX_INIT},
+    {"buflisted",   "bl",   P_BOOL|P_VI_DEF|P_NOGLOB,
+			    (char_u *)&p_bl, PV_BL,
+			    {(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 *)"", (char_u *)0L}
+			    SCTX_INIT},
+    {"casemap",	    "cmp",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+			    (char_u *)&p_cmp, PV_NONE,
+			    {(char_u *)"internal,keepascii", (char_u *)0L}
+			    SCTX_INIT},
+    {"cdpath",	    "cd",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
+#ifdef FEAT_SEARCHPATH
+			    (char_u *)&p_cdpath, PV_NONE,
+			    {(char_u *)",,", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"cedit",	    NULL,   P_STRING,
+#ifdef FEAT_CMDWIN
+			    (char_u *)&p_cedit, PV_NONE,
+			    {(char_u *)"", (char_u *)CTRL_F_STR}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"charconvert",  "ccv", P_STRING|P_VI_DEF|P_SECURE,
+#if defined(FEAT_EVAL)
+			    (char_u *)&p_ccv, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"cindent",	    "cin",  P_BOOL|P_VI_DEF|P_VIM,
+#ifdef FEAT_CINDENT
+			    (char_u *)&p_cin, PV_CIN,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"cinkeys",	    "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_CINDENT
+			    (char_u *)&p_cink, PV_CINK,
+			    {INDENTKEYS_DEFAULT, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"cinoptions",  "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_CINDENT
+			    (char_u *)&p_cino, PV_CINO,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"cinwords",    "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+			    (char_u *)&p_cinw, PV_CINW,
+			    {(char_u *)"if,else,while,do,for,switch",
+				(char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"clipboard",   "cb",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_CLIPBOARD
+			    (char_u *)&p_cb, PV_NONE,
+# ifdef FEAT_XCLIPBOARD
+			    {(char_u *)"autoselect,exclude:cons\\|linux",
+							       (char_u *)0L}
+# else
+			    {(char_u *)"", (char_u *)0L}
+# endif
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)1L, (char_u *)0L} SCTX_INIT},
+    {"cmdwinheight", "cwh", P_NUM|P_VI_DEF,
+#ifdef FEAT_CMDWIN
+			    (char_u *)&p_cwh, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)80L, (char_u *)0L} SCTX_INIT},
+    {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
+							  |P_NODUP|P_CURSWANT,
+#ifdef FEAT_COMMENTS
+			    (char_u *)&p_com, PV_COM,
+			    {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
+				(char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
+#ifdef FEAT_FOLDING
+			    (char_u *)&p_cms, PV_CMS,
+			    {(char_u *)"/*%s*/", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)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 *)".,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 *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)0L, (char_u *)0L}
+			    SCTX_INIT},
+    {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
+#ifdef FEAT_COMPL_FUNC
+			    (char_u *)&p_cfu, PV_CFU,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"menu,preview", (char_u *)0L}
+			    SCTX_INIT},
+    {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
+			    (char_u *)&p_cpp, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"conskey",	    "consk",P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"cpoptions",   "cpo",  P_STRING|P_VIM|P_RALL|P_FLAGLIST,
+			    (char_u *)&p_cpo, PV_NONE,
+			    {(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 *)"blowfish2", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"cscope", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"cursorbind",  "crb",  P_BOOL|P_VI_DEF,
+			    (char_u *)VAR_WIN, PV_CRBIND,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"cursorlineopt", "culopt", P_STRING|P_VI_DEF|P_RWIN,
+#ifdef FEAT_SYN_HL
+			    (char_u *)VAR_WIN, PV_CULOPT,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"both", (char_u *)0L} SCTX_INIT},
+    {"debug",	    NULL,   P_STRING|P_VI_DEF,
+			    (char_u *)&p_debug, PV_NONE,
+			    {(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 *)"^\\s*#\\s*define", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)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 *)"", (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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"internal,filler", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)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 *)"", (char_u *)0L} SCTX_INIT},
+    {"eadirection", "ead",  P_STRING|P_VI_DEF,
+			    (char_u *)&p_ead, PV_NONE,
+			    {(char_u *)"both", (char_u *)0L}
+			    SCTX_INIT},
+    {"edcompatible","ed",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_ed, PV_NONE,
+			    {(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 *)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 *)ENC_DFLT, (char_u *)0L}
+			    SCTX_INIT},
+    {"endofline",   "eol",  P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
+			    (char_u *)&p_eol, PV_EOL,
+			    {(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 *)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 *)"", (char_u *)0L} SCTX_INIT},
+    {"errorbells",  "eb",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_eb, PV_NONE,
+			    {(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 *)DFLT_ERRORFILE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DFLT_EFM, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"esckeys",	    "ek",   P_BOOL|P_VIM,
+			    (char_u *)&p_ek, PV_NONE,
+			    {(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 *)"", (char_u *)0L} SCTX_INIT},
+    {"expandtab",   "et",   P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_et, PV_ET,
+			    {(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 *)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 *)"", (char_u *)0L}
+			    SCTX_INIT},
+    {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA,
+			    (char_u *)&p_fencs, PV_NONE,
+			    {(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 *)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 *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
+			    SCTX_INIT},
+    {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
+			    (char_u *)&p_fic, PV_NONE,
+			    {
+#ifdef CASE_INSENSITIVE_FILENAME
+				    (char_u *)TRUE,
+#else
+				    (char_u *)FALSE,
+#endif
+					(char_u *)0L} SCTX_INIT},
+    {"filetype",    "ft",   P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
+			    (char_u *)&p_ft, PV_FT,
+			    {(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_NONE,
+			    {(char_u *)"vert:|,fold:-", (char_u *)0L}
+			    SCTX_INIT},
+    {"fixendofline",  "fixeol", P_BOOL|P_VI_DEF|P_RSTAT,
+			    (char_u *)&p_fixeol, PV_FIXEOL,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"fkmap",	    "fk",   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"flash",	    "fl",   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)TRUE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"0", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"#", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)0L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)-1L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"{{{,}}}", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"manual", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)1L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)20L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"block,hor,mark,percent,quickfix,search,tag,undo",
+						 (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"foldtext()", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)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 *)"^\\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 *)"", (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 *)TRUE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"graphic",	    "gr",   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DFLT_GREPFORMAT, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {
+# ifdef MSWIN
+			    // may be changed to "grep -n" in os_win32.c
+			    (char_u *)"findstr /n",
+# else
+#  ifdef UNIX
+			    // Add an extra file name so that grep will always
+			    // insert a file name in the match line.
+			    (char_u *)"grep -n $* /dev/null",
+#  else
+#   ifdef VMS
+			    (char_u *)"SEARCH/NUMBERS ",
+#   else
+			    (char_u *)"grep -n ",
+#   endif
+#  endif
+# endif
+			    (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {
+# 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",
+# else	// Win32 console
+				(char_u *)"n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block",
+# endif
+				    (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"guiheadroom", "ghr",  P_NUM|P_VI_DEF,
+#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+			    (char_u *)&p_ghr, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+# if defined(UNIX) && !defined(FEAT_GUI_MAC)
+			    {(char_u *)"aegimrLtT", (char_u *)0L}
+# else
+			    {(char_u *)"egmrLtT", (char_u *)0L}
+# endif
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"hardtabs",    "ht",   P_NUM|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DFLT_HELPFILE, (char_u *)0L}
+			    SCTX_INIT},
+    {"helpheight",  "hh",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_hh, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"hidden",	    "hid",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_hid, PV_NONE,
+			    {(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 *)HIGHLIGHT_INIT, (char_u *)0L}
+			    SCTX_INIT},
+    {"history",	    "hi",   P_NUM|P_VIM,
+			    (char_u *)&p_hi, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"icon",	    NULL,   P_BOOL|P_VI_DEF,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_icon, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"iconstring",  NULL,   P_STRING|P_VI_DEF|P_MLE,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_iconstring, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"ignorecase",  "ic",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_ic, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE,
+#if defined(FEAT_EVAL)
+			    (char_u *)&p_imaf, PV_NONE,
+			    {(char_u *)"", (char_u *)NULL}
+# else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"imcmdline",   "imc",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_imcmdline, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"imdisable",   "imd",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_imdisable, PV_NONE,
+#ifdef __sgi
+			    {(char_u *)TRUE, (char_u *)0L}
+#else
+			    {(char_u *)FALSE, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"iminsert",    "imi",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_iminsert, PV_IMI,
+			    {(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 *)B_IMODE_USE_INSERT, (char_u *)0L}
+			    SCTX_INIT},
+    {"imstatusfunc","imsf",P_STRING|P_VI_DEF|P_SECURE,
+#if defined(FEAT_EVAL)
+			    (char_u *)&p_imsf, PV_NONE,
+			    {(char_u *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)IM_OVER_THE_SPOT, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"^\\s*#\\s*include", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"indentexpr", "inde",  P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
+#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
+			    (char_u *)&p_inde, PV_INDE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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_CINDENT) && defined(FEAT_EVAL)
+			    (char_u *)&p_indk, PV_INDK,
+			    {INDENTKEYS_DEFAULT, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"infercase",   "inf",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_inf, PV_INF,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"isfname",	    "isf",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+			    (char_u *)&p_isf, PV_NONE,
+			    {
+#ifdef BACKSLASH_IN_FILENAME
+				// Excluded are: & and ^ are special in cmd.exe
+				// ( and ) are used in text separating fnames
+			    (char_u *)"@,48-57,/,\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=",
+#else
+# ifdef AMIGA
+			    (char_u *)"@,48-57,/,.,-,_,+,,,$,:",
+# else
+#  ifdef VMS
+			    (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~",
+#  else // UNIX et al.
+#   ifdef EBCDIC
+			    (char_u *)"@,240-249,/,.,-,_,+,,,#,$,%,~,=",
+#   else
+			    (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,~,=",
+#   endif
+#  endif
+# endif
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"isident",	    "isi",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+			    (char_u *)&p_isi, PV_NONE,
+			    {
+#if defined(MSWIN)
+			    (char_u *)"@,48-57,_,128-167,224-235",
+#else
+# ifdef EBCDIC
+			    // TODO: EBCDIC Check this! @ == isalpha()
+			    (char_u *)"@,240-249,_,66-73,81-89,98-105,"
+				    "112-120,128,140-142,156,158,172,"
+				    "174,186,191,203-207,219-225,235-239,"
+				    "251-254",
+# else
+			    (char_u *)"@,48-57,_,192-255",
+# endif
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"iskeyword",   "isk",  P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP,
+			    (char_u *)&p_isk, PV_ISK,
+			    {
+#ifdef EBCDIC
+			     (char_u *)"@,240-249,_",
+			     // TODO: EBCDIC Check this! @ == isalpha()
+			     (char_u *)"@,240-249,_,66-73,81-89,98-105,"
+				    "112-120,128,140-142,156,158,172,"
+				    "174,186,191,203-207,219-225,235-239,"
+				    "251-254",
+#else
+				(char_u *)"@,48-57,_",
+# if defined(MSWIN)
+				(char_u *)"@,48-57,_,128-167,224-235"
+# else
+				ISK_LATIN1
+# endif
+#endif
+			    } SCTX_INIT},
+    {"isprint",	    "isp",  P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
+			    (char_u *)&p_isp, PV_NONE,
+			    {
+#if defined(MSWIN) || defined(VMS)
+			    (char_u *)"@,~-255",
+#else
+# ifdef EBCDIC
+			    // all chars above 63 are printable
+			    (char_u *)"63-255",
+# else
+			    ISP_LATIN1,
+# endif
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"joinspaces",  "js",   P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_js, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L} SCTX_INIT},
+    {"keywordprg",  "kp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_kp, PV_KP,
+			    {
+#ifdef MSWIN
+			    (char_u *)":help",
+#else
+# ifdef VMS
+			    (char_u *)"help",
+# else
+#  ifdef USEMAN_S
+			    (char_u *)"man -s",
+#  else
+			    (char_u *)"man",
+#  endif
+# endif
+#endif
+				(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"langnoremap",  "lnr",   P_BOOL|P_VI_DEF,
+#ifdef FEAT_LANGMAP
+			    (char_u *)&p_lnr, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)1L, (char_u *)0L} SCTX_INIT},
+    {"lazyredraw",  "lz",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_lz, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+			    {
+#if defined(MSWIN)
+			    (char_u *)25L,
+#else
+			    (char_u *)24L,
+#endif
+					    (char_u *)0L} SCTX_INIT},
+    {"linespace",   "lsp",  P_NUM|P_VI_DEF|P_RCLR,
+#ifdef FEAT_GUI
+			    (char_u *)&p_linespace, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+#ifdef FEAT_GUI_MSWIN
+			    {(char_u *)1L, (char_u *)0L}
+#else
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"lisp",	    NULL,   P_BOOL|P_VI_DEF,
+#ifdef FEAT_LISP
+			    (char_u *)&p_lisp, PV_LISP,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"lispwords",   "lw",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_LISP
+			    (char_u *)&p_lispwords, PV_LW,
+			    {(char_u *)LISPWORD_VALUE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"list",	    NULL,   P_BOOL|P_VI_DEF|P_RWIN,
+			    (char_u *)VAR_WIN, PV_LIST,
+			    {(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_NONE,
+			    {(char_u *)"eol:$", (char_u *)0L} SCTX_INIT},
+    {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_lpl, PV_NONE,
+			    {(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 *)DYNAMIC_LUA_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"macatsui",    NULL,   P_BOOL|P_VI_DEF|P_RCLR,
+#ifdef FEAT_GUI_MAC
+			    (char_u *)&p_macatsui, PV_NONE,
+			    {(char_u *)TRUE, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"magic",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_magic, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"makeencoding","menc", P_STRING|P_VI_DEF,
+			    (char_u *)&p_menc, PV_MENC,
+			    {(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,
+# 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, (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 *)"(:),{:},[:]", (char_u *)0L}
+			    SCTX_INIT},
+    {"matchtime",   "mat",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_mat, PV_NONE,
+			    {(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 *)2, (char_u *)0L} SCTX_INIT},
+    {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF,
+#ifdef FEAT_EVAL
+			    (char_u *)&p_mfd, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)100L, (char_u *)0L} SCTX_INIT},
+    {"maxmapdepth", "mmd",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_mmd, PV_NONE,
+			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
+    {"maxmem",	    "mm",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_mm, PV_NONE,
+			    {(char_u *)DFLT_MAXMEM, (char_u *)0L}
+			    SCTX_INIT},
+    {"maxmempattern","mmp", P_NUM|P_VI_DEF,
+			    (char_u *)&p_mmp, PV_NONE,
+			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
+    {"maxmemtot",   "mmt",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_mmt, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)25L, (char_u *)0L} SCTX_INIT},
+    {"mesg",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"460000,2000,500", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"modeline",    "ml",   P_BOOL|P_VIM,
+			    (char_u *)&p_ml, PV_ML,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"modelines",   "mls",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_mls, PV_NONE,
+			    {(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 *)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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"more",	    NULL,   P_BOOL|P_VIM,
+			    (char_u *)&p_more, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
+    {"mouse",	    NULL,   P_STRING|P_VI_DEF|P_FLAGLIST,
+			    (char_u *)&p_mouse, PV_NONE,
+			    {
+#if defined(MSWIN)
+				(char_u *)"a",
+#else
+				(char_u *)"",
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"mousefocus",   "mousef", P_BOOL|P_VI_DEF,
+#ifdef FEAT_GUI
+			    (char_u *)&p_mousef, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"mousemodel",  "mousem", P_STRING|P_VI_DEF,
+			    (char_u *)&p_mousem, PV_NONE,
+			    {
+#if defined(MSWIN)
+				(char_u *)"popup",
+#else
+# if defined(MACOS_X)
+				(char_u *)"popup_setpos",
+# else
+				(char_u *)"extend",
+# endif
+#endif
+				(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,
+			    {(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, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"mousetime",   "mouset",	P_NUM|P_VI_DEF,
+			    (char_u *)&p_mouset, PV_NONE,
+			    {(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 *)DYNAMIC_MZSCH_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DYNAMIC_MZGC_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"mzquantum",  "mzq",   P_NUM,
+#ifdef FEAT_MZSCHEME
+			    (char_u *)&p_mzq, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)100L, (char_u *)100L} SCTX_INIT},
+    {"novice",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"bin,octal,hex", (char_u *)0L}
+			    SCTX_INIT},
+    {"number",	    "nu",   P_BOOL|P_VI_DEF|P_RWIN,
+			    (char_u *)VAR_WIN, PV_NU,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)8L, (char_u *)4L} SCTX_INIT},
+    {"omnifunc",    "ofu",  P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
+#ifdef FEAT_COMPL_FUNC
+			    (char_u *)&p_ofu, PV_OFU,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"open",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"opendevice",  "odev", P_BOOL|P_VI_DEF,
+#if defined(MSWIN)
+			    (char_u *)&p_odev, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)FALSE}
+			    SCTX_INIT},
+    {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_opfunc, PV_NONE,
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"optimize",    "opt",  P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"osfiletype",  "oft",  P_STRING|P_ALLOCED|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DFLT_RUNTIMEPATH, (char_u *)0L}
+			    SCTX_INIT},
+    {"paragraphs",  "para", P_STRING|P_VI_DEF,
+			    (char_u *)&p_para, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"pastetoggle", "pt",   P_STRING|P_VI_DEF,
+			    (char_u *)&p_pt, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"patchmode",   "pm",   P_STRING|P_VI_DEF|P_NFNAME,
+			    (char_u *)&p_pm, PV_NONE,
+			    {(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,
+			    {
+#if defined(AMIGA) || defined(MSWIN)
+			    (char_u *)".,,",
+#else
+			    (char_u *)".,/usr/include,,",
+#endif
+				(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 *)DYNAMIC_PERL_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"previewheight", "pvh", P_NUM|P_VI_DEF,
+#if defined(FEAT_QUICKFIX)
+			    (char_u *)&p_pvh, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)12L, (char_u *)0L} SCTX_INIT},
+    {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+#ifdef FEAT_TEXT_PROP
+			    (char_u *)&p_pvp, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {
+# ifdef MSWIN
+				(char_u *)"Courier_New:h10",
+# else
+				(char_u *)"courier",
+# endif
+				(char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    // 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, (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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"prompt",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_prompt, PV_NONE,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"pumheight",   "ph",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_ph, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"pumwidth",    "pw",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_pw, PV_NONE,
+			    {(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 *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)DEFAULT_PYTHON_VER, (char_u *)0L}
+			    SCTX_INIT},
+    {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
+#ifdef FEAT_TEXTOBJ
+			    (char_u *)&p_qe, PV_QE,
+			    {(char_u *)"\\", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"readonly",    "ro",   P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
+			    (char_u *)&p_ro, PV_RO,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"redraw",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"redrawtime",  "rdt",  P_NUM|P_VI_DEF,
+#ifdef FEAT_RELTIME
+			    (char_u *)&p_rdt, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)2000L, (char_u *)0L} SCTX_INIT},
+    {"regexpengine", "re",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_re, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
+			    (char_u *)VAR_WIN, PV_RNU,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"remap",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_remap, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"report",	    NULL,   P_NUM|P_VI_DEF,
+			    (char_u *)&p_report, PV_NONE,
+			    {(char_u *)2L, (char_u *)0L} SCTX_INIT},
+    {"restorescreen", "rs", P_BOOL|P_VI_DEF,
+#ifdef MSWIN
+			    (char_u *)&p_rs, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"search", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)DYNAMIC_RUBY_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"ruler",	    "ru",   P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
+#ifdef FEAT_CMDL_INFO
+			    (char_u *)&p_ru, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)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 *)0L, (char_u *)0L} SCTX_INIT},
+    {"scrollbind",  "scb",  P_BOOL|P_VI_DEF,
+			    (char_u *)VAR_WIN, PV_SCBIND,
+			    {(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 *)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 *)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 *)"ver,jump", (char_u *)0L}
+			    SCTX_INIT},
+    {"sections",    "sect", P_STRING|P_VI_DEF,
+			    (char_u *)&p_sections, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"selection",   "sel",  P_STRING|P_VI_DEF,
+			    (char_u *)&p_sel, PV_NONE,
+			    {(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 *)"", (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,
+	 {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal",
+							       (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {
+#ifdef VMS
+			    (char_u *)"-",
+#else
+# if defined(MSWIN)
+			    (char_u *)"",	// set in set_init_1()
+# else
+			    (char_u *)"sh",
+# endif
+#endif // VMS
+				(char_u *)0L} SCTX_INIT},
+    {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_shcf, PV_NONE,
+			    {
+#if defined(MSWIN)
+			    (char_u *)"/c",
+#else
+			    (char_u *)"-c",
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"shellpipe",   "sp",   P_STRING|P_VI_DEF|P_SECURE,
+#ifdef FEAT_QUICKFIX
+			    (char_u *)&p_sp, PV_NONE,
+			    {
+#if defined(UNIX)
+			    (char_u *)"| tee",
+#else
+			    (char_u *)">",
+#endif
+				(char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L} SCTX_INIT},
+    {"shellredir",  "srr",  P_STRING|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_srr, PV_NONE,
+			    {(char_u *)">", (char_u *)0L} SCTX_INIT},
+    {"shellslash",  "ssl",   P_BOOL|P_VI_DEF,
+#ifdef BACKSLASH_IN_FILENAME
+			    (char_u *)&p_ssl, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"shelltemp",   "stmp", P_BOOL,
+			    (char_u *)&p_stmp, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
+    {"shelltype",   "st",   P_NUM|P_VI_DEF,
+#ifdef AMIGA
+			    (char_u *)&p_st, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"shellxquote", "sxq",  P_STRING|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_sxq, PV_NONE,
+			    {
+#if defined(UNIX) && defined(USE_SYSTEM)
+			    (char_u *)"\"",
+#else
+			    (char_u *)"",
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
+			    (char_u *)&p_sxe, PV_NONE,
+			    {
+#if defined(MSWIN)
+			    (char_u *)"\"&|<>()@^",
+#else
+			    (char_u *)"",
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"shiftround",  "sr",   P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_sr, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"shiftwidth",  "sw",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_sw, PV_SW,
+			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
+    {"shortmess",   "shm",  P_STRING|P_VIM|P_FLAGLIST,
+			    (char_u *)&p_shm, PV_NONE,
+			    {(char_u *)"S", (char_u *)"filnxtToOS"}
+			    SCTX_INIT},
+    {"shortname",   "sn",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_sn, PV_SN,
+			    {(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_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"showcmd",	    "sc",   P_BOOL|P_VIM,
+#ifdef FEAT_CMDL_INFO
+			    (char_u *)&p_sc, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE,
+#ifdef UNIX
+				(char_u *)FALSE
+#else
+				(char_u *)TRUE
+#endif
+				} SCTX_INIT},
+    {"showfulltag", "sft",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_sft, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"showmatch",   "sm",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_sm, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"showmode",    "smd",  P_BOOL|P_VIM,
+			    (char_u *)&p_smd, PV_NONE,
+			    {(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 *)1L, (char_u *)0L} SCTX_INIT},
+    {"sidescroll",  "ss",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_ss, PV_NONE,
+			    {(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 *)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 *)"auto", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"slowopen",    "slow", P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"smartindent", "si",   P_BOOL|P_VI_DEF|P_VIM,
+#ifdef FEAT_SMARTINDENT
+			    (char_u *)&p_si, PV_SI,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"softtabstop", "sts",  P_NUM|P_VI_DEF|P_VIM,
+			    (char_u *)&p_sts, PV_STS,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"sourceany",   NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"[.?!]\\_[\\])'\"	 ]\\+", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"en", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"best", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"splitbelow",  "sb",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_sb, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"splitright",  "spr",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_spr, PV_NONE,
+			    {(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 *)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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)".bak,~,.o,.h,.info,.swp,.obj",
+				(char_u *)0L} SCTX_INIT},
+    {"suffixesadd", "sua",  P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_SEARCHPATH
+			    (char_u *)&p_sua, PV_SUA,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"swapfile",    "swf",  P_BOOL|P_VI_DEF|P_RSTAT,
+			    (char_u *)&p_swf, PV_SWF,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"swapsync",    "sws",  P_STRING|P_VI_DEF,
+			    (char_u *)&p_sws, PV_NONE,
+			    {(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 *)"", (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 *)3000L, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"tabpagemax",  "tpm",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_tpm, PV_NONE,
+			    {(char_u *)10L, (char_u *)0L} SCTX_INIT},
+    {"tabstop",	    "ts",   P_NUM|P_VI_DEF|P_RBUF,
+			    (char_u *)&p_ts, PV_TS,
+			    {(char_u *)8L, (char_u *)0L} SCTX_INIT},
+    {"tagbsearch",  "tbs",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_tbs, PV_NONE,
+#ifdef VMS	// binary searching doesn't appear to work on VMS
+			    {(char_u *)0L, (char_u *)0L}
+#else
+			    {(char_u *)TRUE, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"tagcase",	    "tc",   P_STRING|P_VIM,
+			    (char_u *)&p_tc, PV_TC,
+			    {(char_u *)"followic", (char_u *)"followic"} SCTX_INIT},
+    {"tagfunc",    "tfu",   P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
+#ifdef FEAT_EVAL
+			    (char_u *)&p_tfu, PV_TFU,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"taglength",   "tl",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_tl, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"tagrelative", "tr",   P_BOOL|P_VIM,
+			    (char_u *)&p_tr, PV_NONE,
+			    {(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,
+			    {
+#if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME)
+			    (char_u *)"./tags,./TAGS,tags,TAGS",
+#else
+			    (char_u *)"./tags,tags",
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"tagstack",    "tgst", P_BOOL|P_VI_DEF,
+			    (char_u *)&p_tgst, PV_NONE,
+			    {(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 *)DYNAMIC_TCL_DLL, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L} SCTX_INIT},
+    {"termbidi", "tbidi",   P_BOOL|P_VI_DEF,
+#ifdef FEAT_ARABIC
+			    (char_u *)&p_tbidi, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#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 *)"", (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 *)FALSE, (char_u *)FALSE}
+#else
+			    (char_u*)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)10000L, (char_u *)10000L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)NULL}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"terse",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_terse, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"textauto",    "ta",   P_BOOL|P_VIM,
+			    (char_u *)&p_ta, PV_NONE,
+			    {(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,
+			    {
+#ifdef USE_CRNL
+			    (char_u *)TRUE,
+#else
+			    (char_u *)FALSE,
+#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 *)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 *)"", (char_u *)0L} SCTX_INIT},
+    {"tildeop",	    "top",  P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_to, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"timeout",	    "to",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_timeout, PV_NONE,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"timeoutlen",  "tm",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_tm, PV_NONE,
+			    {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
+    {"title",	    NULL,   P_BOOL|P_VI_DEF,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_title, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"titlelen",    NULL,   P_NUM|P_VI_DEF,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_titlelen, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)85L, (char_u *)0L} SCTX_INIT},
+    {"titleold",    NULL,   P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_titleold, PV_NONE,
+			    {(char_u *)N_("Thanks for flying Vim"),
+							       (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"titlestring", NULL,   P_STRING|P_VI_DEF|P_MLE,
+#ifdef FEAT_TITLE
+			    (char_u *)&p_titlestring, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(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 *)"icons,tooltips", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+			    {(char_u *)"small", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"ttimeoutlen", "ttm",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_ttm, PV_NONE,
+			    {(char_u *)-1L, (char_u *)0L} SCTX_INIT},
+    {"ttybuiltin",  "tbi",  P_BOOL|P_VI_DEF,
+			    (char_u *)&p_tbi, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"ttymouse",    "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF,
+#if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
+			    (char_u *)&p_ttym, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"ttyscroll",   "tsl",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_ttyscroll, PV_NONE,
+			    {(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 *)"", (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 *)".", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"undolevels",  "ul",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_ul, PV_UL,
+			    {
+#if defined(UNIX) || defined(MSWIN) || defined(VMS)
+			    (char_u *)1000L,
+#else
+			    (char_u *)100L,
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"undoreload",  "ur",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_ur, PV_NONE,
+			    { (char_u *)10000L, (char_u *)0L} SCTX_INIT},
+    {"updatecount", "uc",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_uc, PV_NONE,
+			    {(char_u *)200L, (char_u *)0L} SCTX_INIT},
+    {"updatetime",  "ut",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_ut, PV_NONE,
+			    {(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,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)"", (char_u *)NULL}
+#endif
+			    SCTX_INIT},
+    {"verbose",	    "vbs",  P_NUM|P_VI_DEF,
+			    (char_u *)&p_verbose, PV_NONE,
+			    {(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 *)"", (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 *)DFLT_VDIR, (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"folds,options,cursor,curdir",
+								  (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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,
+#if defined(MSWIN)
+			    {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
+#else
+# ifdef AMIGA
+			    {(char_u *)"",
+				 (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
+# else
+			    {(char_u *)"", (char_u *)"'100,<50,s10,h"}
+# endif
+#endif
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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_NONE,
+			    {(char_u *)"", (char_u *)""}
+			    SCTX_INIT},
+    {"visualbell",  "vb",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_vb, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"w300",	    NULL,   P_NUM|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"w1200",	    NULL,   P_NUM|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"w9600",	    NULL,   P_NUM|P_VI_DEF,
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"warn",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_warn, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"whichwrap",   "ww",   P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST,
+			    (char_u *)&p_ww, PV_NONE,
+			    {(char_u *)"", (char_u *)"b,s"} SCTX_INIT},
+    {"wildchar",    "wc",   P_NUM|P_VIM,
+			    (char_u *)&p_wc, PV_NONE,
+			    {(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 *)0L, (char_u *)0L} SCTX_INIT},
+    {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+#ifdef FEAT_WILDIGN
+			    (char_u *)&p_wig, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
+    {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
+			    (char_u *)&p_wic, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
+#ifdef FEAT_WILDMENU
+			    (char_u *)&p_wmnu, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(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 *)"full", (char_u *)0L} SCTX_INIT},
+    {"wildoptions", "wop",  P_STRING|P_VI_DEF,
+			    (char_u *)&p_wop, PV_NONE,
+			    {(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 *)"menu", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(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 *)"", (char_u *)NULL}
+			    SCTX_INIT},
+    {"window",	    "wi",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_window, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"winheight",   "wh",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_wh, PV_NONE,
+			    {(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 *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT,
+			    (char_u *)VAR_WIN, PV_WFW,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"winminheight", "wmh", P_NUM|P_VI_DEF,
+			    (char_u *)&p_wmh, PV_NONE,
+			    {(char_u *)1L, (char_u *)0L} SCTX_INIT},
+    {"winminwidth", "wmw", P_NUM|P_VI_DEF,
+			    (char_u *)&p_wmw, PV_NONE,
+			    {(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, {
+# ifdef _WIN64
+			    (char_u *)"winpty64.dll",
+# else
+			    (char_u *)"winpty32.dll",
+# endif
+				(char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    SCTX_INIT},
+    {"winwidth",   "wiw",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_wiw, PV_NONE,
+			    {(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 *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"wrapmargin",  "wm",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_wm, PV_WM,
+			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
+    {"wrapscan",    "ws",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_ws, PV_NONE,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"write",	    NULL,   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_write, PV_NONE,
+			    {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
+    {"writeany",    "wa",   P_BOOL|P_VI_DEF,
+			    (char_u *)&p_wa, PV_NONE,
+			    {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
+    {"writebackup", "wb",   P_BOOL|P_VI_DEF|P_VIM,
+			    (char_u *)&p_wb, PV_NONE,
+			    {
+#ifdef FEAT_WRITEBACKUP
+			    (char_u *)TRUE,
+#else
+			    (char_u *)FALSE,
+#endif
+				(char_u *)0L} SCTX_INIT},
+    {"writedelay",  "wd",   P_NUM|P_VI_DEF,
+			    (char_u *)&p_wd, PV_NONE,
+			    {(char_u *)0L, (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 *)"", (char_u *)0L} SCTX_INIT},
+
+    p_term("t_AB", T_CAB)
+    p_term("t_AF", T_CAF)
+    p_term("t_AL", T_CAL)
+    p_term("t_al", T_AL)
+    p_term("t_bc", T_BC)
+    p_term("t_BE", T_BE)
+    p_term("t_BD", T_BD)
+    p_term("t_cd", T_CD)
+    p_term("t_ce", T_CE)
+    p_term("t_cl", T_CL)
+    p_term("t_cm", T_CM)
+    p_term("t_Ce", T_UCE)
+    p_term("t_Co", T_CCO)
+    p_term("t_CS", T_CCS)
+    p_term("t_Cs", T_UCS)
+    p_term("t_cs", T_CS)
+    p_term("t_CV", T_CSV)
+    p_term("t_da", T_DA)
+    p_term("t_db", T_DB)
+    p_term("t_DL", T_CDL)
+    p_term("t_dl", T_DL)
+    p_term("t_EC", T_CEC)
+    p_term("t_EI", T_CEI)
+    p_term("t_fs", T_FS)
+    p_term("t_GP", T_CGP)
+    p_term("t_IE", T_CIE)
+    p_term("t_IS", T_CIS)
+    p_term("t_ke", T_KE)
+    p_term("t_ks", T_KS)
+    p_term("t_le", T_LE)
+    p_term("t_mb", T_MB)
+    p_term("t_md", T_MD)
+    p_term("t_me", T_ME)
+    p_term("t_mr", T_MR)
+    p_term("t_ms", T_MS)
+    p_term("t_nd", T_ND)
+    p_term("t_op", T_OP)
+    p_term("t_RF", T_RFG)
+    p_term("t_RB", T_RBG)
+    p_term("t_RC", T_CRC)
+    p_term("t_RI", T_CRI)
+    p_term("t_Ri", T_SRI)
+    p_term("t_RS", T_CRS)
+    p_term("t_RT", T_CRT)
+    p_term("t_RV", T_CRV)
+    p_term("t_Sb", T_CSB)
+    p_term("t_SC", T_CSC)
+    p_term("t_se", T_SE)
+    p_term("t_Sf", T_CSF)
+    p_term("t_SH", T_CSH)
+    p_term("t_SI", T_CSI)
+    p_term("t_Si", T_SSI)
+    p_term("t_so", T_SO)
+    p_term("t_SR", T_CSR)
+    p_term("t_sr", T_SR)
+    p_term("t_ST", T_CST)
+    p_term("t_Te", T_STE)
+    p_term("t_te", T_TE)
+    p_term("t_ti", T_TI)
+    p_term("t_Ts", T_STS)
+    p_term("t_ts", T_TS)
+    p_term("t_u7", T_U7)
+    p_term("t_ue", T_UE)
+    p_term("t_us", T_US)
+    p_term("t_ut", T_UT)
+    p_term("t_vb", T_VB)
+    p_term("t_ve", T_VE)
+    p_term("t_vi", T_VI)
+    p_term("t_VS", T_CVS)
+    p_term("t_vs", T_VS)
+    p_term("t_WP", T_CWP)
+    p_term("t_WS", T_CWS)
+    p_term("t_xn", T_XN)
+    p_term("t_xs", T_XS)
+    p_term("t_ZH", T_CZH)
+    p_term("t_ZR", T_CZR)
+    p_term("t_8f", T_8F)
+    p_term("t_8b", T_8B)
+
+// terminal key codes are not in here
+
+    // end marker
+    {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
+};
+
+#define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption))
+
+static char *(p_ambw_values[]) = {"single", "double", NULL};
+static char *(p_bg_values[]) = {"light", "dark", NULL};
+static char *(p_nf_values[]) = {"bin", "octal", "hex", "alpha", NULL};
+static char *(p_ff_values[]) = {FF_UNIX, FF_DOS, FF_MAC, NULL};
+#ifdef FEAT_CRYPT
+static char *(p_cm_values[]) = {"zip", "blowfish", "blowfish2", NULL};
+#endif
+static char *(p_wop_values[]) = {"tagfile", NULL};
+#ifdef FEAT_WAK
+static char *(p_wak_values[]) = {"yes", "menu", "no", NULL};
+#endif
+static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
+static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
+static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
+static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
+#ifdef FEAT_BROWSE
+static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
+#endif
+static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
+static char *(p_debug_values[]) = {"msg", "throw", "beep", NULL};
+static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
+static char *(p_buftype_values[]) = {"nofile", "nowrite", "quickfix", "help", "terminal", "acwrite", "prompt", "popup", NULL};
+static char *(p_bufhidden_values[]) = {"hide", "unload", "delete", "wipe", NULL};
+static char *(p_bs_values[]) = {"indent", "eol", "start", NULL};
+#ifdef FEAT_FOLDING
+static char *(p_fdm_values[]) = {"manual", "expr", "marker", "indent", "syntax",
+# ifdef FEAT_DIFF
+				"diff",
+# endif
+				NULL};
+static char *(p_fcl_values[]) = {"all", NULL};
+#endif
+static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", "popup", "noinsert", "noselect", NULL};
+#ifdef BACKSLASH_IN_FILENAME
+static char *(p_csl_values[]) = {"slash", "backslash", NULL};
+#endif
+#ifdef FEAT_SIGNS
+static char *(p_scl_values[]) = {"yes", "no", "auto", "number", NULL};
+#endif
+#if defined(MSWIN) && defined(FEAT_TERMINAL)
+static char *(p_twt_values[]) = {"winpty", "conpty", "", NULL};
+#endif
+#ifdef FEAT_SYN_HL
+static char *(p_culopt_values[]) = {"line", "number", "both", NULL};
+#endif
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2022,
+/**/
     2021,
 /**/
     2020,