1
0
forked from aniani/vim

updated for version 7.3.301

Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
            though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
This commit is contained in:
Bram Moolenaar 2011-09-07 19:58:09 +02:00
parent 275648066d
commit c42e7ed777
4 changed files with 9 additions and 2 deletions

View File

@ -363,7 +363,7 @@ copy_indent(size, src)
/* Fill to next tabstop with a tab, if possible */
tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
if (todo >= tab_pad)
if (todo >= tab_pad && !curbuf->b_p_et)
{
todo -= tab_pad;
++ind_len;
@ -372,7 +372,7 @@ copy_indent(size, src)
}
/* Add tabs required for indent */
while (todo >= (int)curbuf->b_p_ts)
while (todo >= (int)curbuf->b_p_ts && !curbuf->b_p_et)
{
todo -= (int)curbuf->b_p_ts;
++ind_len;

View File

@ -12,6 +12,9 @@ r
0wR 
:" Test replacing with Tabs
0wR 
:" Test that copyindent works with expandtab set
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
:exe "norm! o{\<cr>x"
:?^start?,$w! test.out
:qa!
ENDTEST

View File

@ -5,3 +5,5 @@ test text
a cde
hi
test text
{
x

View File

@ -709,6 +709,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
301,
/**/
300,
/**/