diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-07-28 16:36:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-07-28 16:36:39 +0200 |
commit | ac3150d385e6e3f3fe76642aac3cda954d30583f (patch) | |
tree | 1ef511ccde68ed948d811eb04a69303d1ccea50c /src/option.c | |
parent | bca9c301936c9ba4ee67528f81393debf83844b9 (diff) | |
download | vim-git-ac3150d385e6e3f3fe76642aac3cda954d30583f.tar.gz |
patch 8.1.1769: 'shellslash' is also used for completionv8.1.1769
Problem: 'shellslash' is also used for completion.
Solution: Add the 'completeslash' option. (Yasuhiro Matsumoto, closes #3612)
Diffstat (limited to 'src/option.c')
-rw-r--r-- | src/option.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/option.c b/src/option.c index 3959d4711..fdad20551 100644 --- a/src/option.c +++ b/src/option.c @@ -88,6 +88,7 @@ # define PV_DICT OPT_BOTH(OPT_BUF(BV_DICT)) # define PV_TSR OPT_BOTH(OPT_BUF(BV_TSR)) #endif +#define PV_CSL OPT_BUF(BV_CSL) #ifdef FEAT_COMPL_FUNC # define PV_CFU OPT_BUF(BV_CFU) #endif @@ -892,6 +893,15 @@ static struct vimoption options[] = {(char_u *)0L, (char_u *)0L} #endif SCTX_INIT}, + {"completeslash", "csl", P_STRING|P_VI_DEF|P_VIM, +#if defined(FEAT_INS_EXPAND) && 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, @@ -3238,6 +3248,9 @@ static char *(p_fcl_values[]) = {"all", NULL}; #endif #ifdef FEAT_INS_EXPAND static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", "noinsert", "noselect", NULL}; +# ifdef BACKSLASH_IN_FILENAME +static char *(p_csl_values[]) = {"slash", "backslash", NULL}; +# endif #endif #ifdef FEAT_SIGNS static char *(p_scl_values[]) = {"yes", "no", "auto", "number", NULL}; @@ -7409,7 +7422,7 @@ did_set_string_option( } } - /* 'completeopt' */ + // 'completeopt' else if (varp == &p_cot) { if (check_opt_strings(p_cot, p_cot_values, TRUE) != OK) @@ -7417,7 +7430,16 @@ did_set_string_option( else completeopt_was_set(); } -#endif /* FEAT_INS_EXPAND */ + +# ifdef BACKSLASH_IN_FILENAME + // 'completeslash' + else if (varp == &curbuf->b_p_csl) + { + if (check_opt_strings(p_csl, p_csl_values, FALSE) != OK) + errmsg = e_invarg; + } +# endif +#endif // FEAT_INS_EXPAND #ifdef FEAT_SIGNS // 'signcolumn' @@ -11110,7 +11132,6 @@ get_varp(struct vimoption *p) #endif case PV_MENC: return *curbuf->b_p_menc != NUL ? (char_u *)&(curbuf->b_p_menc) : p->var; - #ifdef FEAT_ARABIC case PV_ARAB: return (char_u *)&(curwin->w_p_arab); #endif @@ -11197,6 +11218,9 @@ get_varp(struct vimoption *p) #endif #ifdef FEAT_INS_EXPAND case PV_CPT: return (char_u *)&(curbuf->b_p_cpt); +# ifdef BACKSLASH_IN_FILENAME + case PV_CSL: return (char_u *)&(curbuf->b_p_csl); +# endif #endif #ifdef FEAT_COMPL_FUNC case PV_CFU: return (char_u *)&(curbuf->b_p_cfu); @@ -11591,6 +11615,9 @@ buf_copy_options(buf_T *buf, int flags) buf->b_p_swf = cmdmod.noswapfile ? FALSE : p_swf; #ifdef FEAT_INS_EXPAND buf->b_p_cpt = vim_strsave(p_cpt); +# ifdef BACKSLASH_IN_FILENAME + buf->b_p_csl = vim_strsave(p_csl); +# endif #endif #ifdef FEAT_COMPL_FUNC buf->b_p_cfu = vim_strsave(p_cfu); |