void foo(void) { int a = 0; while (a < 3) { a++; } while (b < a) // trailing C++ comment { b++; } do // trailing C++ comment { a--; } while (a > 0); do { a--; } while (a > 0); for (a = 0; a < 10; a++) // trailing C++ comment { printf("a=%d\n", a); } if (a == 10) // trailing C++ comment { printf("a looks good\n"); } else // trailing C++ comment { printf("not so good\n"); } if (state == ST_RUN) { if ((foo < bar) && (bar > foo2)) { if (a < 5) { a *= a; } else if (b != 0) { a /= b; } else // trailing C++ comment { a += b; } } } list_for_each(k) { if (a) { if (b) { c++; } } } while (1) { /* hang forever */ } } /* foo */ void f() { if (buf[0] == '~' && strchr(tmp, '/') == NULL) { buf = mallocstrcpy(buf, tmp); matches = username_tab_completion(tmp, &num_matches); } /* If we're in the middle of the original line, copy the string * only up to the cursor position into buf, so tab completion * will result in buf's containing only the tab-completed * path/filename. */ else if (strlen(buf) > strlen(tmp)) { buf = mallocstrcpy(buf, tmp); } } void f() { } void g() { }