summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2011-09-07 19:58:09 +0200
committerBram Moolenaar <Bram@vim.org>2011-09-07 19:58:09 +0200
commitc42e7ed777c41796615035ff9b56fce06ba78d2d (patch)
treebcf83a45c3227819772ce4c15b865dd897bcce50
parent275648066d786aac4959cec8617aafc8264e78a2 (diff)
downloadvim-git-c42e7ed777c41796615035ff9b56fce06ba78d2d.tar.gz
updated for version 7.3.301v7.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)
-rw-r--r--src/misc1.c4
-rw-r--r--src/testdir/test19.in3
-rw-r--r--src/testdir/test19.ok2
-rw-r--r--src/version.c2
4 files changed, 9 insertions, 2 deletions
diff --git a/src/misc1.c b/src/misc1.c
index a3a20597b..589a145cc 100644
--- 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;
diff --git a/src/testdir/test19.in b/src/testdir/test19.in
index bdcfb77db..ff6e25517 100644
--- 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
diff --git a/src/testdir/test19.ok b/src/testdir/test19.ok
index ba4eb63be..23d51507d 100644
--- a/src/testdir/test19.ok
+++ b/src/testdir/test19.ok
@@ -5,3 +5,5 @@ test text
a cde
hi
test text
+{
+ x
diff --git a/src/version.c b/src/version.c
index c3614035c..be9f058db 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 301,
+/**/
300,
/**/
299,