summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-03-05 19:44:06 +0100
committerBram Moolenaar <Bram@vim.org>2017-03-05 19:44:06 +0100
commit6b64394f346594404cffb9591d71ac693040679f (patch)
tree071c5aee49d73707a14ed71834adb1463b59fa44
parentf411a3c5aff644ec7a999be83ef22adf3e1132dd (diff)
downloadvim-6b64394f346594404cffb9591d71ac693040679f.zip
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)
-rw-r--r--src/Makefile1
-rw-r--r--src/misc1.c3
-rw-r--r--src/testdir/Make_all.mak1
-rw-r--r--src/testdir/test3.in3
-rw-r--r--src/testdir/test_cindent.vim16
-rw-r--r--src/version.c2
6 files changed, 25 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile
index 6e7fdde3c..f9453229a 100644
--- 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 \
diff --git a/src/misc1.c b/src/misc1.c
index dce912c40..ec92f0375 100644
--- 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++;
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index e1ce1518f..b7fb15caf 100644
--- 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 \
diff --git a/src/testdir/test3.in b/src/testdir/test3.in
index e8648d382..9e66436e7 100644
--- 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
diff --git a/src/testdir/test_cindent.vim b/src/testdir/test_cindent.vim
new file mode 100644
index 000000000..5685c2be6
--- /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
diff --git a/src/version.c b/src/version.c
index 3804bbe89..c956389ce 100644
--- 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,