Skip to content

Commit b4b4c9d

Browse files
author
Dimitri van Heesch
committed
Show tag file name instead of <unknown> for warnings pointing to symbols extracted from tag files.
1 parent b4fd6ac commit b4b4c9d

File tree

1 file changed

+43
-9
lines changed

1 file changed

+43
-9
lines changed

src/doxygen.cpp

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1338,7 +1338,7 @@ static void addClassToContext(EntryNav *rootNav)
13381338
{
13391339
tArgList = getTemplateArgumentsFromName(fullName,root->tArgLists);
13401340
}
1341-
cd=new ClassDef(root->fileName,root->startLine,root->startColumn,
1341+
cd=new ClassDef(tagInfo?tagName:root->fileName,root->startLine,root->startColumn,
13421342
fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum);
13431343
Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n",
13441344
fullName.data(),sec,root->tArgLists ? (int)root->tArgLists->count() : -1, tagInfo);
@@ -1765,7 +1765,7 @@ static void buildNamespaceList(EntryNav *rootNav)
17651765
tagFileName = tagInfo->fileName;
17661766
}
17671767
//printf("++ new namespace %s lang=%s tagName=%s\n",fullName.data(),langToString(root->lang).data(),tagName.data());
1768-
NamespaceDef *nd=new NamespaceDef(root->fileName,root->startLine,
1768+
NamespaceDef *nd=new NamespaceDef(tagInfo?tagName:root->fileName,root->startLine,
17691769
root->startColumn,fullName,tagName,tagFileName,
17701770
root->type,root->spec&Entry::Published);
17711771
nd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
@@ -2135,10 +2135,15 @@ static void findUsingDeclImports(EntryNav *rootNav)
21352135
//printf("found member %s\n",mni->memberName());
21362136
MemberDef *newMd = 0;
21372137
{
2138+
QCString fileName = root->fileName;
2139+
if (fileName.isEmpty() && rootNav->tagInfo())
2140+
{
2141+
fileName = rootNav->tagInfo()->tagName;
2142+
}
21382143
ArgumentList *templAl = md->templateArguments();
21392144
ArgumentList *al = md->templateArguments();
21402145
newMd = new MemberDef(
2141-
root->fileName,root->startLine,root->startColumn,
2146+
fileName,root->startLine,root->startColumn,
21422147
md->typeString(),memName,md->argsString(),
21432148
md->excpString(),root->protection,root->virt,
21442149
md->isStatic(),Member,md->memberType(),
@@ -2324,9 +2329,15 @@ static MemberDef *addVariableToClass(
23242329
}
23252330
}
23262331

2332+
QCString fileName = root->fileName;
2333+
if (fileName.isEmpty() && rootNav->tagInfo())
2334+
{
2335+
fileName = rootNav->tagInfo()->tagName;
2336+
}
2337+
23272338
// new member variable, typedef or enum value
23282339
MemberDef *md=new MemberDef(
2329-
root->fileName,root->startLine,root->startColumn,
2340+
fileName,root->startLine,root->startColumn,
23302341
root->type,name,root->args,root->exception,
23312342
prot,Normal,root->stat,related,
23322343
mtype,root->tArgLists ? root->tArgLists->getLast() : 0,0);
@@ -2559,11 +2570,18 @@ static MemberDef *addVariableToFile(
25592570
}
25602571
}
25612572
}
2573+
2574+
QCString fileName = root->fileName;
2575+
if (fileName.isEmpty() && rootNav->tagInfo())
2576+
{
2577+
fileName = rootNav->tagInfo()->tagName;
2578+
}
2579+
25622580
Debug::print(Debug::Variables,0,
25632581
" new variable, nd=%s!\n",nd?nd->name().data():"<global>");
25642582
// new global variable, enum value or typedef
25652583
MemberDef *md=new MemberDef(
2566-
root->fileName,root->startLine,root->startColumn,
2584+
fileName,root->startLine,root->startColumn,
25672585
root->type,name,root->args,0,
25682586
Public, Normal,root->stat,Member,
25692587
mtype,root->tArgLists ? root->tArgLists->getLast() : 0,0);
@@ -3071,8 +3089,13 @@ static void addInterfaceOrServiceToServiceOrSingleton(
30713089
enum MemberType const type = (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC)
30723090
? MemberType_Interface
30733091
: MemberType_Service;
3092+
QCString fileName = root->fileName;
3093+
if (fileName.isEmpty() && rootNav->tagInfo())
3094+
{
3095+
fileName = rootNav->tagInfo()->tagName;
3096+
}
30743097
MemberDef *const md = new MemberDef(
3075-
root->fileName, root->startLine, root->startColumn, root->type, rname,
3098+
fileName, root->startLine, root->startColumn, root->type, rname,
30763099
"", "", root->protection, root->virt, root->stat, Member,
30773100
type, 0, root->argList);
30783101
md->setTagInfo(rootNav->tagInfo());
@@ -3243,13 +3266,19 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd,
32433266
name=name.left(i);
32443267
}
32453268

3269+
QCString fileName = root->fileName;
3270+
if (fileName.isEmpty() && rootNav->tagInfo())
3271+
{
3272+
fileName = rootNav->tagInfo()->tagName;
3273+
}
3274+
32463275
//printf("root->name=`%s; root->args=`%s' root->argList=`%s'\n",
32473276
// root->name.data(),root->args.data(),argListToString(root->argList).data()
32483277
// );
32493278

32503279
// adding class member
32513280
MemberDef *md=new MemberDef(
3252-
root->fileName,root->startLine,root->startColumn,
3281+
fileName,root->startLine,root->startColumn,
32533282
root->type,name,root->args,root->exception,
32543283
root->protection,root->virt,
32553284
root->stat && root->relatesType != MemberOf,
@@ -7277,8 +7306,13 @@ static void addEnumValuesToEnums(EntryNav *rootNav)
72777306
qualifiedName // enum value scope matches that of the enum
72787307
)
72797308
{
7309+
QCString fileName = root->fileName;
7310+
if (fileName.isEmpty() && rootNav->tagInfo())
7311+
{
7312+
fileName = rootNav->tagInfo()->tagName;
7313+
}
72807314
MemberDef *fmd=new MemberDef(
7281-
root->fileName,root->startLine,root->startColumn,
7315+
fileName,root->startLine,root->startColumn,
72827316
root->type,root->name,root->args,0,
72837317
Public, Normal,root->stat,Member,
72847318
MemberType_EnumValue,0,0);
@@ -8409,7 +8443,7 @@ static void findDefineDocumentation(EntryNav *rootNav)
84098443

84108444
if (rootNav->tagInfo() && !root->name.isEmpty()) // define read from a tag file
84118445
{
8412-
MemberDef *md=new MemberDef("<tagfile>",1,1,
8446+
MemberDef *md=new MemberDef(rootNav->tagInfo()->tagName,1,1,
84138447
"#define",root->name,root->args,0,
84148448
Public,Normal,FALSE,Member,MemberType_Define,0,0);
84158449
md->setTagInfo(rootNav->tagInfo());

0 commit comments

Comments
 (0)