]> granicus.if.org Git - vim/commitdiff
patch 8.1.2022: the option.c file is too big v8.1.2022
authorBram Moolenaar <Bram@vim.org>
Thu, 12 Sep 2019 20:26:43 +0000 (22:26 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 12 Sep 2019 20:26:43 +0000 (22:26 +0200)
Problem:    The option.c file is too big.
Solution:   Move option definitions to a separate file. (Yegappan Lakshmanan,
            closes #4918)

Filelist
src/Make_mvc.mak
src/Make_vms.mms
src/Makefile
src/option.c
src/optiondefs.h [new file with mode: 0644]
src/version.c

index 1ed1ecdc2101d0cccfb6e37ba1a3cf607cfee085..b40cea6ee8d5ac9d43e0d3ba3b2ecd85c34952a5 100644 (file)
--- 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 \
index ac02e809ac4cd90698393c677c9f2b86c64725ed..5c9553acf63e2ed3e75e5056ebd664505a1143a5 100644 (file)
@@ -1604,7 +1604,7 @@ $(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
 
 $(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)
 
index 607f5643520d02790fb8eb73223f743221a4dd86..c3b795820d3d0dc3e09bfc9da04e28ba5df19aa1 100644 (file)
@@ -714,7 +714,7 @@ ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h   \
 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 \
index 34198ea007b7e3e531b37fc4996249e46b6ca202..0efd88f70d684e86f6a72606c81c4c7084b53fe6 100644 (file)
@@ -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 auto/config.h feature.h os_unix.h \
 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 \
index 907036411504754ca45040bb2ded68e57a5fcbb9..c279acf13e83f8b13baa57a42115617c118c5e28 100644 (file)
 
 #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);
diff --git a/src/optiondefs.h b/src/optiondefs.h
new file mode 100644 (file)
index 0000000..3897fd7
--- /dev/null
@@ -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
index 7ac39204b67d510889cc4b86b2fab9cd45fe0690..e5070c6bdb1f2bf62a8bf3faa9ab47ff489aa6cb 100644 (file)
@@ -757,6 +757,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2022,
 /**/
     2021,
 /**/