]> granicus.if.org Git - vim/commitdiff
patch 7.4.749 v7.4.749
authorBram Moolenaar <Bram@vim.org>
Sat, 20 Jun 2015 13:30:03 +0000 (15:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 20 Jun 2015 13:30:03 +0000 (15:30 +0200)
Problem:    For some options two consecutive commas are OK. (Nikolay Pavlov)
Solution:   Add the P_ONECOMMA flag.

src/option.c
src/version.c

index a6ce0ac6334828aebcc031470dcbddae3687f406..aea7d823f600b8d9f2b82e346c922013dffbbc1f 100644 (file)
@@ -439,19 +439,21 @@ struct vimoption
 #define P_RALL         0x6000  /* redraw all windows */
 #define P_RCLR         0x7000  /* clear and redraw all */
 
-#define P_COMMA                0x8000  /* comma separated list */
-#define P_NODUP                0x10000L /* don't allow duplicate strings */
-#define P_FLAGLIST     0x20000L /* list of single-char flags */
-
-#define P_SECURE       0x40000L /* cannot change in modeline or secure mode */
-#define P_GETTEXT      0x80000L /* expand default value with _() */
-#define P_NOGLOB       0x100000L /* do not use local value for global vimrc */
-#define P_NFNAME       0x200000L /* only normal file name chars allowed */
-#define P_INSECURE     0x400000L /* option was set from a modeline */
-#define P_PRI_MKRC     0x800000L /* priority for :mkvimrc (setting option has
+#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       0x1000000L /* not allowed in modeline */
-#define P_CURSWANT    0x2000000L /* update curswant required; not needed when
+#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 ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
@@ -576,13 +578,13 @@ static struct vimoption
                            (char_u *)"light",
 #endif
                                            (char_u *)0L} SCRIPTID_INIT},
-    {"backspace",   "bs",   P_STRING|P_VI_DEF|P_VIM|P_COMMA|P_NODUP,
+    {"backspace",   "bs",   P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_bs, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
     {"backup",     "bk",   P_BOOL|P_VI_DEF|P_VIM,
                            (char_u *)&p_bk, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"backupcopy",  "bkc",  P_STRING|P_VIM|P_COMMA|P_NODUP,
+    {"backupcopy",  "bkc",  P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_bkc, PV_BKC,
 #ifdef UNIX
                            {(char_u *)"yes", (char_u *)"auto"}
@@ -590,7 +592,8 @@ static struct vimoption
                            {(char_u *)"auto", (char_u *)"auto"}
 #endif
                            SCRIPTID_INIT},
-    {"backupdir",   "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE,
+    {"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} SCRIPTID_INIT},
     {"backupext",   "bex",  P_STRING|P_VI_DEF|P_NFNAME,
@@ -602,7 +605,7 @@ static struct vimoption
                            (char_u *)"~",
 #endif
                                            (char_u *)0L} SCRIPTID_INIT},
-    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_COMMA,
+    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA,
 #ifdef FEAT_WILDIGN
                            (char_u *)&p_bsk, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
@@ -662,7 +665,8 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_COMMA|P_NODUP,
+    {"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}
@@ -702,7 +706,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"casemap",            "cmp",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"casemap",            "cmp",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_MBYTE
                            (char_u *)&p_cmp, PV_NONE,
                            {(char_u *)"internal,keepascii", (char_u *)0L}
@@ -745,7 +749,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"cinkeys",            "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"cinkeys",            "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_CINDENT
                            (char_u *)&p_cink, PV_CINK,
                            {(char_u *)"0{,0},0),:,0#,!^F,o,O,e", (char_u *)0L}
@@ -754,14 +758,14 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"cinoptions",  "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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} SCRIPTID_INIT},
-    {"cinwords",    "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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",
@@ -771,7 +775,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"clipboard",   "cb",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"clipboard",   "cb",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_CLIPBOARD
                            (char_u *)&p_cb, PV_NONE,
 # ifdef FEAT_XCLIPBOARD
@@ -795,7 +799,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)7L, (char_u *)0L} SCRIPTID_INIT},
-    {"colorcolumn", "cc",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN,
+    {"colorcolumn", "cc",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
 #ifdef FEAT_SYN_HL
                            (char_u *)VAR_WIN, PV_CC,
 #else
@@ -805,7 +809,8 @@ static struct vimoption
     {"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} SCRIPTID_INIT},
-    {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+    {"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:-",
@@ -829,7 +834,7 @@ static struct vimoption
     {"compatible",  "cp",   P_BOOL|P_RALL,
                            (char_u *)&p_cp, PV_NONE,
                            {(char_u *)TRUE, (char_u *)FALSE} SCRIPTID_INIT},
-    {"complete",    "cpt",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"complete",    "cpt",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_INS_EXPAND
                            (char_u *)&p_cpt, PV_CPT,
                            {(char_u *)".,w,b,u,t,i", (char_u *)0L}
@@ -864,7 +869,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"completeopt",   "cot",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"completeopt",   "cot",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_INS_EXPAND
                            (char_u *)&p_cot, PV_NONE,
                            {(char_u *)"menu,preview", (char_u *)0L}
@@ -919,7 +924,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -996,7 +1001,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"dictionary",  "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
+    {"dictionary",  "dict", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_INS_EXPAND
                            (char_u *)&p_dict, PV_DICT,
 #else
@@ -1019,7 +1024,8 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"diffopt",            "dip",  P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_COMMA|P_NODUP,
+    {"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 *)"filler", (char_u *)NULL}
@@ -1035,10 +1041,11 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"directory",   "dir",  P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE,
+    {"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} SCRIPTID_INIT},
-    {"display",            "dy",   P_STRING|P_VI_DEF|P_COMMA|P_RALL|P_NODUP,
+    {"display",            "dy",   P_STRING|P_VI_DEF|P_ONECOMMA|P_RALL|P_NODUP,
                            (char_u *)&p_dy, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
     {"eadirection", "ead",  P_STRING|P_VI_DEF,
@@ -1083,7 +1090,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"errorformat", "efm",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -1095,7 +1102,7 @@ static struct vimoption
     {"esckeys",            "ek",   P_BOOL|P_VIM,
                            (char_u *)&p_ek, PV_NONE,
                            {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT},
-    {"eventignore", "ei",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"eventignore", "ei",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_AUTOCMD
                            (char_u *)&p_ei, PV_NONE,
 #else
@@ -1108,7 +1115,8 @@ static struct vimoption
     {"exrc",       "ex",   P_BOOL|P_VI_DEF|P_SECURE,
                            (char_u *)&p_exrc, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF|P_NO_MKRC,
+    {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF
+                                                                  |P_NO_MKRC,
 #ifdef FEAT_MBYTE
                            (char_u *)&p_fenc, PV_FENC,
                            {(char_u *)"", (char_u *)0L}
@@ -1117,7 +1125,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"fileencodings","fencs", P_STRING|P_VI_DEF|P_COMMA,
+    {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA,
 #ifdef FEAT_MBYTE
                            (char_u *)&p_fencs, PV_NONE,
                            {(char_u *)"ucs-bom", (char_u *)0L}
@@ -1126,10 +1134,11 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"fileformat",  "ff",   P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC|P_CURSWANT,
+    {"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} SCRIPTID_INIT},
-    {"fileformats", "ffs",  P_STRING|P_VIM|P_COMMA|P_NODUP,
+    {"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}
                            SCRIPTID_INIT},
@@ -1151,7 +1160,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"fillchars",   "fcs",  P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
+    {"fillchars",   "fcs",  P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING)
                            (char_u *)&p_fcs, PV_NONE,
                            {(char_u *)"vert:|,fold:-", (char_u *)0L}
@@ -1171,7 +1180,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
 #ifdef FEAT_FOLDING
-    {"foldclose",   "fcl",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN,
+    {"foldclose",   "fcl",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
                            (char_u *)&p_fcl, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
     {"foldcolumn",  "fdc",  P_NUM|P_VI_DEF|P_RWIN,
@@ -1199,7 +1208,7 @@ static struct vimoption
                            (char_u *)&p_fdls, PV_NONE,
                            {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
     {"foldmarker",  "fmr",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
-                                                      P_RWIN|P_COMMA|P_NODUP,
+                                                   P_RWIN|P_ONECOMMA|P_NODUP,
                            (char_u *)VAR_WIN, PV_FMR,
                            {(char_u *)"{{{,}}}", (char_u *)NULL}
                            SCRIPTID_INIT},
@@ -1212,7 +1221,7 @@ static struct vimoption
     {"foldnestmax", "fdn",  P_NUM|P_VI_DEF|P_RWIN,
                            (char_u *)VAR_WIN, PV_FDN,
                            {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
-    {"foldopen",    "fdo",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+    {"foldopen",    "fdo",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_CURSWANT,
                            (char_u *)&p_fdo, PV_NONE,
                 {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
                                                 (char_u *)0L} SCRIPTID_INIT},
@@ -1261,7 +1270,7 @@ static struct vimoption
     {"graphic",            "gr",   P_BOOL|P_VI_DEF,
                            (char_u *)NULL, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"grepformat",  "gfm",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -1296,7 +1305,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"guicursor",    "gcr",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"guicursor",    "gcr",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef CURSOR_SHAPE
                            (char_u *)&p_guicursor, PV_NONE,
                            {
@@ -1311,7 +1320,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"guifont",            "gfn",  P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP,
+    {"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}
@@ -1320,7 +1329,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"guifontset",  "gfs",  P_STRING|P_VI_DEF|P_RCLR|P_COMMA,
+    {"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}
@@ -1329,7 +1338,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"guifontwide", "gfw",  P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP,
+    {"guifontwide", "gfw",  P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
 #if defined(FEAT_GUI) && defined(FEAT_MBYTE)
                            (char_u *)&p_guifontwide, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
@@ -1397,7 +1406,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
-    {"helplang",    "hlg",  P_STRING|P_VI_DEF|P_COMMA,
+    {"helplang",    "hlg",  P_STRING|P_VI_DEF|P_ONECOMMA,
 #ifdef FEAT_MULTI_LANG
                            (char_u *)&p_hlg, PV_NONE,
                            {(char_u *)"", (char_u *)0L}
@@ -1409,7 +1418,7 @@ static struct vimoption
     {"hidden",     "hid",  P_BOOL|P_VI_DEF,
                            (char_u *)&p_hid, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"highlight",   "hl",   P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP,
+    {"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}
                            SCRIPTID_INIT},
@@ -1540,7 +1549,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"indentkeys", "indk",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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,
                            {(char_u *)"0{,0},:,0#,!^F,o,O,e", (char_u *)0L}
@@ -1651,7 +1660,7 @@ static struct vimoption
                            {(char_u *)"", (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"keymodel",    "km",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"keymodel",    "km",   P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_km, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
     {"keywordprg",  "kp",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
@@ -1675,7 +1684,7 @@ static struct vimoption
 #endif
 #endif
                                (char_u *)0L} SCRIPTID_INIT},
-    {"langmap",     "lmap", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE,
+    {"langmap",     "lmap", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_SECURE,
 #ifdef FEAT_LANGMAP
                            (char_u *)&p_langmap, PV_NONE,
                            {(char_u *)"",      /* unmatched } */
@@ -1743,7 +1752,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"lispwords",   "lw",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -1755,7 +1764,7 @@ static struct vimoption
     {"list",       NULL,   P_BOOL|P_VI_DEF|P_RWIN,
                            (char_u *)VAR_WIN, PV_LIST,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"listchars",   "lcs",  P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
+    {"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} SCRIPTID_INIT},
     {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
@@ -1791,7 +1800,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"matchpairs",  "mps",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"matchpairs",  "mps",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_mps, PV_MPS,
                            {(char_u *)"(:),{:},[:]", (char_u *)0L}
                            SCRIPTID_INIT},
@@ -1896,7 +1905,7 @@ static struct vimoption
 # endif
 #endif
                                (char_u *)0L} SCRIPTID_INIT},
-    {"mouseshape",  "mouses",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -1918,7 +1927,7 @@ static struct vimoption
     {"novice",     NULL,   P_BOOL|P_VI_DEF,
                            (char_u *)NULL, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"nrformats",   "nf",   P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+    {"nrformats",   "nf",   P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_nf, PV_NF,
                            {(char_u *)"octal,hex", (char_u *)0L}
                            SCRIPTID_INIT},
@@ -2082,7 +2091,7 @@ static struct vimoption
                            {(char_u *)NULL, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"printoptions", "popt", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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}
@@ -2132,7 +2141,7 @@ static struct vimoption
     {"remap",      NULL,   P_BOOL|P_VI_DEF,
                            (char_u *)&p_remap, PV_NONE,
                            {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
-    {"renderoptions", "rop", P_STRING|P_COMMA|P_RCLR|P_VI_DEF,
+    {"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}
@@ -2188,7 +2197,8 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-    {"runtimepath", "rtp",  P_STRING|P_VI_DEF|P_EXPAND|P_COMMA|P_NODUP|P_SECURE,
+    {"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}
                            SCRIPTID_INIT},
@@ -2208,7 +2218,7 @@ static struct vimoption
     {"scrolloff",   "so",   P_NUM|P_VI_DEF|P_VIM|P_RALL,
                            (char_u *)&p_so, PV_NONE,
                            {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-    {"scrollopt",   "sbo",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"scrollopt",   "sbo",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_SCROLLBIND
                            (char_u *)&p_sbo, PV_NONE,
                            {(char_u *)"ver,jump", (char_u *)0L}
@@ -2228,10 +2238,10 @@ static struct vimoption
                            (char_u *)&p_sel, PV_NONE,
                            {(char_u *)"inclusive", (char_u *)0L}
                            SCRIPTID_INIT},
-    {"selectmode",  "slm",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"selectmode",  "slm",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_slm, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-    {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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",
@@ -2440,7 +2450,8 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"spellfile",   "spf",  P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE|P_COMMA,
+    {"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}
@@ -2449,7 +2460,8 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"spelllang",   "spl",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_RBUF|P_EXPAND,
+    {"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}
@@ -2458,7 +2470,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA,
+    {"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}
@@ -2491,11 +2503,11 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-    {"suffixes",    "su",   P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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} SCRIPTID_INIT},
-    {"suffixesadd", "sua",  P_STRING|P_VI_DEF|P_ALLOCED|P_COMMA|P_NODUP,
+    {"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}
@@ -2510,7 +2522,7 @@ static struct vimoption
     {"swapsync",    "sws",  P_STRING|P_VI_DEF,
                            (char_u *)&p_sws, PV_NONE,
                            {(char_u *)"fsync", (char_u *)0L} SCRIPTID_INIT},
-    {"switchbuf",   "swb",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"switchbuf",   "swb",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_swb, PV_NONE,
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
     {"synmaxcol",   "smc",  P_NUM|P_VI_DEF|P_RBUF,
@@ -2562,7 +2574,7 @@ static struct vimoption
     {"tagrelative", "tr",   P_BOOL|P_VIM,
                            (char_u *)&p_tr, PV_NONE,
                            {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT},
-    {"tags",       "tag",  P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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)
@@ -2612,7 +2624,7 @@ static struct vimoption
     {"textwidth",   "tw",   P_NUM|P_VI_DEF|P_VIM|P_RBUF,
                            (char_u *)&p_tw, PV_TW,
                            {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-    {"thesaurus",   "tsr",  P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
+    {"thesaurus",   "tsr",  P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_INS_EXPAND
                            (char_u *)&p_tsr, PV_TSR,
 #else
@@ -2660,7 +2672,7 @@ static struct vimoption
 #endif
                            {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
 #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32)
-    {"toolbar",     "tb",   P_STRING|P_COMMA|P_VI_DEF|P_NODUP,
+    {"toolbar",     "tb",   P_STRING|P_ONECOMMA|P_VI_DEF|P_NODUP,
                            (char_u *)&p_toolbar, PV_NONE,
                            {(char_u *)"icons,tooltips", (char_u *)0L}
                            SCRIPTID_INIT},
@@ -2695,7 +2707,8 @@ static struct vimoption
     {"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} SCRIPTID_INIT},
-    {"undodir",     "udir", P_STRING|P_EXPAND|P_COMMA|P_NODUP|P_SECURE|P_VI_DEF,
+    {"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}
@@ -2744,7 +2757,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"viewoptions", "vop",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"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", (char_u *)0L}
@@ -2753,7 +2766,7 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"viminfo",            "vi",   P_STRING|P_COMMA|P_NODUP|P_SECURE,
+    {"viminfo",            "vi",   P_STRING|P_ONECOMMA|P_NODUP|P_SECURE,
 #ifdef FEAT_VIMINFO
                            (char_u *)&p_viminfo, PV_NONE,
 #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
@@ -2771,7 +2784,8 @@ static struct vimoption
                            {(char_u *)0L, (char_u *)0L}
 #endif
                            SCRIPTID_INIT},
-    {"virtualedit", "ve",   P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM|P_CURSWANT,
+    {"virtualedit", "ve",   P_STRING|P_ONECOMMA|P_NODUP|P_VI_DEF
+                                                           |P_VIM|P_CURSWANT,
 #ifdef FEAT_VIRTUALEDIT
                            (char_u *)&p_ve, PV_NONE,
                            {(char_u *)"", (char_u *)""}
@@ -2798,7 +2812,7 @@ static struct vimoption
     {"weirdinvert", "wiv",  P_BOOL|P_VI_DEF|P_RCLR,
                            (char_u *)&p_wiv, PV_NONE,
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"whichwrap",   "ww",   P_STRING|P_VIM|P_COMMA|P_FLAGLIST,
+    {"whichwrap",   "ww",   P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST,
                            (char_u *)&p_ww, PV_NONE,
                            {(char_u *)"", (char_u *)"b,s"} SCRIPTID_INIT},
     {"wildchar",    "wc",   P_NUM|P_VIM,
@@ -2808,7 +2822,7 @@ static struct vimoption
     {"wildcharm",   "wcm",  P_NUM|P_VI_DEF,
                            (char_u *)&p_wcm, PV_NONE,
                            {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-    {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_WILDIGN
                            (char_u *)&p_wig, PV_NONE,
 #else
@@ -2825,7 +2839,7 @@ static struct vimoption
                            (char_u *)NULL, PV_NONE,
 #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-    {"wildmode",    "wim",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+    {"wildmode",    "wim",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
                            (char_u *)&p_wim, PV_NONE,
                            {(char_u *)"full", (char_u *)0L} SCRIPTID_INIT},
     {"wildoptions", "wop",  P_STRING|P_VI_DEF,
@@ -4830,7 +4844,8 @@ do_set(arg, opt_flags)
                                {
                                    i = (int)STRLEN(origval);
                                    /* strip a trailing comma, would get 2 */
-                                   if (comma && i > 1 && origval[i - 1] == ','
+                                   if (comma && (flags & P_ONECOMMA) && i > 1
+                                                   && origval[i - 1] == ','
                                                    && origval[i - 2] != '\\')
                                        i--;
                                    mch_memmove(newval + i + comma, newval,
index dfc2ed3c5ec54a6c71a32f3d3e943e266f8c8a9a..ac053e6f02271b3a55ea13483d9709269fcc661f 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    749,
 /**/
     748,
 /**/