Mercurial > vim
changeset 3058:4a7097153089 v7.3.301
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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 07 Sep 2011 19:58:09 +0200 |
parents | d679d9ac3a7e |
children | e7e703047af2 |
files | src/misc1.c src/testdir/test19.in src/testdir/test19.ok src/version.c |
diffstat | 4 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/misc1.c +++ b/src/misc1.c @@ -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;
--- a/src/testdir/test19.in +++ b/src/testdir/test19.in @@ -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