vim-patch:8.0.0423: changing 'cinoptions' does not always work

Problem:    The effect of adding "vim/vim#" to 'cinoptions' is not always removed.
            (David Briscoe)
Solution:   Reset b_ind_hash_comment. (Christian Brabandt, closes vim/vim#1475)

6b64394f34
This commit is contained in:
ckelsel 2018-01-20 15:47:56 +08:00
parent 94f4469638
commit b00fd49640
4 changed files with 22 additions and 1 deletions

View File

@ -1619,6 +1619,9 @@ void parse_cino(buf_T *buf)
* while(). */
buf->b_ind_if_for_while = 0;
// indentation for # comments
buf->b_ind_hash_comment = 0;
for (p = buf->b_p_cino; *p; ) {
l = p++;
if (*p == '-')

View File

@ -40,11 +40,12 @@ SCRIPTS ?= $(SCRIPTS_DEFAULT)
# Tests using runtest.vim.
# Keep test_alot*.res as the last one, sort the others.
NEW_TESTS ?= \
test_arabic.vim \
test_arabic.res \
test_autocmd.res \
test_bufwintabinfo.res \
test_changedtick.res \
test_charsearch.res \
test_cindent.res \
test_cmdline.res \
test_command_count.res \
test_cscope.res \

View File

@ -0,0 +1,16 @@
" Test for cinoptions and cindent
"
" TODO: rewrite test3.in into this new style test
func Test_cino_hash()
" Test that curbuf->b_ind_hash_comment is correctly reset
new
setlocal cindent cinoptions=#1
setlocal cinoptions=
call setline(1, ["#include <iostream>"])
call cursor(1, 1)
norm! o#include
"call feedkeys("o#include\<esc>", 't')
call assert_equal(["#include <iostream>", "#include"], getline(1,2))
bwipe!
endfunc

View File

@ -1,4 +1,5 @@
-- Test for 'cindent'.
-- For new tests, consider putting them in test_cindent.vim.
--
-- There are 50+ test command blocks (the stuff between STARTTEST and ENDTEST)
-- in the original test. These have been converted to "it" test cases here.