diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/indent_c.c | 24 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c index 3def0defe3..17fadc4bfd 100644 --- a/src/nvim/indent_c.c +++ b/src/nvim/indent_c.c @@ -857,13 +857,27 @@ static int cin_isfuncdecl(char_u **sp, linenr_T first_lnum, linenr_T min_lnum) return FALSE; while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"') { - if (cin_iscomment(s)) /* ignore comments */ + // ignore comments + if (cin_iscomment(s)) { s = cin_skipcomment(s); - else - ++s; + } else if (*s == ':') { + if (*(s + 1) == ':') { + s += 2; + } else { + // To avoid a mistake in the following situation: + // A::A(int a, int b) + // : a(0) // <--not a function decl + // , b(0) + // {... + return false; + } + } else { + s++; + } + } + if (*s != '(') { + return false; // ';', ' or " before any () or no '(' } - if (*s != '(') - return FALSE; /* ';', ' or " before any () or no '(' */ while (*s && *s != ';' && *s != '\'' && *s != '"') { if (*s == ')' && cin_nocode(s + 1)) { diff --git a/src/nvim/version.c b/src/nvim/version.c index 5a46049e27..c6bb094cf6 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -376,7 +376,7 @@ static int included_patches[] = { 915, // 914, // 913 NA - // 912, + 912, // 911 NA // 910 NA // 909, |