summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-12-19 15:51:44 +0000
committerBram Moolenaar <Bram@vim.org>2022-12-19 15:51:44 +0000
commit07146ad1d33ba0d36b324873e5c461931e6b025e (patch)
treed083992f49a6805bcf03d7c7e5c4f7ae7e33893c
parent4ce1f99a2d58b809ab5a5c602bd031426f8527e8 (diff)
patch 9.0.1078: with the +vartabs feature indent folding may use wrong 'ts'v9.0.1078
Problem: With the +vartabs feature indent folding may use wrong 'tabstop'. Solution: Use the "buf" argument instead of "curbuf".
-rw-r--r--src/indent.c2
-rw-r--r--src/testdir/test_fold.vim21
-rw-r--r--src/version.c2
3 files changed, 24 insertions, 1 deletions
diff --git a/src/indent.c b/src/indent.c
index aaf3caafc4..cbb3f94f4b 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -420,7 +420,7 @@ get_indent_buf(buf_T *buf, linenr_T lnum)
{
# ifdef FEAT_VARTABS
return get_indent_str_vtab(ml_get_buf(buf, lnum, FALSE),
- (int)curbuf->b_p_ts, buf->b_p_vts_array, FALSE);
+ (int)buf->b_p_ts, buf->b_p_vts_array, FALSE);
# else
return get_indent_str(ml_get_buf(buf, lnum, FALSE), (int)buf->b_p_ts, FALSE);
# endif
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index 2f4aade013..adf9e52078 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -157,6 +157,27 @@ func Test_indent_fold_max()
bw!
endfunc
+func Test_indent_fold_tabstop()
+ call setline(1, ['0', ' 1', ' 1', "\t2", "\t2"])
+ setlocal shiftwidth=4
+ setlocal foldcolumn=1
+ setlocal foldlevel=2
+ setlocal foldmethod=indent
+ redraw
+ call assert_equal('2 2', ScreenLines(5, 10)[0])
+ vsplit
+ windo diffthis
+ botright new
+ " This 'tabstop' value should not be used for folding in other buffers.
+ setlocal tabstop=4
+ diffoff!
+ redraw
+ call assert_equal('2 2', ScreenLines(5, 10)[0])
+
+ bwipe!
+ bwipe!
+endfunc
+
func Test_manual_fold_with_filter()
CheckExecutable cat
for type in ['manual', 'marker']
diff --git a/src/version.c b/src/version.c
index a2b4e7ecbb..1ce4042959 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1078,
+/**/
1077,
/**/
1076,