patch 8.1.0138: negative value of 'softtabstop' not used correctly

Problem:    Negative value of 'softtabstop' not used correctly.
Solution:   Use get_sts_value(). (Tom Ryder)
diff --git a/src/testdir/test_tab.vim b/src/testdir/test_tab.vim
index b847dbd..3be3024 100644
--- a/src/testdir/test_tab.vim
+++ b/src/testdir/test_tab.vim
@@ -1,3 +1,4 @@
+" Various tests for inserting a Tab.
 
 " Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
 " Also test that dv_ works correctly
@@ -43,3 +44,38 @@
   enew!
   set expandtab& smartindent& copyindent& ts& sw& sts&
 endfunc
+
+func Test_softtabstop()
+  new
+  set sts=0 sw=0
+  exe "normal ix\<Tab>x\<Esc>"
+  call assert_equal("x\tx", getline(1))
+
+  call setline(1, '')
+  set sts=4
+  exe "normal ix\<Tab>x\<Esc>"
+  call assert_equal("x   x", getline(1))
+
+  call setline(1, '')
+  set sts=-1 sw=4
+  exe "normal ix\<Tab>x\<Esc>"
+  call assert_equal("x   x", getline(1))
+
+  call setline(1, 'x       ')
+  set sts=0 sw=0 backspace=start
+  exe "normal A\<BS>x\<Esc>"
+  call assert_equal("x      x", getline(1))
+
+  call setline(1, 'x       ')
+  set sts=4
+  exe "normal A\<BS>x\<Esc>"
+  call assert_equal("x   x", getline(1))
+
+  call setline(1, 'x       ')
+  set sts=-1 sw=4
+  exe "normal A\<BS>x\<Esc>"
+  call assert_equal("x   x", getline(1))
+
+  set sts=0 sw=0 backspace&
+  bwipe!
+endfunc