[3660]
Cアウトラインのバグ
げんた
enum/struct等を解析対象にしたときからだと思いますが,型の宣言以外の場所でこれらのキーワードを使うと解析がおかしくなります.
たとえば,
struct ABCが定義されているとき,Cでは
int function( struct ABC xyz ){
}
のように型名のstructを省略できませんが,このように書くとここが関数と認識されなくなった上にそのあともずっと変になります.
CEditDoc.cppのMakeFuncList_Cにある
else if( nNestLevel_func == 0 && nMode2 == M2_NORMAL )
{
nItemFuncId = 0;
if( strcmp(szWord,"class")==0 )
nItemFuncId = 3;
if( strcmp(szWord,"struct")==0 )
nItemFuncId = 4;
else if( strcmp(szWord,"namespace")==0 )
nItemFuncId = 7;
else if( strcmp(szWord,"enum")==0 )
nItemFuncId = 5;
else if( strcmp(szWord,"union")==0 )
nItemFuncId = 6;
if( nItemFuncId != 0 )
{
nMode2 = M2_NAMESPACE_SAVE;
nItemLine = nLineCount + 1;
strcpy(szItemName,"無名");
}
}
という部分をコメントアウトすれば,型の解析はできなくなりますが上記の問題は起こらなくなります.