changeset 11069:814126a34c9d v8.0.0423

patch 8.0.0423: changing 'cinoptions' does not always work commit https://github.com/vim/vim/commit/6b64394f346594404cffb9591d71ac693040679f Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 5 19:44:06 2017 +0100 patch 8.0.0423: changing 'cinoptions' does not always work Problem: The effect of adding "#" to 'cinoptions' is not always removed. (David Briscoe) Solution: Reset b_ind_hash_comment. (Christian Brabandt, closes #1475)
author Christian Brabandt <cb@256bit.org>
date Sun, 05 Mar 2017 19:45:04 +0100
parents 8959c29dcc2a
children e46530c3faba
files src/Makefile src/misc1.c src/testdir/Make_all.mak src/testdir/test3.in src/testdir/test_cindent.vim src/version.c
diffstat 6 files changed, 25 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -2104,6 +2104,7 @@ test_arglist \
 	test_channel \
 	test_charsearch \
 	test_changedtick \
+	test_cindent \
 	test_cmdline \
 	test_command_count \
 	test_crypt \
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -6974,6 +6974,9 @@ 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++;
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -143,6 +143,7 @@ NEW_TESTS = test_arabic.res \
 	    test_cdo.res \
 	    test_channel.res \
 	    test_charsearch.res \
+	    test_cindent.res \
 	    test_cmdline.res \
 	    test_command_count.res \
 	    test_crypt.res \
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
@@ -1,6 +1,7 @@
 /* vim: set cin ts=4 sw=4 : */
 
-Test for 'cindent'
+Test for 'cindent'.
+For new tests, consider putting them in test_cindent.vim.
 
 STARTTEST
 :so small.vim
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_cindent.vim
@@ -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
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    423,
+/**/
     422,
 /**/
     421,