aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/option.c
diff options
context:
space:
mode:
authorraichoo <raichoo@googlemail.com>2017-03-09 17:33:51 +0100
committerraichoo <raichoo@googlemail.com>2017-03-19 21:14:11 +0100
commit0f5c3f111ab130f5cbb5943082ea5e877c1c2f4c (patch)
tree6ef5b9a051b32a9e8577150f2ab05f993a0fe07d /src/nvim/option.c
parent2ad25c04663da7d08da94db84dc6ded7df11ea87 (diff)
downloadrneovim-0f5c3f111ab130f5cbb5943082ea5e877c1c2f4c.tar.gz
rneovim-0f5c3f111ab130f5cbb5943082ea5e877c1c2f4c.tar.bz2
rneovim-0f5c3f111ab130f5cbb5943082ea5e877c1c2f4c.zip
vim-patch:8.0.0179
Problem: 'formatprg' is a global option but the value may depend on the type of buffer. (Sung Pae) Solution: Make 'formatprg' global-local. (closes vim/vim#1380) https://github.com/vim/vim/commit/9be7c04e6cd5b0facedcb56b09a5bcfc339efe03
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r--src/nvim/option.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 2fae4aa848..2a17ca69d1 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -2150,6 +2150,7 @@ void check_buf_options(buf_T *buf)
check_string_option(&buf->b_p_inex);
check_string_option(&buf->b_p_inde);
check_string_option(&buf->b_p_indk);
+ check_string_option(&buf->b_p_fp);
check_string_option(&buf->b_p_fex);
check_string_option(&buf->b_p_kp);
check_string_option(&buf->b_p_mps);
@@ -5255,6 +5256,9 @@ void unset_global_local_option(char *name, void *from)
case PV_TSR:
clear_string_option(&buf->b_p_tsr);
break;
+ case PV_FP:
+ clear_string_option(&buf->b_p_fp);
+ break;
case PV_EFM:
clear_string_option(&buf->b_p_efm);
break;
@@ -5288,6 +5292,7 @@ static char_u *get_varp_scope(vimoption_T *p, int opt_flags)
}
if ((opt_flags & OPT_LOCAL) && ((int)p->indir & PV_BOTH)) {
switch ((int)p->indir) {
+ case PV_FP: return (char_u *)&(curbuf->b_p_fp);
case PV_EFM: return (char_u *)&(curbuf->b_p_efm);
case PV_GP: return (char_u *)&(curbuf->b_p_gp);
case PV_MP: return (char_u *)&(curbuf->b_p_mp);
@@ -5346,6 +5351,8 @@ static char_u *get_varp(vimoption_T *p)
? (char_u *)&(curbuf->b_p_dict) : p->var;
case PV_TSR: return *curbuf->b_p_tsr != NUL
? (char_u *)&(curbuf->b_p_tsr) : p->var;
+ case PV_FP: return *curbuf->b_p_fp != NUL
+ ? (char_u *)&(curbuf->b_p_fp) : p->var;
case PV_EFM: return *curbuf->b_p_efm != NUL
? (char_u *)&(curbuf->b_p_efm) : p->var;
case PV_GP: return *curbuf->b_p_gp != NUL
@@ -5694,6 +5701,7 @@ void buf_copy_options(buf_T *buf, int flags)
buf->b_s.b_p_spl = vim_strsave(p_spl);
buf->b_p_inde = vim_strsave(p_inde);
buf->b_p_indk = vim_strsave(p_indk);
+ buf->b_p_fp = empty_option;
buf->b_p_fex = vim_strsave(p_fex);
buf->b_p_sua = vim_strsave(p_sua);
buf->b_p_keymap = vim_strsave(p_keymap);