Blame SOURCES/0001-patch-8.2.4436-crash-with-weird-vartabstop-value.patch

a72edb
diff --git a/src/indent.c b/src/indent.c
a72edb
index 77d8b0a..9830685 100644
a72edb
--- a/src/indent.c
a72edb
+++ b/src/indent.c
a72edb
@@ -1284,6 +1284,8 @@ change_indent(
a72edb
 		new_cursor_col += (*mb_ptr2len)(ptr + new_cursor_col);
a72edb
 	    else
a72edb
 		++new_cursor_col;
a72edb
+	    if (ptr[new_cursor_col] == NUL)
a72edb
+		break;
a72edb
 	    vcol += lbr_chartabsize(ptr, ptr + new_cursor_col, (colnr_T)vcol);
a72edb
 	}
a72edb
 	vcol = last_vcol;
a72edb
diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim
a72edb
index 0ff1ea8..a613510 100644
a72edb
--- a/src/testdir/test_vartabs.vim
a72edb
+++ b/src/testdir/test_vartabs.vim
a72edb
@@ -419,4 +419,17 @@ func Test_varsofttabstop()
a72edb
   close!
a72edb
 endfunc
a72edb
 
a72edb
+func Test_vartabstop_latin1()
a72edb
+  let save_encoding = &encoding
a72edb
+  new
a72edb
+  set encoding=iso8859-1
a72edb
+  set compatible linebreak list revins smarttab
a72edb
+  set vartabstop=400
a72edb
+  exe "norm i00\t\<C-D>"
a72edb
+  bwipe!
a72edb
+  let &encoding = save_encoding
a72edb
+  set nocompatible linebreak& list& revins& smarttab& vartabstop&
a72edb
+endfunc
a72edb
+
a72edb
+
a72edb
 " vim: shiftwidth=2 sts=2 expandtab