vim-patch:7.4.893

Problem:    C indenting is wrong below a "case (foo):" because it is
            recognized as a C++ base class construct.  Issue #38.
Solution:   Check for the case keyword.

d1b15dec4d
This commit is contained in:
watiko
2016-02-15 19:12:47 +09:00
parent 2d5cba630c
commit 72d5a88af5
3 changed files with 66 additions and 4 deletions

View File

@@ -1132,13 +1132,21 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
pos->lnum = lnum;
line = ml_get(lnum);
s = cin_skipcomment(line);
s = line;
for (;; ) {
if (*s == NUL) {
if (lnum == curwin->w_cursor.lnum)
if (lnum == curwin->w_cursor.lnum) {
break;
/* Continue in the cursor line. */
}
// Continue in the cursor line.
line = ml_get(++lnum);
s = line;
}
if (s == line) {
// don't recognize "case (foo):" as a baseclass */
if (cin_iscase(s, false)) {
break;
}
s = cin_skipcomment(line);
if (*s == NUL)
continue;