forked from aniani/vim
patch 7.4.868
Problem: 'smarttab' is also effective when 'paste' is enabled. (Alexander Monakov) Solution: Disable 'smarttab' when 'paste' is set. (Christian Brabandt) Do the same for 'expandtab'.
This commit is contained in:
23
src/option.c
23
src/option.c
@@ -387,10 +387,11 @@ static long p_tw_nobin;
|
|||||||
static long p_wm_nobin;
|
static long p_wm_nobin;
|
||||||
|
|
||||||
/* Saved values for when 'paste' is set */
|
/* 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_tw_nopaste;
|
||||||
static long p_wm_nopaste;
|
static long p_wm_nopaste;
|
||||||
static long p_sts_nopaste;
|
|
||||||
static int p_ai_nopaste;
|
|
||||||
|
|
||||||
struct vimoption
|
struct vimoption
|
||||||
{
|
{
|
||||||
@@ -10702,6 +10703,7 @@ buf_copy_options(buf, flags)
|
|||||||
buf->b_p_fixeol = p_fixeol;
|
buf->b_p_fixeol = p_fixeol;
|
||||||
buf->b_p_et = p_et;
|
buf->b_p_et = p_et;
|
||||||
buf->b_p_et_nobin = p_et_nobin;
|
buf->b_p_et_nobin = p_et_nobin;
|
||||||
|
buf->b_p_et_nopaste = p_et_nopaste;
|
||||||
buf->b_p_ml = p_ml;
|
buf->b_p_ml = p_ml;
|
||||||
buf->b_p_ml_nobin = p_ml_nobin;
|
buf->b_p_ml_nobin = p_ml_nobin;
|
||||||
buf->b_p_inf = p_inf;
|
buf->b_p_inf = p_inf;
|
||||||
@@ -11640,6 +11642,7 @@ paste_option_changed()
|
|||||||
{
|
{
|
||||||
static int old_p_paste = FALSE;
|
static int old_p_paste = FALSE;
|
||||||
static int save_sm = 0;
|
static int save_sm = 0;
|
||||||
|
static int save_sta = 0;
|
||||||
#ifdef FEAT_CMDL_INFO
|
#ifdef FEAT_CMDL_INFO
|
||||||
static int save_ru = 0;
|
static int save_ru = 0;
|
||||||
#endif
|
#endif
|
||||||
@@ -11664,10 +11667,12 @@ paste_option_changed()
|
|||||||
buf->b_p_wm_nopaste = buf->b_p_wm;
|
buf->b_p_wm_nopaste = buf->b_p_wm;
|
||||||
buf->b_p_sts_nopaste = buf->b_p_sts;
|
buf->b_p_sts_nopaste = buf->b_p_sts;
|
||||||
buf->b_p_ai_nopaste = buf->b_p_ai;
|
buf->b_p_ai_nopaste = buf->b_p_ai;
|
||||||
|
buf->b_p_et_nopaste = buf->b_p_et;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* save global options */
|
/* save global options */
|
||||||
save_sm = p_sm;
|
save_sm = p_sm;
|
||||||
|
save_sta = p_sta;
|
||||||
#ifdef FEAT_CMDL_INFO
|
#ifdef FEAT_CMDL_INFO
|
||||||
save_ru = p_ru;
|
save_ru = p_ru;
|
||||||
#endif
|
#endif
|
||||||
@@ -11676,10 +11681,11 @@ paste_option_changed()
|
|||||||
save_hkmap = p_hkmap;
|
save_hkmap = p_hkmap;
|
||||||
#endif
|
#endif
|
||||||
/* save global values for local buffer options */
|
/* save global values for local buffer options */
|
||||||
|
p_ai_nopaste = p_ai;
|
||||||
|
p_et_nopaste = p_et;
|
||||||
|
p_sts_nopaste = p_sts;
|
||||||
p_tw_nopaste = p_tw;
|
p_tw_nopaste = p_tw;
|
||||||
p_wm_nopaste = p_wm;
|
p_wm_nopaste = p_wm;
|
||||||
p_sts_nopaste = p_sts;
|
|
||||||
p_ai_nopaste = p_ai;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -11693,10 +11699,12 @@ paste_option_changed()
|
|||||||
buf->b_p_wm = 0; /* wrapmargin is 0 */
|
buf->b_p_wm = 0; /* wrapmargin is 0 */
|
||||||
buf->b_p_sts = 0; /* softtabstop is 0 */
|
buf->b_p_sts = 0; /* softtabstop is 0 */
|
||||||
buf->b_p_ai = 0; /* no auto-indent */
|
buf->b_p_ai = 0; /* no auto-indent */
|
||||||
|
buf->b_p_et = 0; /* no expandtab */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set global options */
|
/* set global options */
|
||||||
p_sm = 0; /* no showmatch */
|
p_sm = 0; /* no showmatch */
|
||||||
|
p_sta = 0; /* no smarttab */
|
||||||
#ifdef FEAT_CMDL_INFO
|
#ifdef FEAT_CMDL_INFO
|
||||||
# ifdef FEAT_WINDOWS
|
# ifdef FEAT_WINDOWS
|
||||||
if (p_ru)
|
if (p_ru)
|
||||||
@@ -11727,10 +11735,12 @@ paste_option_changed()
|
|||||||
buf->b_p_wm = buf->b_p_wm_nopaste;
|
buf->b_p_wm = buf->b_p_wm_nopaste;
|
||||||
buf->b_p_sts = buf->b_p_sts_nopaste;
|
buf->b_p_sts = buf->b_p_sts_nopaste;
|
||||||
buf->b_p_ai = buf->b_p_ai_nopaste;
|
buf->b_p_ai = buf->b_p_ai_nopaste;
|
||||||
|
buf->b_p_et = buf->b_p_et_nopaste;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* restore global options */
|
/* restore global options */
|
||||||
p_sm = save_sm;
|
p_sm = save_sm;
|
||||||
|
p_sta = save_sta;
|
||||||
#ifdef FEAT_CMDL_INFO
|
#ifdef FEAT_CMDL_INFO
|
||||||
# ifdef FEAT_WINDOWS
|
# ifdef FEAT_WINDOWS
|
||||||
if (p_ru != save_ru)
|
if (p_ru != save_ru)
|
||||||
@@ -11743,10 +11753,11 @@ paste_option_changed()
|
|||||||
p_hkmap = save_hkmap;
|
p_hkmap = save_hkmap;
|
||||||
#endif
|
#endif
|
||||||
/* set global values for local buffer options */
|
/* set global values for local buffer options */
|
||||||
|
p_ai = p_ai_nopaste;
|
||||||
|
p_et = p_et_nopaste;
|
||||||
|
p_sts = p_sts_nopaste;
|
||||||
p_tw = p_tw_nopaste;
|
p_tw = p_tw_nopaste;
|
||||||
p_wm = p_wm_nopaste;
|
p_wm = p_wm_nopaste;
|
||||||
p_sts = p_sts_nopaste;
|
|
||||||
p_ai = p_ai_nopaste;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
old_p_paste = p_paste;
|
old_p_paste = p_paste;
|
||||||
|
@@ -1589,6 +1589,7 @@ struct file_buffer
|
|||||||
int b_p_fixeol; /* 'fixendofline' */
|
int b_p_fixeol; /* 'fixendofline' */
|
||||||
int b_p_et; /* 'expandtab' */
|
int b_p_et; /* 'expandtab' */
|
||||||
int b_p_et_nobin; /* b_p_et saved for binary mode */
|
int b_p_et_nobin; /* b_p_et saved for binary mode */
|
||||||
|
int b_p_et_nopaste; /* b_p_et saved for paste mode */
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
char_u *b_p_fenc; /* 'fileencoding' */
|
char_u *b_p_fenc; /* 'fileencoding' */
|
||||||
#endif
|
#endif
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
868,
|
||||||
/**/
|
/**/
|
||||||
867,
|
867,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user