changeset 32190:73489b6c4a02 v9.0.1426

patch 9.0.1426: indent wrong after "export namespace" in C++ Commit: https://github.com/vim/vim/commit/99e4ab2a1e577ddb29030c09c308b67e16fd51c4 Author: Virginia Senioria <91khr@users.noreply.github.com> Date: Fri Mar 24 19:25:06 2023 +0000 patch 9.0.1426: indent wrong after "export namespace" in C++ Problem: Indent wrong after "export namespace" in C++. Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, closes #12134, closes #12133)
author Bram Moolenaar <Bram@vim.org>
date Fri, 24 Mar 2023 20:30:04 +0100
parents 1a46b76ea2cb
children 31f367cbaed0
files src/cindent.c src/testdir/test_cindent.vim src/version.c
diffstat 3 files changed, 29 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -769,7 +769,9 @@ cin_is_cpp_namespace(char_u *s)
 
     s = cin_skipcomment(s);
 
-    if (STRNCMP(s, "inline", 6) == 0 && (s[6] == NUL || !vim_iswordc(s[6])))
+    // skip over "inline" and "export" in any order
+    while ((STRNCMP(s, "inline", 6) == 0 || STRNCMP(s, "export", 6) == 0)
+					&& (s[6] == NUL || !vim_iswordc(s[6])))
 	s = cin_skipcomment(skipwhite(s + 6));
 
     if (STRNCMP(s, "namespace", 9) == 0 && (s[9] == NUL || !vim_iswordc(s[9])))
--- a/src/testdir/test_cindent.vim
+++ b/src/testdir/test_cindent.vim
@@ -4406,6 +4406,18 @@ def Test_cindent_47()
   inline/* test */namespace {
     111111111111111111;
   }
+  export namespace {
+    111111111111111111;
+  }
+  export inline namespace {
+    111111111111111111;
+  }
+  export/* test */inline namespace {
+    111111111111111111;
+  }
+  inline export namespace {
+    111111111111111111;
+  }
 
   /* invalid namespaces use block indent */
   namespace test test2 {
@@ -4509,6 +4521,18 @@ def Test_cindent_47()
   inline/* test */namespace {
   111111111111111111;
   }
+  export namespace {
+  111111111111111111;
+  }
+  export inline namespace {
+  111111111111111111;
+  }
+  export/* test */inline namespace {
+  111111111111111111;
+  }
+  inline export namespace {
+  111111111111111111;
+  }
 
   /* invalid namespaces use block indent */
   namespace test test2 {
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1426,
+/**/
     1425,
 /**/
     1424,