updated for version 7.3.487
Problem: When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
movement is reset unnecessarily.
Solution: Do not set w_set_curswant for every option. Add a test for this.
(Kana Natsuno) Add the P_CURSWANT flag for options.
diff --git a/src/testdir/test84.in b/src/testdir/test84.in
new file mode 100644
index 0000000..25482db
--- /dev/null
+++ b/src/testdir/test84.in
@@ -0,0 +1,35 @@
+Tests for curswant not changing when setting an option
+
+STARTTEST
+:so small.vim
+:/^start target options$/+1,/^end target options$/-1 yank
+:let target_option_names = split(@0)
+:function TestCurswant(option_name)
+: normal! ggf8j
+: let curswant_before = winsaveview().curswant
+: execute 'let' '&'.a:option_name '=' '&'.a:option_name
+: let curswant_after = winsaveview().curswant
+: return [a:option_name, curswant_before, curswant_after]
+:endfunction
+:
+:new
+:put =['1234567890', '12345']
+:1 delete _
+:let result = []
+:for option_name in target_option_names
+: call add(result, TestCurswant(option_name))
+:endfor
+:
+:new
+:put =map(copy(result), 'join(v:val, '' '')')
+:1 delete _
+:write test.out
+:
+:qall!
+ENDTEST
+
+start target options
+ tabstop
+ timeoutlen
+ ttimeoutlen
+end target options